diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index 7416060b..b11284f6 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -487,40 +487,7 @@ namespace WMS.Web.Domain.Services if (data_list.Count != 0) { - //foreach (var b in data_list) - //{ - // foreach (var a in erp_list.Where(a => a.BillNo == b.BillNo)) - // { - // var matchingC = b.Details.FirstOrDefault(c => c.ErpDetailId == a.ErpDetailId && c.MaterialId == a.MaterialId); - // if (matchingC != null) - // { - // //物料相同的,就改变数值 - // matchingC.Remark = a.Remark; - // matchingC.AccruedQty = a.Qty; - // matchingC.FactoryPrice = a.FactoryPrice; - // matchingC.DeliveredQty = a.DeliveredQty; - // } - // else - // { - // var addDetails = _mapper.Map(a); - // b.Details.Add(addDetails); - // } - // } - - // foreach (var c in b.Details) - // { - // var matchingA = erp_list.FirstOrDefault(a => a.BillNo == b.BillNo && a.ErpDetailId == c.ErpDetailId && a.MaterialId == c.MaterialId); - // if (matchingA == null) - // { - // c.AccruedQty = 0; - // } - // } - - // // 移除已操作的 A 集合数据 - // erp_list.RemoveAll(a => a.BillNo == b.BillNo); - //} //2.1遍历任务单明细:改变已有的值和要添加的明细 - _logger.LogInformation("拉取金蝶数据:SysnDataNew1->" + JsonConvert.SerializeObject(data_list)); foreach (var det in data_list.SelectMany(t => t.Details)) { var order= data_list.Where(o => o.Id == det.Fid).FirstOrDefault(); @@ -531,7 +498,6 @@ namespace WMS.Web.Domain.Services { if (erp_data.MaterialId == det.MaterialId) { - _logger.LogInformation("拉取金蝶数据:SysnDataNew2->" + JsonConvert.SerializeObject(erp_data)); //物料相同的,就改变数值 det.Remark = erp_data.Remark; det.AccruedQty = erp_data.Qty; @@ -540,7 +506,6 @@ namespace WMS.Web.Domain.Services } else { - _logger.LogInformation("拉取金蝶数据:SysnDataNew3->" + JsonConvert.SerializeObject(erp_data)); //老物料,应收数量修改为0 det.AccruedQty = 0; @@ -552,22 +517,24 @@ namespace WMS.Web.Domain.Services } - //2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细 foreach (var erp_data in erp_list) { - 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(); - if (!IsHaveNewMaterial) + var order= data_list.Where(x => x.SourceBillNo == erp_data.BillNo).FirstOrDefault(); + if (order != null) { - //当物料相同,仓库不同或者物料不同,就新增一条明细 - erp_addDetailsList.Add(erp_data); - //操作完后剔除 - erp_removeList.Add(erp_data); + var IsHaveNewMaterial = order.Details.Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId == x.MaterialId).Any(); + if (!IsHaveNewMaterial) + { + //当物料相同,仓库不同或者物料不同,就新增一条明细 + erp_addDetailsList.Add(erp_data); + //操作完后剔除 + erp_removeList.Add(erp_data); + } } + } - - //去重 var erp_addDetailsList_group = erp_addDetailsList.Distinct().ToList(); @@ -600,17 +567,12 @@ namespace WMS.Web.Domain.Services //2.4金蝶删除的明细,要把任务单里的明细应入库数量改为0 data_list.SelectMany(x => x.Details).Where(c => !erp_list.Any(a => a.ErpDetailId == c.ErpDetailId)).ToList().ForEach(x => { x.AccruedQty = 0; }); - _logger.LogInformation("拉取金蝶数据:SysnDataNew4->" + JsonConvert.SerializeObject(data_list)); - //2.3.提交任务单的修改 var isSuccess = await _inStockTaskRepositories.UpdateRange(data_list, isTransaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); } - - - //2.4剔除:已修改的单据 foreach (var item in erp_removeList.Distinct().ToList()) erp_list.Remove(item);