public void EmpSync() { var ulist = GetDdUserList(); AttUserOper auo = new AttUserOper(); ulist.ForEach(p => { var kqu = Dkc.KqUsers.FirstOrDefault(ku => ku.DdId == p.DdId); if (kqu == null) { KqUser ku = p.ToSon <DdApi.Model.User, KqUser>(); var u = auo.GetUserinfo(ku.UserName); if (u != null) { ku.AttDeptId = (int)u.DEFAULTDEPTID; ku.AttUserId = u.USERID; } Dkc.KqUsers.Add(ku); } else if (kqu != null && kqu.AttUserId == 0) { var u = auo.GetUserinfo(kqu.UserName); if (u != null) { kqu.AttDeptId = (int)u.DEFAULTDEPTID; kqu.AttUserId = u.USERID; } } }); Dkc.SaveChanges(); }
public void SyncByFailRecord(List <FailRecord> failRecords) { var kuList = Dkc.KqUsers.ToList(); failRecords.ForEach(p => { if (!p.IsSucess) { var u = kuList.FirstOrDefault(k => k.DdId == p.DDid); if (u == null) { p.Note += "|" + DateTime.Now + "_未同步到考勤系统"; } else if (u.AttUserId == 0) { p.Note += "|" + DateTime.Now + "_考勤系统中未找到该员工"; } else { var ar = GetCheckInOutRecord(new List <string>() { p.DDid }, p.BegingDate, p.EndDate); List <CHECKINOUT> cios = new List <CHECKINOUT>(); ar.ForEach(aritem => { if (aritem.TimeResult != "NotSigned") { int c = Ac.CHECKINOUT.Count(ci => ci.USERID == u.AttUserId && ci.CHECKTIME == aritem.CheckTime); if (c == 0) { cios.Add(new CHECKINOUT { USERID = u.AttUserId, CHECKTYPE = "I", CHECKTIME = aritem.CheckTime, VERIFYCODE = 1, SENSORID = "3", sn = "0246361160468", }); } } }); var list = cios.Distinct(new CheckInoutComparer()).ToList(); Ac.CHECKINOUT.AddRange(list); p.IsSucess = true; p.Note += "|" + DateTime.Now + "_同步成功"; } Dkc.SaveChanges(); Ac.SaveChanges(); } }); }
private int WriteSyncRecord(DateTime datetimeBegin, DateTime datetimeEnd) { AttSyncRecord asr = new AttSyncRecord { SyncTime = DateTime.Now, BeginTime = datetimeBegin, EndTime = datetimeEnd, Note = "手动操作同步" }; Dkc.AttSyncRecords.Add(asr); Dkc.SaveChanges(); return(asr.Id); }
public void WriteToAttSystem(List <AttRecord> attRecords, DateTime datetimeBegin, DateTime datetimeEnd) { List <CHECKINOUT> cios; var kuList = Dkc.KqUsers.ToList(); int recordId = WriteSyncRecord(datetimeBegin, datetimeEnd); List <string> ddlist = attRecords.Select(p => p.DdId).Distinct().ToList(); ddlist.ForEach(ddid => { var u = kuList.FirstOrDefault(p => p.DdId == ddid); if (u == null) { //人员未同步 Dkc.FailRecords.Add(new FailRecord { DDid = ddid, BegingDate = datetimeBegin, EndDate = datetimeEnd, SyncId = recordId, IsSucess = false, Note = DateTime.Now + "_未同步到考勤系统" }); } else if (u.AttUserId == 0) { //考勤系统未添加 Dkc.FailRecords.Add(new FailRecord { DDid = ddid, BegingDate = datetimeBegin, EndDate = datetimeEnd, SyncId = recordId, IsSucess = false, UserName = u.UserName, DeptName = u.DepartName, Note = "考勤系统中未找到该员工" }); } else { cios = new List <CHECKINOUT>(); attRecords.Where(a => a.DdId == ddid).ToList().ForEach(p => { if (p.TimeResult != "NotSigned") { int c = Ac.CHECKINOUT.Count(ci => ci.USERID == u.AttUserId && ci.CHECKTIME == p.CheckTime); if (c == 0) { cios.Add(new CHECKINOUT { USERID = u.AttUserId, CHECKTYPE = "I", CHECKTIME = p.CheckTime, VERIFYCODE = 1, SENSORID = "3", sn = "0246361160468", }); } } }); var list = cios.Distinct(new CheckInoutComparer()).ToList(); Ac.CHECKINOUT.AddRange(list); } Dkc.SaveChanges(); Ac.SaveChanges(); }); }