箱库存优化

This commit is contained in:
tongfei
2023-12-14 14:22:29 +08:00
parent 508d6c1349
commit 56320f924c
4 changed files with 180 additions and 116 deletions

View File

@@ -580,6 +580,7 @@ namespace WMS.Web.Domain.Services
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
var delete_ids = new List<int>();
var update_entitys = new List<BoxInventory>();
var add_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
@@ -621,8 +622,14 @@ namespace WMS.Web.Domain.Services
//2.2.2即时库存:修改箱库存的集合
InventoryDetailsGenerateDto.Add(inventoryDet);
}
//2.2.1箱库存:修改箱库存的集合
update_entitys.Add(sour_update_entity);
//4.1判断要修改的箱库存对象是否所有的物料库存的数量都为0“是”则删除该箱库存,"否"则修改;
var isAllNoInventory = sour_update_entity.Details.All(x => x.Qty == 0);
if (isAllNoInventory)
delete_ids.Add(sour_update_entity.Id);
else
//4.2添加要更新的箱库存实体
update_entitys.Add(sour_update_entity);
}
#endregion
@@ -690,6 +697,11 @@ namespace WMS.Web.Domain.Services
isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
if (delete_ids.Count != 0)
{
isSuccess = await _boxInventoryRepositories.DeleteRange(delete_ids, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
//5.即时库存:变更
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
@@ -793,7 +805,8 @@ namespace WMS.Web.Domain.Services
}
}//下架
}
//下架
else
{
//3.1下架的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱不存在于库存,请扫其它箱”
@@ -881,6 +894,7 @@ namespace WMS.Web.Domain.Services
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
var delete_ids = new List<int>();
var update_entitys = new List<BoxInventory>();
var add_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
@@ -998,7 +1012,8 @@ namespace WMS.Web.Domain.Services
}
}//下架
}
//下架
else
{
//3.1下架的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱不存在于库存,请扫其它箱”
@@ -1037,9 +1052,14 @@ namespace WMS.Web.Domain.Services
InventoryDetailsGenerateDto.Add(inventoryDet);
}
update_entitys.Add(update_entity);
//4.1判断要修改的箱库存对象是否所有的物料库存的数量都为0“是”则删除该箱库存,"否"则修改;
var isAllNoInventory = update_entity.Details.All(x => x.Qty == 0);
if (isAllNoInventory)
delete_ids.Add(update_entity.Id);
else
//4.2添加要更新的箱库存实体
update_entitys.Add(update_entity);
}
}
@@ -1055,6 +1075,11 @@ namespace WMS.Web.Domain.Services
isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
if (delete_ids.Count != 0)
{
isSuccess = await _boxInventoryRepositories.DeleteRange(delete_ids, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
@@ -1100,6 +1125,7 @@ namespace WMS.Web.Domain.Services
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
var delete_ids = new List<int>();
var update_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
@@ -1156,7 +1182,8 @@ namespace WMS.Web.Domain.Services
//3.5要处理的修改集合
update_entitys.Add(updateEntity);
}//出库
}
//出库
else
{
//3.1出库的时候:盘点-箱库存是存在
@@ -1193,8 +1220,14 @@ namespace WMS.Web.Domain.Services
//3.2.2即时库存:修改箱库存的集合
InventoryDetailsGenerateDto.Add(inventoryDet);
}
//3.5要处理的修改集合
update_entitys.Add(update_entity);
//4.1判断要修改的箱库存对象是否所有的物料库存的数量都为0“是”则删除该箱库存,"否"则修改;
var isAllNoInventory = update_entity.Details.All(x => x.Qty == 0);
if (isAllNoInventory)
delete_ids.Add(update_entity.Id);
else
//4.2添加要更新的箱库存实体
update_entitys.Add(update_entity);
}
}
@@ -1205,6 +1238,11 @@ namespace WMS.Web.Domain.Services
isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
if (delete_ids.Count != 0)
{
isSuccess = await _boxInventoryRepositories.DeleteRange(delete_ids, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()