diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index df4d0f74..e7ea5113 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -492,28 +492,37 @@ namespace WMS.Web.Domain.Services var erp_data = erp_list.Where(x => x.ErpDetailId == det.ErpDetailId).FirstOrDefault(); if (erp_data != null) { - //2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细 + //2.1.2物料相同的,就改变数值 - if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode)) - { - //老物料,应收数量修改为0 - det.AccruedQty = 0; - //当物料相同,仓库不同或者物料不同,就新增一条明细 - erp_addDetailsList.Add(erp_data); - } - else if (det.MaterialId == erp_data.MaterialId) + if (det.MaterialId == erp_data.MaterialId) { //物料相同的,就改变数值 det.Remark = erp_data.Remark; det.AccruedQty = erp_data.Qty; det.FactoryPrice = erp_data.FactoryPrice; det.DeliveredQty = erp_data.DeliveredQty; + + } + else + { + //老物料,应收数量修改为0 + det.AccruedQty = 0; } //操作完后剔除 erp_removeList.Add(erp_data); } }); + //2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细 + foreach (var erp_data in erp_list) + { + // if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode)) + var IsHaveNewMaterial = data_list.SelectMany(s => s.Details).Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId==x.MaterialId).Any(); + if(!IsHaveNewMaterial) + //当物料相同,仓库不同或者物料不同,就新增一条明细 + erp_addDetailsList.Add(erp_data); + } + //2.2遍历任务单:添加新的明细 data_list.ForEach(order => {