private bool InsertWeixinClock(Enum打卡类型 type, GetMemberResult member) { var rtId = "144.1"; var rcId = pinhuaContext.GetNewRcId(); var repCase = new EsRepCase { RcId = rcId, RtId = rtId, LstFiller = 2, LstFillerName = member.name, LstFillDate = DateTime.Now, FillDate = DateTime.Now, }; var record = new WeixinClock { ExcelServerRtid = rtId, ExcelServerRcid = rcId, ClockPlanId = pinhuaContext.GetCurrentClockRange().ExcelServerRcid, ClockRangeId = pinhuaContext.GetCurrentClockRange().RangeId, Clocktype = (int?)type, Weixinid = member.weixinid, Userid = member.userid, Name = member.name, Clocktime = DateTime.Now, }; pinhuaContext.EsRepCase.Add(repCase); pinhuaContext.WeixinClock.Add(record); var b = pinhuaContext.SaveChanges(); if (b > 0) { return(true); } else { return(false); } }
private bool CheckClockOut(GetMemberResult member, Enum打卡类型 type, out List <string> errors) { var b = true; errors = new List <string>(); var sType = "签退"; if (!pinhuaContext.IsInternalNetwork()) { errors.Add($"你的IP地址为 {pinhuaContext.ClientIp()} ,非公司网络"); b = false; } var planDetail = pinhuaContext.GetCurrentClockRange(); if (planDetail == null) { errors.Add("非工作时段"); b = false; } else { planDetail.今天的签退区间(out var t1, out var t2); if (!DateTime.Now.IsBetween(t1, t2)) { errors.Add($"{planDetail.Name}的{sType}时间是 {t1.ToShortTimeString()}~{t2.ToShortTimeString()}"); b = false; } var r = from p in pinhuaContext.WeixinClock where member.userid == p.Userid && p.Clocktime.Value.IsBetween(t1, t2) && p.Clocktype == (int)Enum打卡类型.签退 select p; if (r.Count() > 0) { errors.Add($"当前班段 {r.FirstOrDefault().Clocktime.Value.ToShortTimeString()} 已经有过{sType}记录,请勿重复打卡!"); b = false; } } return(b); }