fix .
This commit is contained in:
@@ -504,6 +504,18 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
}
|
||||
}
|
||||
|
||||
if (modifiedPersons.Count > 0)
|
||||
{
|
||||
var first = modifiedPersons[0];
|
||||
SapPersonItem historyPerson = null;
|
||||
var hasHistory = !string.IsNullOrWhiteSpace(first.ZWORKCODE) && lastMap.TryGetValue(first.ZWORKCODE, out historyPerson);
|
||||
var diffMessage = hasHistory
|
||||
? string.Join("; ", GetFirstDiffFields(first, historyPerson))
|
||||
: "历史记录不存在";
|
||||
_logger.LogWarning("SAP首条差异 ZWORKCODE:{workCode}, HasHistory:{hasHistory}, Diffs:{diffs}",
|
||||
first.ZWORKCODE, hasHistory, diffMessage);
|
||||
}
|
||||
|
||||
return modifiedPersons;
|
||||
}
|
||||
|
||||
@@ -616,4 +628,48 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
idNo = idNo.TrimStart();
|
||||
return idNo[..6];
|
||||
}
|
||||
|
||||
private static List<string> GetFirstDiffFields(SapPersonItem current, SapPersonItem history)
|
||||
{
|
||||
var diffs = new List<string>();
|
||||
AddDiff(diffs, "PERNR", current.PERNR, history.PERNR);
|
||||
AddDiff(diffs, "WERKS", current.WERKS, history.WERKS);
|
||||
AddDiff(diffs, "ORGEH", current.ORGEH, history.ORGEH);
|
||||
AddDiff(diffs, "NAME", current.NAME, history.NAME);
|
||||
AddDiff(diffs, "GBDAT", FormatDate(current.GBDAT), FormatDate(history.GBDAT));
|
||||
AddDiff(diffs, "ZZ_SFZH", NormalizeIdNo(current.ZZ_SFZH), NormalizeIdNo(history.ZZ_SFZH));
|
||||
AddDiff(diffs, "ZWORKCODE", current.ZWORKCODE, history.ZWORKCODE);
|
||||
AddDiff(diffs, "ZMOBILE", Normalize(current.ZMOBILE), Normalize(history.ZMOBILE));
|
||||
AddDiff(diffs, "ZSTATUS", Normalize(current.ZSTATUS), Normalize(history.ZSTATUS));
|
||||
AddDiff(diffs, "KOSTL_XJ", Normalize(current.KOSTL_XJ), Normalize(history.KOSTL_XJ));
|
||||
AddDiff(diffs, "NAME2", Normalize(current.NAME2), Normalize(history.NAME2));
|
||||
AddDiff(diffs, "ZZ_ZD", Normalize(current.ZZ_ZD), Normalize(history.ZZ_ZD));
|
||||
AddDiff(diffs, "Z_ZJ", Normalize(current.Z_ZJ), Normalize(history.Z_ZJ));
|
||||
AddDiff(diffs, "ZRZRQ", FormatDate(current.ZRZRQ), FormatDate(history.ZRZRQ));
|
||||
AddDiff(diffs, "ZLZRQ", FormatDate(current.ZLZRQ), FormatDate(history.ZLZRQ));
|
||||
AddDiff(diffs, "PLANS", Normalize(current.PLANS), Normalize(history.PLANS));
|
||||
AddDiff(diffs, "STELL_NM", Normalize(current.STELL_NM), Normalize(history.STELL_NM));
|
||||
AddDiff(diffs, "MASSN", Normalize(current.MASSN), Normalize(history.MASSN));
|
||||
AddDiff(diffs, "MNTXT", Normalize(current.MNTXT), Normalize(history.MNTXT));
|
||||
AddDiff(diffs, "ZZ_GZDJD", Normalize(current.ZZ_GZDJD), Normalize(history.ZZ_GZDJD));
|
||||
AddDiff(diffs, "ZZ_GZDCQ", Normalize(current.ZZ_GZDCQ), Normalize(history.ZZ_GZDCQ));
|
||||
|
||||
return diffs;
|
||||
}
|
||||
|
||||
private static void AddDiff(List<string> diffs, string field, string current, string history)
|
||||
{
|
||||
if (!string.Equals(current ?? string.Empty, history ?? string.Empty, StringComparison.Ordinal))
|
||||
{
|
||||
diffs.Add($"{field}: [{history}] -> [{current}]");
|
||||
}
|
||||
}
|
||||
|
||||
private static string Normalize(string value) => value?.Trim() ?? string.Empty;
|
||||
|
||||
private static string NormalizeIdNo(string value) => value?.TrimStart() ?? string.Empty;
|
||||
|
||||
private static string FormatDate(DateTime? value) => value?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty;
|
||||
|
||||
private static string FormatDate(DateTime value) => value.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user