回退箱库存-优化

This commit is contained in:
tongfei
2023-11-24 17:30:52 +08:00
parent 222869f440
commit 28081602e4

View File

@@ -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();
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)