diff --git a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs index c73899f0..8a30c9f7 100644 --- a/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs +++ b/Src/Dlhis.ScheduledTask/SyncSapInfo/Job/SyncPersonJob.cs @@ -139,6 +139,20 @@ public class SyncPersonJob { db.Client.Insertable(item).ExecuteCommand(); + var info = GainfoSapToGainfo(item); + + if (item.isowner == "T") + { + db.Client.Insertable(info).ExecuteCommand(); + } + else + { + db.Client.Insertable(info).AS("GainfoLeave").ExecuteCommand(); + } + } + + private GainfoEntity GainfoSapToGainfo(GainfoSapEntity item) + { var info = new GainfoEntity { No = Guid.NewGuid().ToString(), @@ -164,14 +178,7 @@ public class SyncPersonJob Factory = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDCQNM)?.Code ?? item.ZZ_GZDCQNM, }; - if (item.isowner == "T") - { - db.Client.Insertable(info).ExecuteCommand(); - } - else - { - db.Client.Insertable(info).AS("GainfoLeave").ExecuteCommand(); - } + return info; } private void UpdatePerson(IDbContext db, GainfoSapEntity item) @@ -197,28 +204,40 @@ public class SyncPersonJob var gainfo = db.Queryable().Where(x => x.Code == item.ename).First(); if (item.isowner == "T") { - var workplace = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDJDNM)?.Code ?? item.ZZ_GZDJDNM; - var factory = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDCQNM)?.Code ?? item.ZZ_GZDCQNM; - db.Updateable().SetColumns(g => new GainfoEntity + if (gainfo != null) { - SapNo = item.PERNR, - Name = item.gname, - Position = item.web, - Phone = item.phone, - DepartmentNo = item.appellation, - Remark = item.remark, - Degree = item.email, - Werks = item.WERKS, - Workplace = workplace, - Factory = factory - }) - .Where(x => x.Code == item.ename) - .ExecuteCommand(); + var workplace = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDJDNM)?.Code ?? item.ZZ_GZDJDNM; + var factory = _tenants.FirstOrDefault(x => x.Name == item.ZZ_GZDCQNM)?.Code ?? item.ZZ_GZDCQNM; + db.Updateable().SetColumns(g => new GainfoEntity + { + SapNo = item.PERNR, + Name = item.gname, + Position = item.web, + Phone = item.phone, + DepartmentNo = item.appellation, + Remark = item.remark, + Degree = item.email, + Werks = item.WERKS, + Workplace = workplace, + Factory = factory + }) + .Where(x => x.Code == item.ename) + .ExecuteCommand(); + } + else + { + var info = GainfoSapToGainfo(item); + db.Client.Insertable(info).ExecuteCommand(); + } } else { - db.Client.Deleteable(gainfo).ExecuteCommand(); - db.Client.Insertable(gainfo).AS("GainfoLeave").ExecuteCommand(); + if (gainfo != null) + { + db.Client.Deleteable(gainfo).ExecuteCommand(); + gainfo.Id = 0; + db.Client.Insertable(gainfo).AS("GainfoLeave").ExecuteCommand(); + } } } @@ -288,6 +307,9 @@ public class SyncPersonJob ZLZRQ = x.ZLZRQ?.ToString("yyyy-MM-dd"), MASSN = x.MASSN, MNTXT = x.MNTXT, + ZZ_COUNNM = x.ZZ_COUNNM, + ZZ_GZDJDNM = x.ZZ_GZDJDNM, + ZZ_GZDCQNM = x.ZZ_GZDCQNM }) .ToList(); } @@ -354,6 +376,7 @@ public class SyncPersonJob address = "", occupation = "99", nation = "01", + idcls = "ID", ZZ_COUNNM = person.ZZ_COUNNM, ZZ_GZDJDNM = person.ZZ_GZDJDNM, ZZ_GZDCQNM = person.ZZ_GZDCQNM,