diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index b99a0ca5..dfa6c1f7 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -557,20 +557,30 @@ namespace WMS.Web.Domain.Services { // if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode)) var IsHaveNewMaterial = data_list.Where(x=>x.SourceBillNo==erp_data.BillNo).SelectMany(s => s.Details).Where(x =>x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId == x.MaterialId).Any(); + var IsHaveNewErpDetId = data_list.Where(x => x.SourceBillNo == erp_data.BillNo).SelectMany(s => s.Details).Where(x => x.ErpDetailId != erp_data.ErpDetailId).Any(); if (!IsHaveNewMaterial) { //当物料相同,仓库不同或者物料不同,就新增一条明细 + erp_addDetailsList.Add(erp_data); + } + if (IsHaveNewErpDetId) + { + //当物料相同,明细不同新增一条明细 erp_addDetailsList.Add(erp_data); //操作完后剔除 erp_removeList.Add(erp_data); } + } + //去重 + var erp_addDetailsList_group= erp_addDetailsList.Distinct().ToList(); + //2.2遍历任务单:添加新的明细 data_list.ForEach(order => { //2.1.任务单添加明细 - var addErpDetails = erp_addDetailsList.Where(x => x.BillNo == order.SourceBillNo).ToList(); + var addErpDetails = erp_addDetailsList_group.Where(x => x.BillNo == order.SourceBillNo).ToList(); if (addErpDetails.Count != 0) { var addDetails = _mapper.Map>(addErpDetails);