Browse Source

三方比对优化

master
zhouhongjun 10 months ago
parent
commit
257eb0b3c1
  1. 36
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs
  2. 24
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs
  3. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs

36
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisBBACSaSeEdiCompareExportService.cs

@ -76,19 +76,25 @@ namespace SettleAccount.Job.Services.Report
HandleSaSeEdiCompareDiffList(saSeEdiCompareDiffs); HandleSaSeEdiCompareDiffList(saSeEdiCompareDiffs);
//var sa1 = saSeEdiCompareDiffs.FindAll(t => t.PN == "3819841").ToList();
//var sa2 = sa1.FindAll(t => t.SaCustomerPartCode == "A2068808405").ToList();
//saSeEdiCompareDiffs = saSeEdiCompareDiffs.FindAll(t => t.PN == "3819841").ToList();
#region 二次对比 #region 二次对比
//二次匹配上的记录 //二次匹配上的记录
var secondMatchHaveSaHaveSes = HandleSecondCompare(saSeEdiCompareDiffs, businessType); //var secondMatchHaveSaHaveSes = HandleSecondCompare(saSeEdiCompareDiffs, businessType);
if (secondMatchHaveSaHaveSes.Any()) //if (secondMatchHaveSaHaveSes.Any())
{ //{
//二次匹配 匹配上的厂内零件号、PN // //二次匹配 匹配上的厂内零件号、PN
var secondMatchFPartCodePNs = secondMatchHaveSaHaveSes.Select(t => new { t.ReplaceFactoryPartCode, t.PN }); // var secondMatchFPartCodePNs = secondMatchHaveSaHaveSes.Select(t => new { t.ReplaceFactoryPartCode, t.PN });
saSeEdiCompareDiffs.RemoveAll<SaSeEdiCompareDiff>(t => secondMatchFPartCodePNs.Contains(new { t.ReplaceFactoryPartCode, t.PN })); // saSeEdiCompareDiffs.RemoveAll<SaSeEdiCompareDiff>(t => secondMatchFPartCodePNs.Contains(new { t.ReplaceFactoryPartCode, t.PN }));
saSeEdiCompareDiffs.AddRange(secondMatchHaveSaHaveSes); // saSeEdiCompareDiffs.AddRange(secondMatchHaveSaHaveSes);
//二次对比比对上的数据入库 // //二次对比比对上的数据入库
var seCDetailEntitys = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<BBAC_SEC_DETAIL>>(secondMatchHaveSaHaveSes); // var seCDetailEntitys = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<BBAC_SEC_DETAIL>>(secondMatchHaveSaHaveSes);
_settleAccountDbContext.Set<BBAC_SEC_DETAIL>().AddRange(seCDetailEntitys); // _settleAccountDbContext.Set<BBAC_SEC_DETAIL>().AddRange(seCDetailEntitys);
} //}
#endregion #endregion
#region 结算数据处理 #region 结算数据处理
@ -155,7 +161,7 @@ namespace SettleAccount.Job.Services.Report
// Site = groupItem.Max(t => t.Site), // Site = groupItem.Max(t => t.Site),
// Price = groupItem.Max(t => t.Price), // Price = groupItem.Max(t => t.Price),
// }; // };
var saGroup = from sa in _settleAccountDbContext.Set<BBAC_SA_DETAIL>() var saGroup = from sa in _settleAccountDbContext.Set<BBAC_SA_DETAIL>()
where sa.BusinessType == businessType where sa.BusinessType == businessType
group sa by new { sa.PN, sa.CustomerPartCodeNoSpace } into groupItem group sa by new { sa.PN, sa.CustomerPartCodeNoSpace } into groupItem
select new select new
@ -186,8 +192,8 @@ namespace SettleAccount.Job.Services.Report
// ToLoc = groupItem.Max(t => t.ToLoc), // ToLoc = groupItem.Max(t => t.ToLoc),
// ErpToLoc = groupItem.Max(t => t.ErpToLoc) // ErpToLoc = groupItem.Max(t => t.ErpToLoc)
// }).Where(t => t.Qty != 0M); // }).Where(t => t.Qty != 0M);
var seGroup = (from se in _settleAccountDbContext.Set<BBAC_SE_DETAIL>() var seGroup = (from se in _settleAccountDbContext.Set<BBAC_SE_DETAIL>()
where se.BusinessType == businessType where se.BusinessType == businessType
group se by new { se.PN, se.CustomerPartCodeNoSpace } into groupItem group se by new { se.PN, se.CustomerPartCodeNoSpace } into groupItem
select new select new
{ {
@ -200,7 +206,7 @@ namespace SettleAccount.Job.Services.Report
FactoryPartCode = groupItem.Max(t => t.FactoryPartCode), FactoryPartCode = groupItem.Max(t => t.FactoryPartCode),
ToLoc = groupItem.Max(t => t.ToLoc), ToLoc = groupItem.Max(t => t.ToLoc),
ErpToLoc = groupItem.Max(t => t.ErpToLoc) ErpToLoc = groupItem.Max(t => t.ErpToLoc)
}).Where(t => t.Qty != 0M); }).Where(t => t.Qty > 0M);
//Edi //Edi
//var ediGroup = from edi in _settleAccountDbContext.Set<BBAC_SE_EDI>() //var ediGroup = from edi in _settleAccountDbContext.Set<BBAC_SE_EDI>()
// where edi.IsDeleted == false && edi.IsHaveSeData == true && edi.State == 0 // where edi.IsDeleted == false && edi.IsHaveSeData == true && edi.State == 0

