From d6661634206b3ff26846bece1936686df2a0c0b6 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Thu, 28 Mar 2024 10:30:35 +0800 Subject: [PATCH] =?UTF-8?q?EDI=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JisBBACSaSeEdiCompareExportService.cs | 18 +++++- .../JisHBPOSaSeEdiCompareExportService.cs | 64 ++++++++++++++++++- 2 files changed, 78 insertions(+), 4 deletions(-) diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs index 56d714ab..70c3b424 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs @@ -219,7 +219,7 @@ namespace SettleAccount.Job.Services.Report // LU = groupItem.Max(t => t.LU) // }; var ediGroup = from edi in _settleAccountDbContext.Set() - where edi.IsDeleted == false && edi.IsHaveSeData == true + where edi.IsDeleted == false group edi by new { edi.PN, edi.CustomerPartCodeNoSpace } into groupItem select new { @@ -300,6 +300,22 @@ namespace SettleAccount.Job.Services.Report Price = sa.Price }; var saSeCompareFullJoin = saSeCompareLeft.Union(saSeCompareRight).ToList(); + + var ediCheck = ediGroup.ToList(); + foreach (var item in saSeCompareFullJoin.Where(p => p.SaCustomerPartCode != null && p.SeCustomerPartCode == null)) + { + if (!string.IsNullOrEmpty(item.SaCustomerPartCode) && string.IsNullOrEmpty(item.SeCustomerPartCode)) + { + var ediEntity = ediCheck.FirstOrDefault(p => p.PN == item.PN && p.CustomerPartCodeNoSpace == item.SaCustomerPartCode); + if (ediEntity != null) + { + item.EdiCustomerPartCode = item.SaCustomerPartCode; + item.EdiQty = ediEntity.Qty; + } + } + + } + return saSeCompareFullJoin; } #endregion diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs index 0997ee53..8e1e821a 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs @@ -212,7 +212,7 @@ namespace SettleAccount.Job.Services.Report // LU = groupItem.Max(t => t.LU) // }; var ediGroup = from edi in _settleAccountDbContext.Set() - where edi.IsDeleted == false && edi.IsHaveSeData == true + where edi.IsDeleted == false group edi by new { edi.PN, edi.CustomerPartCodeNoSpace } into groupItem select new { @@ -222,11 +222,31 @@ namespace SettleAccount.Job.Services.Report LU = groupItem.Max(t => t.LU) }; + //var seEdiGroup = from se in seGroup + // join edi in ediGroup + // on new { se.PN, se.CustomerPartCodeNoSpace } equals new { edi.PN, edi.CustomerPartCodeNoSpace } + // into ediTemp + // from edi in ediTemp.DefaultIfEmpty() + // select new + // { + // se.PN, + // se.CustomerPartCodeNoSpace, + // se.Qty, + // se.LU, + // se.WmsBillNum, + // se.ShippingDate, + // se.FactoryPartCode, + // se.ToLoc, + // se.ErpToLoc, + // EdiQty = edi.Qty, + // EdiCustomerPartCode = edi.LU + // }; + //发运和EDI正反比对20240327 var seEdiGroup = from se in seGroup join edi in ediGroup on new { se.PN, se.CustomerPartCodeNoSpace } equals new { edi.PN, edi.CustomerPartCodeNoSpace } - into ediTemp - from edi in ediTemp.DefaultIfEmpty() + into Temp + from edi in Temp.DefaultIfEmpty() select new { se.PN, @@ -241,6 +261,30 @@ namespace SettleAccount.Job.Services.Report EdiQty = edi.Qty, EdiCustomerPartCode = edi.LU }; + + //var ediSeGroup = from edi in ediGroup + // join se in seGroup + // on new { edi.PN, edi.CustomerPartCodeNoSpace } equals new { se.PN, se.CustomerPartCodeNoSpace } + // into Temp + // from se in Temp.DefaultIfEmpty() + // select new + // { + // edi.PN, + // edi.CustomerPartCodeNoSpace, + // edi.Qty, + // edi.LU, + // se.WmsBillNum, + // se.ShippingDate, + // se.FactoryPartCode, + // se.ToLoc, + // se.ErpToLoc, + // EdiQty = edi.Qty, + // EdiCustomerPartCode = edi.LU + // }; + + + + var saSeCompareLeft = from sa in saGroup join seEdi in seEdiGroup on new { sa.PN, sa.CustomerPartCodeNoSpace } equals new { seEdi.PN, seEdi.CustomerPartCodeNoSpace } @@ -294,6 +338,20 @@ namespace SettleAccount.Job.Services.Report Price = sa.Price }; var saSeCompareFullJoin = saSeCompareLeft.Union(saSeCompareRight).ToList(); + var ediCheck= ediGroup.ToList(); + foreach (var item in saSeCompareFullJoin.Where(p=>p.SaCustomerPartCode!=null && p.SeCustomerPartCode==null)) + { + if(!string.IsNullOrEmpty(item.SaCustomerPartCode)&& string.IsNullOrEmpty(item.SeCustomerPartCode)) + { + var ediEntity= ediCheck.FirstOrDefault(p=>p.PN== item.PN &&p.CustomerPartCodeNoSpace== item.SaCustomerPartCode); + if(ediEntity!=null) + { + item.EdiCustomerPartCode = item.SaCustomerPartCode; + item.EdiQty = ediEntity.Qty; + } + } + + } return saSeCompareFullJoin; } #endregion