非采购上架-改箱操作
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user