库存优化

This commit is contained in:
tongfei
2023-11-25 15:03:41 +08:00
parent 1b14c57eb3
commit eee46a2efa
2 changed files with 67 additions and 12 deletions

View File

@@ -748,9 +748,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:变更 //5.即时库存:变更
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
Qty = x.Sum(t => t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!InventoryDetailsGenerate_result.IsSuccess) if (!InventoryDetailsGenerate_result.IsSuccess)
return InventoryDetailsGenerate_result; return InventoryDetailsGenerate_result;
} }
@@ -870,9 +879,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:处理 //5.即时库存:处理
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
Qty = x.Sum(t => t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!InventoryDetailsGenerate_result.IsSuccess) if (!InventoryDetailsGenerate_result.IsSuccess)
return InventoryDetailsGenerate_result; return InventoryDetailsGenerate_result;
} }
@@ -1011,9 +1029,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:处理 //5.即时库存:处理
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
Qty = x.Sum(t => t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!InventoryDetailsGenerate_result.IsSuccess) if (!InventoryDetailsGenerate_result.IsSuccess)
return InventoryDetailsGenerate_result; return InventoryDetailsGenerate_result;
} }
@@ -1138,9 +1165,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:处理 //5.即时库存:处理
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
Qty = x.Sum(t => t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!InventoryDetailsGenerate_result.IsSuccess) if (!InventoryDetailsGenerate_result.IsSuccess)
return InventoryDetailsGenerate_result; return InventoryDetailsGenerate_result;
} }
@@ -1263,9 +1299,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:处理 //5.即时库存:处理
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos= InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode=x.Key.OrgCode,
StockCode=x.Key.StockCode,
MaterialId=x.Key.MaterialId,
SubStockId=x.Key.SubStockId,
Qty=x.Sum(t=>t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!InventoryDetailsGenerate_result.IsSuccess) if (!InventoryDetailsGenerate_result.IsSuccess)
return InventoryDetailsGenerate_result; return InventoryDetailsGenerate_result;
} }
@@ -1381,9 +1426,18 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
} }
//5.即时库存:变更处理 //5.即时库存:变更处理
if (InventoryDetailsGenerateDto.Count != 0) //5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{ {
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
Qty = x.Sum(t => t.Qty)
}).ToList();
if (invDetGenDtos.Count != 0)
{
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
if (!inventoryDetails_result.IsSuccess) if (!inventoryDetails_result.IsSuccess)
return inventoryDetails_result; return inventoryDetails_result;
} }

View File

@@ -167,6 +167,7 @@ namespace WMS.Web.Domain.Services
result.BoxId = box.Id; result.BoxId = box.Id;
foreach (var item in box.Details) foreach (var item in box.Details)
{ {
//这里找任务单的物料条件物料ID和应入库数量大于收货数量防止有同样的物料数据收货的时候 会有收货数量,只要找到没有收完的就行了
var current_task_Det= tast.Details.Where(x => x.MaterialId == item.MaterialId && x.AccruedQty>x.ReceiveQty).FirstOrDefault(); var current_task_Det= tast.Details.Where(x => x.MaterialId == item.MaterialId && x.AccruedQty>x.ReceiveQty).FirstOrDefault();
//3.2映射返回明细对象 //3.2映射返回明细对象
var box_task_detail = new BoxDetailsInStockTaskDto(); var box_task_detail = new BoxDetailsInStockTaskDto();