diff --git a/Src/Dlhis.Basic/Organization/Comparers/SapPersonComparer.cs b/Src/Dlhis.Basic/Organization/Comparers/SapPersonComparer.cs index 25f3e209..acfab46c 100644 --- a/Src/Dlhis.Basic/Organization/Comparers/SapPersonComparer.cs +++ b/Src/Dlhis.Basic/Organization/Comparers/SapPersonComparer.cs @@ -15,56 +15,56 @@ public class SapPersonComparer : IEqualityComparer if (ReferenceEquals(y, null)) return false; return x.PERNR == y.PERNR - && x.WERKS == y.WERKS - && x.ORGEH == y.ORGEH - && x.NAME == y.NAME - && x.GBDAT == y.GBDAT - && (x.ZZ_SFZH ?? string.Empty) == (y.ZZ_SFZH ?? string.Empty) - && x.ZWORKCODE == y.ZWORKCODE - && (x.ZMOBILE ?? string.Empty) == (y.ZMOBILE ?? string.Empty) - && (x.ZSTATUS ?? string.Empty) == (y.ZSTATUS ?? string.Empty) - && (x.KOSTL ?? string.Empty) == (y.KOSTL ?? string.Empty) - && (x.ZZ_ZD ?? string.Empty) == (y.ZZ_ZD ?? string.Empty) - && (x.Z_ZJ ?? string.Empty) == (y.Z_ZJ ?? string.Empty) - && x.ZRZRQ == y.ZRZRQ - && x.ZLZRQ == y.ZLZRQ - && (x.STELL ?? string.Empty) == (y.STELL ?? string.Empty) - && (x.STELL_NM ?? string.Empty) == (y.STELL_NM ?? string.Empty) - && (x.MASSN ?? string.Empty) == (y.MASSN ?? string.Empty) - && (x.MNTXT ?? string.Empty) == (y.MNTXT ?? string.Empty) - && (x.ZXUELI ?? string.Empty).Trim() == (y.ZXUELI ?? string.Empty).Trim() - //&& (x.ZZ_KLX ?? string.Empty) == (y.ZZ_KLX ?? string.Empty) - && (x.ZZ_GZDJD ?? string.Empty) == (y.ZZ_GZDJD ?? string.Empty) - && (x.ZZ_GZDCQ ?? string.Empty) == (y.ZZ_GZDCQ ?? string.Empty) + && x.WERKS == y.WERKS + && x.ORGEH == y.ORGEH + && x.NAME == y.NAME + && x.GBDAT == y.GBDAT + && (x.ZZ_SFZH ?? string.Empty) == (y.ZZ_SFZH ?? string.Empty) + && x.ZWORKCODE == y.ZWORKCODE + && (x.ZMOBILE ?? string.Empty) == (y.ZMOBILE ?? string.Empty) + && (x.ZSTATUS ?? string.Empty) == (y.ZSTATUS ?? string.Empty) + && (x.KOSTL ?? string.Empty) == (y.KOSTL ?? string.Empty) + && (x.ZZ_ZD ?? string.Empty) == (y.ZZ_ZD ?? string.Empty) + && (x.Z_ZJ ?? string.Empty) == (y.Z_ZJ ?? string.Empty) + && x.ZRZRQ == y.ZRZRQ + && x.ZLZRQ == y.ZLZRQ + && (x.STELL ?? string.Empty) == (y.STELL ?? string.Empty) + && (x.STELL_NM ?? string.Empty) == (y.STELL_NM ?? string.Empty) + && (x.MASSN ?? string.Empty) == (y.MASSN ?? string.Empty) + && (x.MNTXT ?? string.Empty) == (y.MNTXT ?? string.Empty) + //&& (x.ZXUELI ?? string.Empty).Trim() == (y.ZXUELI ?? string.Empty).Trim() + //&& (x.ZZ_KLX ?? string.Empty) == (y.ZZ_KLX ?? string.Empty) + && (x.ZZ_GZDJD ?? string.Empty) == (y.ZZ_GZDJD ?? string.Empty) + && (x.ZZ_GZDCQ ?? string.Empty) == (y.ZZ_GZDCQ ?? string.Empty) ; } public int GetHashCode(SapPersonItem obj) { var r = obj.PERNR.SafeGetHashCode() - ^ obj.WERKS.SafeGetHashCode() - ^ obj.ORGEH.SafeGetHashCode() - ^ obj.NAME.SafeGetHashCode() - ^ obj.GBDAT.SafeGetHashCode() - ^ obj.ZZ_SFZH.SafeGetHashCode() - ^ obj.ZWORKCODE.SafeGetHashCode() - ^ obj.ZMOBILE.SafeGetHashCode() - ^ obj.ZSTATUS.SafeGetHashCode() - ^ obj.KOSTL.SafeGetHashCode() - ^ obj.ZZ_ZD.SafeGetHashCode() - ^ obj.Z_ZJ.SafeGetHashCode() - ^ obj.ZRZRQ.SafeGetHashCode() - ^ obj.ZLZRQ.SafeGetHashCode() - ^ obj.STELL.SafeGetHashCode() - ^ obj.STELL_NM.SafeGetHashCode() - ^ obj.MASSN.SafeGetHashCode() - ^ obj.MNTXT.SafeGetHashCode() - ^ obj.ZXUELI.SafeGetHashCode() - //^ obj.ZZ_KLX.SafeGetHashCode() - ^ obj.ZZ_GZDJD.SafeGetHashCode() - ^ obj.ZZ_GZDCQ.SafeGetHashCode() + ^ obj.WERKS.SafeGetHashCode() + ^ obj.ORGEH.SafeGetHashCode() + ^ obj.NAME.SafeGetHashCode() + ^ obj.GBDAT.SafeGetHashCode() + ^ obj.ZZ_SFZH.SafeGetHashCode() + ^ obj.ZWORKCODE.SafeGetHashCode() + ^ obj.ZMOBILE.SafeGetHashCode() + ^ obj.ZSTATUS.SafeGetHashCode() + ^ obj.KOSTL.SafeGetHashCode() + ^ obj.ZZ_ZD.SafeGetHashCode() + ^ obj.Z_ZJ.SafeGetHashCode() + ^ obj.ZRZRQ.SafeGetHashCode() + ^ obj.ZLZRQ.SafeGetHashCode() + ^ obj.STELL.SafeGetHashCode() + ^ obj.STELL_NM.SafeGetHashCode() + ^ obj.MASSN.SafeGetHashCode() + ^ obj.MNTXT.SafeGetHashCode() + //^ obj.ZXUELI.SafeGetHashCode() + //^ obj.ZZ_KLX.SafeGetHashCode() + ^ obj.ZZ_GZDJD.SafeGetHashCode() + ^ obj.ZZ_GZDCQ.SafeGetHashCode() ; return r; } -} +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs index b824e883..541c4e21 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs @@ -207,6 +207,7 @@ public class GainfoService : IGainfoService if (gainfo == null) { //开启同步处理 + //todo 逻辑错误,但是不影响使用 await _jinkoSapService.GetPersonsByCodeAsync(code); gainfo = await _gainfoStore.Queryable().Where(x => x.Code == code).SingleAsync(); if (gainfo == null) return null; @@ -273,7 +274,7 @@ public class GainfoService : IGainfoService .Where(x => (x.IsEnterDoorArea && x.DoorStatus != VisitorAppointmentDetailStatusEnumType.Leave) || (x.IsEnterWorkplace && x.WorkplaceStatus != VisitorAppointmentDetailStatusEnumType.Leave)) .ToListAsync(); - + // 对每条未离开的访客预约明细,调用预约服务进行强制离开处理 foreach (var visitorAppointment in visitorAppointmentDetails) { @@ -287,7 +288,7 @@ public class GainfoService : IGainfoService await _dbContext.Deleteable().Where(x => x.UserNo == gainfo.No).ExecuteCommandAsync(); await _dbContext.Deleteable().Where(x => x.AssignType == AssignTypeEnumType.User && x.AssignValue == gainfo.No).ExecuteCommandAsync(); } - + //先写入离职表 gainfo.IdentityUserId = (int)gainfo.Id; //记录原始id gainfo.ResignationDate = request.Date; diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs index b19bb912..16206218 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoUpdateService.cs @@ -481,18 +481,19 @@ public class GainfoUpdateService : IGainfoUpdateService { return data.Select(person => { - var rzrq = person.ZRZRQ; - var lzrq = person.ZLZRQ; - var rmk = $"入职时间:{rzrq.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)} "; + var entryDate = person.ZRZRQ; + var resignDate = person.ZLZRQ; - if (lzrq != null && lzrq.Value.ToString("yyyy-MM-dd") != "1900-01-01") - rmk += $"离职时间:{lzrq.Value.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)} "; + var rmk = $"入职时间:{entryDate.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)} "; + + if (resignDate != null && resignDate.Value.ToString("yyyy-MM-dd") != "1900-01-01") + rmk += $"离职时间:{resignDate.Value.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)} "; if (!string.IsNullOrWhiteSpace(person.MGTXT)) rmk += $"变更原因:{person.MGTXT}"; var native = GetNative(person.ZZ_SFZH); - var sex = person.GESCH == "2" ? "F" : "M"; + var gender = person.GESCH == "2" ? "F" : "M"; person.ZZ_SFZH = person.ZZ_SFZH.TrimStart(); GainfoSapEntity o = new() @@ -518,14 +519,10 @@ public class GainfoUpdateService : IGainfoUpdateService MNTXT = person.MNTXT, remark = rmk, native = native, - sex = sex, + sex = gender, logdate = DateTime.Now, isowner = int.Parse(person.ZSTATUS) < 5 ? "T" : "F", - @class = "C", country = person.ZZ_COUNNM, - log_ip = "127.0.0.1", - log_shift = "1", - log_id = "XX", address = "", occupation = "99", nation = "01",