24
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/JisHBPOSaSeEdiCompareExportService.cs

@ -78,17 +78,17 @@ namespace SettleAccount.Job.Services.Report
#region 二次对比 #region 二次对比
//二次匹配上的记录 //二次匹配上的记录
var secondMatchHaveSaHaveSes = HandleSecondCompare(saSeEdiCompareDiffs, businessType); //var secondMatchHaveSaHaveSes = HandleSecondCompare(saSeEdiCompareDiffs, businessType);
if (secondMatchHaveSaHaveSes.Any()) //if (secondMatchHaveSaHaveSes.Any())
{ //{
//二次匹配 匹配上的厂内零件号、PN // //二次匹配 匹配上的厂内零件号、PN
var secondMatchFPartCodePNs = secondMatchHaveSaHaveSes.Select(t => new { t.ReplaceFactoryPartCode, t.PN }); // var secondMatchFPartCodePNs = secondMatchHaveSaHaveSes.Select(t => new { t.ReplaceFactoryPartCode, t.PN });
saSeEdiCompareDiffs.RemoveAll<SaSeEdiCompareDiff>(t => secondMatchFPartCodePNs.Contains(new { t.ReplaceFactoryPartCode, t.PN })); // saSeEdiCompareDiffs.RemoveAll<SaSeEdiCompareDiff>(t => secondMatchFPartCodePNs.Contains(new { t.ReplaceFactoryPartCode, t.PN }));
saSeEdiCompareDiffs.AddRange(secondMatchHaveSaHaveSes); // saSeEdiCompareDiffs.AddRange(secondMatchHaveSaHaveSes);
//二次对比比对上的数据入库 // //二次对比比对上的数据入库
var seCDetailEntitys = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<HBPO_SEC_DETAIL>>(secondMatchHaveSaHaveSes); // var seCDetailEntitys = _objectMapper.Map<List<SaSeEdiCompareDiff>, List<HBPO_SEC_DETAIL>>(secondMatchHaveSaHaveSes);
_settleAccountDbContext.Set<HBPO_SEC_DETAIL>().AddRange(seCDetailEntitys); // _settleAccountDbContext.Set<HBPO_SEC_DETAIL>().AddRange(seCDetailEntitys);
} //}
#endregion #endregion
#region 结算数据处理 #region 结算数据处理
@ -198,7 +198,7 @@ namespace SettleAccount.Job.Services.Report
FactoryPartCode = groupItem.Max(t => t.FactoryPartCode), FactoryPartCode = groupItem.Max(t => t.FactoryPartCode),
ToLoc = groupItem.Max(t => t.ToLoc), ToLoc = groupItem.Max(t => t.ToLoc),
ErpToLoc = groupItem.Max(t => t.ErpToLoc) ErpToLoc = groupItem.Max(t => t.ErpToLoc)
}).Where(t => t.Qty != 0M); }).Where(t => t.Qty > 0M);
//Edi //Edi
//var ediGroup = from edi in _settleAccountDbContext.Set<HBPO_SE_EDI>() //var ediGroup = from edi in _settleAccountDbContext.Set<HBPO_SE_EDI>()

2
code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs

@ -264,6 +264,8 @@ namespace SettleAccount.Job.Services.Report
//有结算有发运 //有结算有发运
var haveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi }.Contains(t.Category)); var haveSaHaveSeExports = saSeEdiCompareDetailExports.FindAll(t => new EnumSaSeEdiCompareCategory[] { EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi, EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi }.Contains(t.Category));
//有结算有发运汇总 //有结算有发运汇总
var haveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport() var haveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceFactoryPartCode).Select(p => new SaSeEdiCompareSumReport()
{ {

Loading…
Cancel
Save