diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeCompareDiff.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeCompareDiff.cs
index 3c365cc8..71634a42 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeCompareDiff.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeCompareDiff.cs
@@ -118,6 +118,10 @@ namespace Win.Sfs.SettleAccount.Reports
/// 是否是当期
///
public bool IsCurrent { get; set; }
+ ///
+ /// 是否更新匹配类型
+ ///
+ public bool IsUpdateMappingType { get; set; } = true;
}
///
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs
index 60916852..d61b6a1b 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/SaSeEdiCompareDiff.cs
@@ -128,6 +128,10 @@ namespace Win.Sfs.SettleAccount.Reports
/// 是否是当期
///
public bool IsCurrent { get; set; }
+ ///
+ /// 是否更新匹配类型
+ ///
+ public bool IsUpdateMappingType { get; set; } = true;
}
///
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/MaiDanBBACSaSeCompareExportService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/MaiDanBBACSaSeCompareExportService.cs
index 708de18b..356a5623 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/MaiDanBBACSaSeCompareExportService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/MaiDanBBACSaSeCompareExportService.cs
@@ -95,7 +95,7 @@ namespace SettleAccount.Job.Services.Report
pubSaSeCompareDiffs.AddRange(secondMatchHaveSaHaveSes);
//二次对比比对上的数据入库
var pubSeCDetailEntitys = _objectMapper.Map, List>(secondMatchHaveSaHaveSes);
- //_settleAccountDbContext.Set().AddRange(pubSeCDetailEntitys);
+ _settleAccountDbContext.Set().AddRange(pubSeCDetailEntitys);
}
#endregion
@@ -134,14 +134,16 @@ namespace SettleAccount.Job.Services.Report
/// 三次比对
///
///
- /// 不同PN下客户零件号、数量、相同为有结算有发运数据
+ /// 不同PN下客户零件号、数量相同的数据为有结算有发运
/// 获取有结算无发运、无结算有发运同时存在的零件号
/// 遍历零件号
/// 判断结算无发运和无结算有发运数据 客户零件号、数量是否完全匹配
- /// 完全匹配修改有结算无发运的数据类型为有结算有发运,去掉无结算有发运的数据
+ /// 有结算无发运的数据三次比对上的数据修改类型为有结算有发运
+ /// 无结算有发运的数据三次比对上的数据过滤掉
///
public List ThreeCompare(List saSeCompareDiffs)
{
+ var threeMatchHaveSaHaveSes = new List();
//有结算无发运
var haveSaNotHaveSes = saSeCompareDiffs.FindAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaNotHaveSe);
//无结算有发运
@@ -174,15 +176,43 @@ namespace SettleAccount.Job.Services.Report
}
});
+ foreach ((var key, var value) in matchPNs)
+ {
+ //获取二次比对上的数据
+ var threeMatchHaveSaHaveSesItem = (from notHaveSaHaveSe in notHaveSaHaveSes.Where(t => t.PN == key)
+ join haveSaNotHaveSe in haveSaNotHaveSes.Where(t => t.PN == value)
+ on new { notHaveSaHaveSe.ReplaceFactoryPartCode } equals new { haveSaNotHaveSe.ReplaceFactoryPartCode }
+ select new SaSeCompareDiff()
+ {
+ Version = haveSaNotHaveSe.Version,
+ WmsBillNum = notHaveSaHaveSe.WmsBillNum,
+ ShippingDate = notHaveSaHaveSe.ShippingDate,
+ SeqNumber = notHaveSaHaveSe.SeqNumber,
+ PJISSeqNumber = notHaveSaHaveSe.PJISSeqNumber,
+ CustomerOfflineTime = haveSaNotHaveSe.CustomerOfflineTime,
+ SAQty = haveSaNotHaveSe.SAQty,
+ SEQty = notHaveSaHaveSe.SEQty,
+ PN = haveSaNotHaveSe.PN,
+ ToLocCode = notHaveSaHaveSe.ToLocCode,
+ ToErpLocCode = notHaveSaHaveSe.ToErpLocCode,
+ Category = EnumPubSaSeCompareCategory.HaveSaHaveSe,
+ SeCustomerPartCode = notHaveSaHaveSe.SeCustomerPartCode,
+ SeFactoryPartCode = notHaveSaHaveSe.SeFactoryPartCode,
+ SaCustomerPartCode = haveSaNotHaveSe.SaCustomerPartCode,
+ SaFactoryPartCode = haveSaNotHaveSe.SaFactoryPartCode,
+ CustomerPartCode = haveSaNotHaveSe.CustomerPartCode,
+ PartCodeDesc = haveSaNotHaveSe.PartCodeDesc,
+ FactoryPartCode = haveSaNotHaveSe.FactoryPartCode,
+ ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode,
+ IsUpdateMappingType = false
+ }).ToList();
+ threeMatchHaveSaHaveSes.AddRange(threeMatchHaveSaHaveSesItem);
+ }
+
saSeCompareDiffs.RemoveAll(t => t.Category == EnumPubSaSeCompareCategory.NotHaveSaHaveSe && matchPNs.ContainsKey(t.PN));
+ saSeCompareDiffs.RemoveAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaNotHaveSe && matchPNs.ContainsValue(t.PN));
- saSeCompareDiffs.Where(t => t.Category == EnumPubSaSeCompareCategory.HaveSaNotHaveSe)
- .Where(t => matchPNs.ContainsValue(t.PN)).ToList()
- .ForEach(t =>
- {
- t.Category = EnumPubSaSeCompareCategory.HaveSaHaveSe;
- t.SEQty = t.SAQty;
- });
+ saSeCompareDiffs.AddRange(threeMatchHaveSaHaveSes);
return saSeCompareDiffs;
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeCompareExportBaseService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeCompareExportBaseService.cs
index 42129e5d..7dd578aa 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeCompareExportBaseService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeCompareExportBaseService.cs
@@ -250,6 +250,7 @@ namespace SettleAccount.Job.Services.Report
on new { notHaveSaHaveSe.PN, notHaveSaHaveSe.ReplaceFactoryPartCode } equals new { haveSaNotHaveSe.PN, haveSaNotHaveSe.ReplaceFactoryPartCode }
select new SaSeCompareDiff()
{
+ Version = haveSaNotHaveSe.Version,
WmsBillNum = notHaveSaHaveSe.WmsBillNum,
ShippingDate = notHaveSaHaveSe.ShippingDate,
SeqNumber = notHaveSaHaveSe.SeqNumber,
@@ -268,7 +269,8 @@ namespace SettleAccount.Job.Services.Report
CustomerPartCode = haveSaNotHaveSe.CustomerPartCode,
PartCodeDesc = haveSaNotHaveSe.PartCodeDesc,
FactoryPartCode = haveSaNotHaveSe.FactoryPartCode,
- ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode
+ ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode,
+ IsUpdateMappingType = false
}).ToList();
}
else
@@ -279,6 +281,7 @@ namespace SettleAccount.Job.Services.Report
on new { notHaveSaHaveSe.ReplaceFactoryPartCode } equals new { haveSaNotHaveSe.ReplaceFactoryPartCode }
select new SaSeCompareDiff()
{
+ Version = haveSaNotHaveSe.Version,
WmsBillNum = notHaveSaHaveSe.WmsBillNum,
ShippingDate = notHaveSaHaveSe.ShippingDate,
SeqNumber = notHaveSaHaveSe.SeqNumber,
@@ -297,7 +300,8 @@ namespace SettleAccount.Job.Services.Report
CustomerPartCode = haveSaNotHaveSe.CustomerPartCode,
PartCodeDesc = haveSaNotHaveSe.PartCodeDesc,
FactoryPartCode = haveSaNotHaveSe.FactoryPartCode,
- ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode
+ ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode,
+ IsUpdateMappingType = false
}).ToList();
}
return secondMatchHaveSaHaveSes;
@@ -357,7 +361,7 @@ namespace SettleAccount.Job.Services.Report
///
public virtual void HandleSaDetailsMain(List saSeCompareDiffs, EnumBusinessType businessType, int version) where T : SA_BASE
{
- var haveSaHaveSes = saSeCompareDiffs.FindAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaHaveSe);
+ var haveSaHaveSes = saSeCompareDiffs.FindAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaHaveSe && t.IsUpdateMappingType == true);
if (haveSaHaveSes.Any())
{
//结算详情
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs
index fe740dcc..9e1f301b 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SaSeEdiCompareExportBaseService.cs
@@ -116,6 +116,7 @@ namespace SettleAccount.Job.Services.Report
on new { notHaveSaHaveSe.PN, notHaveSaHaveSe.ReplaceFactoryPartCode } equals new { haveSaNotHaveSe.PN, haveSaNotHaveSe.ReplaceFactoryPartCode }
select new SaSeEdiCompareDiff()
{
+ Version = haveSaNotHaveSe.Version,
Category = EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi,
WmsBillNum = notHaveSaHaveSe.WmsBillNum,
ShippingDate = notHaveSaHaveSe.ShippingDate,
@@ -138,7 +139,8 @@ namespace SettleAccount.Job.Services.Report
CustomerPartCode = haveSaNotHaveSe.CustomerPartCode,
PartCodeDesc = haveSaNotHaveSe.PartCodeDesc,
FactoryPartCode = haveSaNotHaveSe.FactoryPartCode,
- ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode
+ ReplaceFactoryPartCode = haveSaNotHaveSe.ReplaceFactoryPartCode,
+ IsUpdateMappingType = false
}).ToList();
return secondMatchHaveSaHaveSes;
}
@@ -197,7 +199,7 @@ namespace SettleAccount.Job.Services.Report
///
public virtual void HandleSaDetailsMain(List saSeEdiCompareDiff, EnumBusinessType businessType, int version) where T : SA_BASE
{
- var haveSaHaveSes = saSeEdiCompareDiff.FindAll(t => t.Category == EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi || t.Category == EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi);
+ var haveSaHaveSes = saSeEdiCompareDiff.FindAll(t => (t.Category == EnumSaSeEdiCompareCategory.HaveSaHaveSeHaveEdi || t.Category == EnumSaSeEdiCompareCategory.HaveSaHaveSeNotHaveEdi) && t.IsUpdateMappingType == true);
if (haveSaHaveSes.Any())
{
//结算详情