非采购上架-改箱操作

This commit is contained in:
tongfei
2023-12-11 16:20:30 +08:00
parent 737742925f
commit cd27e66302

View File

@@ -438,22 +438,31 @@ namespace WMS.Web.Domain.Services
var cureent_serialNumbs = await _serialNumbersRepositories.GetEntityList(dto.Boxs.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList());
var current_boxIds = cureent_serialNumbs.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
//当前序列号对应的箱的集合信息
var current_boxs = await _boxRepositories.GetEntityList(current_boxIds);
//要改箱的数据集合
var ganenrateChangeBoxs = new List<SaveChangeBoxRecordRequest>();
//当前按产品上架的箱子
var dto_box = dto.Boxs.FirstOrDefault();
//其它还要拼装的物料明细
var tag_dto_erpDetIds = new List<int>();
//遍历:序列号对应多个箱
foreach (var boxId in current_boxIds)
{
if (dto_box.BoxId != boxId)
{
var box = current_boxs.Where(x => x.Id == boxId).FirstOrDefault();
//遍历:明细
var changeBox = new SaveChangeBoxRecordRequest();
changeBox.DestBoxId = dto_box.BoxId;
changeBox.SrcBoxId = boxId;
changeBox.SubStockId = dto.SubStockId;
foreach (var item in dto_box.Details)
{
var boxDet= box.Details.Where(t => t.MaterialId == item.MaterialId).FirstOrDefault();
if (boxDet != null && boxDet.MaterialId == item.MaterialId)
{
var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
changeBoxRD.MaterialId = item.MaterialId;
@@ -461,9 +470,38 @@ namespace WMS.Web.Domain.Services
changeBoxRD.SerialNumbers = item.SerialNumbers;
changeBox.Details.Add(changeBoxRD);
}
else
tag_dto_erpDetIds.Add(item.ErpDetailId);
}
//当明细存在,则要有原箱的情况下进行改箱
if (changeBox.Details.Count != 0)
{
changeBox.SrcBoxId = boxId;
ganenrateChangeBoxs.Add(changeBox);
}
}
}
//去重复
var tagtag_dto_erpDetIds_new= tag_dto_erpDetIds.GroupBy(id => id).Select(x=>x.Key).ToList();
//没有原箱的情况下,要改箱操作对象
var changeBox_tag = new SaveChangeBoxRecordRequest();
changeBox_tag.DestBoxId = dto_box.BoxId;
changeBox_tag.SrcBoxId = 0;
changeBox_tag.SubStockId = dto.SubStockId;
foreach (var item in dto_box.Details)
{
var current_erp_detId= tagtag_dto_erpDetIds_new.Where(id => item.ErpDetailId == id).FirstOrDefault();
if (current_erp_detId != 0 && current_erp_detId == item.ErpDetailId)
{
//遍历:明细
var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
changeBoxRD.MaterialId = item.MaterialId;
changeBoxRD.Qty = item.Qty;
changeBoxRD.SerialNumbers = item.SerialNumbers;
changeBox_tag.Details.Add(changeBoxRD);
}
}
ganenrateChangeBoxs.Add(changeBox_tag);
//改箱保存操作
var changeBoxSave_Result = await _changeMoveBoxService.ChangeBoxSave(ganenrateChangeBoxs, loginInfo, isTransaction);