改箱支持多个
This commit is contained in:
@@ -95,7 +95,7 @@ namespace WMS.Web.Api.Controllers
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
return await _changeMoveBoxService.ChangeBoxSave(dto, loginInfo);
|
||||
return await _changeMoveBoxService.ChangeBoxSave(new List<SaveChangeBoxRecordRequest>() { dto }, loginInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace WMS.Web.Domain.IService
|
||||
public interface IChangeMoveBoxService
|
||||
{
|
||||
//改箱保存
|
||||
Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo, bool isTransaction=true);
|
||||
Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction=true);
|
||||
//移箱保存
|
||||
Task<Result> MoveBoxSave(List<SaveMoveBoxRecordRequest> dto, bool IsUp, LoginInDto loginInfo);
|
||||
|
||||
|
||||
@@ -51,12 +51,16 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="loginInfo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo, bool isTransaction = false)
|
||||
public async Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction = false)
|
||||
{
|
||||
//1.有原箱时 需要判断 物料对应的序列号是否存在
|
||||
if (dto.SrcBoxId != 0)
|
||||
var srcIds = dto.Select(s => s.SrcBoxId).ToList();
|
||||
var destIds = dto.Select(s => s.DestBoxId).ToList();
|
||||
var boxs = await _boxInventoryRepositories.GetList(srcIds);
|
||||
foreach (var d in dto)
|
||||
{
|
||||
var box = await _boxInventoryRepositories.Get(dto.SrcBoxId);
|
||||
if (d.SrcBoxId == 0) continue;
|
||||
var box = boxs.FirstOrDefault(f => f.BoxId == d.SrcBoxId);
|
||||
//原箱在库存中的话 进行验证
|
||||
if (box != null)
|
||||
{
|
||||
@@ -74,11 +78,15 @@ namespace WMS.Web.Domain.Services
|
||||
|
||||
List<Box> boxList = new List<Box>();
|
||||
//原箱有可能没有
|
||||
var srcBox = await _boxRepositories.Get(dto.SrcBoxId);
|
||||
var destBox = await _boxRepositories.Get(dto.DestBoxId);
|
||||
var srcBoxs = await _boxRepositories.GetEntityList(srcIds);
|
||||
var destBoxs = await _boxRepositories.GetEntityList(destIds);
|
||||
//if (srcBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
|
||||
if (destBox == null) return Result.ReFailure(ResultCodes.BoxNoData);
|
||||
var l = dto.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList();
|
||||
if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData);
|
||||
foreach (var d in dto)
|
||||
{
|
||||
var l = d.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList();
|
||||
var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId);
|
||||
var destBox = srcBoxs.FirstOrDefault(f => f.Id == d.DestBoxId);
|
||||
//原箱移出
|
||||
Result res;
|
||||
if (srcBox != null)
|
||||
@@ -93,23 +101,27 @@ namespace WMS.Web.Domain.Services
|
||||
boxList.Add(srcBox);
|
||||
if (destBox != null)
|
||||
boxList.Add(destBox);
|
||||
}
|
||||
|
||||
var subStock = await _basbicsRepositories.GetSubUcStockAsync(dto.SubStockId, loginInfo.UserInfo.CompanyId);
|
||||
var boxInventory = await _boxInventoryRepositories.Get(dto.SrcBoxId);
|
||||
List<ChangeBoxRecord> list = new List<ChangeBoxRecord>();
|
||||
foreach (var d in dto.Details)
|
||||
foreach (var dt in dto)
|
||||
{
|
||||
var subStock = await _basbicsRepositories.GetSubUcStockAsync(dt.SubStockId, loginInfo.UserInfo.CompanyId);
|
||||
var boxi = boxs.FirstOrDefault(f => f.BoxId == dt.SrcBoxId);
|
||||
foreach (var d in dt.Details)
|
||||
{
|
||||
ChangeBoxRecord entity = new ChangeBoxRecord();
|
||||
entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dto.SrcBoxId, dto.DestBoxId);
|
||||
entity.SrcSubStockId = boxInventory?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取
|
||||
entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId);
|
||||
entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取
|
||||
if (subStock != null)
|
||||
{
|
||||
entity.DestSubStockId = dto.SubStockId;
|
||||
entity.DestSubStockId = dt.SubStockId;
|
||||
entity.DestBoxOrgCode = subStock.ErpOrgCode;
|
||||
entity.DestStockCode = subStock.StockCode;
|
||||
}
|
||||
list.Add(entity);
|
||||
}
|
||||
}
|
||||
|
||||
IDbContextTransaction _transaction = null;
|
||||
if (isTransaction)
|
||||
|
||||
Reference in New Issue
Block a user