库存接口

This commit is contained in:
tongfei
2023-11-23 11:38:29 +08:00
parent c4f90f0c7e
commit 8aee4380fe
8 changed files with 81 additions and 30 deletions

View File

@@ -495,31 +495,32 @@ namespace WMS.Web.Domain.Services
var boxs = await _boxRepositories.GetEntityList(boxIds);
var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds);
//
var generateDtoList = new List<BoxInventoryBackGenerateDto>();
#region
//入库的明细
var dtoDetails_in = dtoDatas.Where(x => x.Type == BackRecordType.OutstockOn).SelectMany(x => x.Details).ToList();
//2.1组织:头部
var generateDtoList = dtoDatas.SelectMany(x => x.Details).GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x=>new BoxInventoryBackGenerateDto()
{
BoxId=x.Key.BoxId,
OrgCode=x.Key.OrgCode,
StockCode=x.Key.StockCode,
SubStockId=x.Key.SubStockId
SubStockId=x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In
}).ToList();
//3.遍历:组装明细
generateDtoList.ForEach(x =>
generateDtoList_in.ForEach(x =>
{
foreach (var detItem in dtoDatas.SelectMany(x=>x.Details).ToList())
foreach (var detItem in dtoDetails_in)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
var dtoCurrent = dtoDatas.Where(x => x.Id == detItem.Fid).FirstOrDefault();
if (dtoCurrent != null)
x.InventoryInOutType = dtoCurrent.Type == BackRecordType.InstockOff ? (int)InventoryInOutType.Out : (int)InventoryInOutType.In;
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
@@ -529,6 +530,44 @@ namespace WMS.Web.Domain.Services
}
}
});
#endregion
#region
//出库的明细
var dtoDetails_out = dtoDatas.Where(x => x.Type == BackRecordType.InstockOff).SelectMany(x => x.Details).ToList();
//2.1组织:头部
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x => new BoxInventoryBackGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out
}).ToList();
//3.遍历:组装明细
generateDtoList_out.ForEach(x =>
{
foreach (var detItem in dtoDetails_out)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
}
}
});
#endregion
generateDtoList.AddRange(generateDtoList_in);
generateDtoList.AddRange(generateDtoList_out);
//4.提交处理
return await this.GenerateBackBox(generateDtoList, isTransaction);
}