即时库存的优化

This commit is contained in:
tongfei
2023-11-29 10:24:57 +08:00
parent 1acfcf71b1
commit e866fe8845
3 changed files with 98 additions and 13 deletions

View File

@@ -750,14 +750,28 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:变更
//5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
@@ -881,14 +895,29 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType=(int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos=new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
@@ -1034,14 +1063,28 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
@@ -1170,14 +1213,28 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
@@ -1319,14 +1376,28 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos= InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode=x.Key.OrgCode,
StockCode=x.Key.StockCode,
MaterialId=x.Key.MaterialId,
SubStockId=x.Key.SubStockId,
Qty=x.Sum(t=>t.Qty)
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
@@ -1446,14 +1517,28 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:变更处理
//5.1先合并相同的数据
var invDetGenDtos = InventoryDetailsGenerateDto.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
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()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
if (invDetGenDtos.Count != 0)
{
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);