箱库存优化

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

@@ -67,7 +67,7 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.ErpStockNoData);
var entity = new BackRecord();
entity.Method =(InventoryInOutMethod)dto.Method;
entity.Method = (InventoryInOutMethod)dto.Method;
entity.OrgCode = dto.OrgCode;
entity.StockCode = dto.StockCode;
entity.SubStockId = dto.SubStockId;
@@ -84,51 +84,56 @@ namespace WMS.Web.Domain.Services
if (!serialNumber_result.IsSuccess)
return serialNumber_result;
#region
//获取目标箱和原箱信息
var current_box_about = dto.Details.GroupBy(x => new { x.BoxId }).Select(x => new { x.Key.BoxId }).ToList();
var current_sernub_box = dto.Details.GroupBy(x => x.SerialNumberBoxId).Select(x => x.Key).ToList();
//#region 需要改箱操
////获取目标箱和原箱信息
//var current_box_about = dto.Details.GroupBy(x => new { x.BoxId }).Select(x => new { x.Key.BoxId }).ToList();
//var current_sernub_box = dto.Details.GroupBy(x => x.SerialNumberBoxId).Select(x => x.Key).ToList();
//要改箱的数据集合
var ganenrateChangeBoxs = new List<SaveChangeBoxRecordRequest>();
////要改箱的数据集合
//var ganenrateChangeBoxs = new List<SaveChangeBoxRecordRequest>();
//遍历组装改箱dto的头部集合
foreach (var boxAbout in current_box_about)
{
foreach (var serBoxId in current_sernub_box)
{
if (boxAbout.BoxId != serBoxId)
{
var changeBox = new SaveChangeBoxRecordRequest();
changeBox.SrcBoxId = serBoxId;
changeBox.DestBoxId = boxAbout.BoxId;
changeBox.SubStockId = entity.SubStockId;
ganenrateChangeBoxs.Add(changeBox);
}
}
}
////遍历组装改箱dto的头部集合
//foreach (var boxAbout in current_box_about)
//{
// foreach (var serBoxId in current_sernub_box)
// {
// if (boxAbout.BoxId != serBoxId)
// {
// var changeBox = new SaveChangeBoxRecordRequest();
// changeBox.SrcBoxId = serBoxId;
// changeBox.DestBoxId = boxAbout.BoxId;
// changeBox.SubStockId = entity.SubStockId;
// ganenrateChangeBoxs.Add(changeBox);
// }
// }
//}
//遍历组装明细改箱dto的明细集合
foreach (var detItem in dto.Details)
{
ganenrateChangeBoxs.ForEach(x =>
{
if (x.SrcBoxId == detItem.SerialNumberBoxId && x.DestBoxId == detItem.BoxId)
{
var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
changeBoxRD.MaterialId = detItem.MaterialId;
changeBoxRD.Qty = detItem.Qty;
changeBoxRD.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(changeBoxRD);
}
});
}
////遍历组装明细改箱dto的明细集合
//foreach (var detItem in dto.Details)
//{
// ganenrateChangeBoxs.ForEach(x =>
// {
// if (x.SrcBoxId == detItem.SerialNumberBoxId && x.DestBoxId == detItem.BoxId)
// {
// var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
// changeBoxRD.MaterialId = detItem.MaterialId;
// changeBoxRD.Qty = detItem.Qty;
// changeBoxRD.SerialNumbers = detItem.SerialNumbers;
// x.Details.Add(changeBoxRD);
// }
// });
//}
//改箱保存操作:这里不需要在改箱的操作-进行库存的变更(因为会有问题),下面会去更新库存的
var changeBoxSave_Result = await _changeMoveBoxService.ChangeBoxSave(ganenrateChangeBoxs, loginInfo, isTransaction,false);
////改箱保存操作:这里不需要在改箱的操作-进行库存的变更(因为会有问题),下面会去更新库存的
//var changeBoxSave_Result = await _changeMoveBoxService.ChangeBoxSave(ganenrateChangeBoxs, loginInfo, isTransaction,false);
//if (!changeBoxSave_Result.IsSuccess)
// return changeBoxSave_Result;
//#endregion
//改箱保存操作
var changeBoxSave_Result = await _changeMoveBoxService.ChangeBox_BackRecord(entity, loginInfo, isTransaction);
if (!changeBoxSave_Result.IsSuccess)
return changeBoxSave_Result;
#endregion
//保存成功后:变更库存
var boxInventoryResult = await _boxInventoryService.GenerateBackBox(entity, isTransaction);