回退箱库存-优化
This commit is contained in:
@@ -904,16 +904,38 @@ namespace WMS.Web.Domain.Services
|
||||
//上架
|
||||
if (dto.InventoryInOutType == (int)InventoryInOutType.In)
|
||||
{
|
||||
//3.1上架的时候:箱一定是不存在于箱库存当中的,有则返回提示“已有箱库存,不需要再扫上架”
|
||||
var ishave = boxInventorys.Where(x => x.BoxId == dto.BoxId).Any();
|
||||
if (ishave)
|
||||
return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError);
|
||||
//3.1上架的时候:箱库存可能存在,也可能不存在的两种情况
|
||||
var boxInventory = boxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault();
|
||||
|
||||
//3.2组装要新增的箱库存信息:箱和明细和序列号
|
||||
var addEntity = _mapper.Map<BoxInventory>(dto);
|
||||
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details);
|
||||
|
||||
add_entitys.Add(addEntity);
|
||||
if (boxInventory == null)
|
||||
{
|
||||
//3.2组装要新增的箱库存信息:箱和明细和序列号
|
||||
var addEntity = _mapper.Map<BoxInventory>(dto);
|
||||
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details);
|
||||
add_entitys.Add(addEntity);
|
||||
}
|
||||
else
|
||||
{
|
||||
var update_entity = boxInventory;
|
||||
update_entity.Details = boxInventory.Details;
|
||||
//3.3遍历dto明细
|
||||
foreach (var dtoItem in dto.Details)
|
||||
{
|
||||
//找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题
|
||||
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
|
||||
if (updateDetail == null)
|
||||
{
|
||||
var det =_mapper.Map<BoxInventoryDetails>(dtoItem);
|
||||
update_entity.Details.Add(det);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
|
||||
updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers);
|
||||
}
|
||||
}
|
||||
update_entitys.Add(update_entity);
|
||||
}
|
||||
|
||||
//4.1即时库存:组装入库
|
||||
foreach (var item in dto.Details)
|
||||
|
||||
Reference in New Issue
Block a user