using Dapper; using Learun.DataBase.Repository; using Learun.Util; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace Learun.Application.TwoDevelopment.EducationalAdministration { /// /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 /// 创 建:超级管理员 /// 日 期:2022-06-17 11:00 /// 描 述:体温上报 /// public class HealthPunchStuService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@"* "); strSql.Append(" FROM HealthPunchStu t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取HealthPunchStu表实体数据 /// /// 主键 /// public HealthPunchStuEntity GetHealthPunchStuEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetStatistics(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); var queryParam = queryJson.ToJObject(); // 虚拟参数 string sql1 = " "; string sql2 = " "; if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) { sql1 = " and DkDate >= '" + queryParam["StartTime"].ToDate() + "' and DkDate <= '" + queryParam["EndTime"].ToDate() + "' "; } if (!queryParam["F_School"].IsEmpty()) { sql2 = " and F_School ='" + queryParam["F_School"].ToString() + "' "; } if (!queryParam["MajorNo"].IsEmpty()) { sql2 += " and MajorNo ='" + queryParam["MajorNo"].ToString() + "'"; } if (!queryParam["ClassNo"].IsEmpty()) { sql2 += " and ClassNo ='" + queryParam["ClassNo"].ToString() + "'"; } if (!queryParam["StuNo"].IsEmpty()) { sql2 += " and StuNo like '%" + queryParam["StuNo"].ToString() + "%'"; } if (!queryParam["StuName"].IsEmpty()) { sql2 += " and StuName like '%" + queryParam["StuName"].ToString() + "%'"; } if (!queryParam["IsStatus"].IsEmpty()) { string Num = queryParam["IsStatus"].ToString(); if (Num == "0") { sql2 += " and t.num = '" + Num + "' "; } else if (Num == "1") { sql2 += " and t.num < '3' and t.num <> '0' "; } else if (Num == "2") { sql2 += " and t.num = '3' "; } } strSql.Append(@" select * from ( select zb.F_SchoolId as F_School,zb.MajorNo,zb.ClassNo,zb.StuNo,zb.StuName,zb.mobile,isnull(fb.DkDate,Getdate()) as DkDate, fb.Address1,fb.Address2,fb.Address3,fb.Temperature1,fb.Temperature2,fb.Temperature3,isnull(fb.Num,0) as Num from StuInfoBasic zb left join ( select hps.*,aa.address as Address1,aa.Temperature as Temperature1 ,bb.address as Address2,bb.Temperature as Temperature2,cc.address as Address3 ,cc.Temperature as Temperature3,dd.Num from ( select StuNo,StuName,DkDate from HealthPunchStu hps where 1=1 " + sql1 + ""); strSql.Append(@" group by StuNo,StuName,DkDate) hps left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) AA on AA.StuNo=hps.StuNo and AA.StuName=hps.StuName and AA.dkType=1 left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) BB on BB.StuNo=hps.Stuno and BB.StuName=hps.StuName and BB.dkType=2 left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) CC on CC.StuNo=hps.Stuno and CC.StuName=hps.StuName and CC.dkType=3 left join (select Stuno,Count(*) as num from HealthPunchStu hps where 1=1 " + sql1 + " "); strSql.Append(@" group by Stuno ) dd on dd.StuNo=hps.Stuno ) fb on fb.Stuno = zb.stuno and fb.StuName = zb.StuName )t where 1= 1 " + sql1 + sql2 + " "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetStatisticsTeach(Pagination pagination, string queryJson) { try { var account = LoginUserInfo.Get().account; var classinfo = this.BaseRepository("CollegeMIS").FindList(x => x.ClassDiredctorNo == account).ToList(); var strSql = new StringBuilder(); var queryParam = queryJson.ToJObject(); // 虚拟参数 string sql1 = " "; string sql2 = " "; if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) { sql1 = " and DkDate >= '" + queryParam["StartTime"].ToDate() + "' and DkDate <= '" + queryParam["EndTime"].ToDate() + "' "; } if (classinfo.Count > 0) { var classno = classinfo.FirstOrDefault(); if (classinfo.Count == 1) { sql2 += " and ClassNo ='" + classno.ClassNo + "'"; } else { sql2 += " and ("; for (int i = 0; i < classinfo.Count; i++) { if (i == 0) { sql2 += " classno ='" + classinfo[i].ClassNo + "' "; } else { sql2 += " or classno ='" + classinfo[i].ClassNo + "' "; } } sql2 += ")"; } } else { sql2 += " and t.num = '-1' "; } if (!queryParam["ClassNo"].IsEmpty()) { sql2 += " and ClassNo ='" + queryParam["ClassNo"].ToString() + "'"; } if (!queryParam["StuNo"].IsEmpty()) { sql2 += " and StuNo like '%" + queryParam["StuNo"].ToString() + "%'"; } if (!queryParam["StuName"].IsEmpty()) { sql2 += " and StuName like '%" + queryParam["StuName"].ToString() + "%'"; } if (!queryParam["IsStatus"].IsEmpty()) { string Num = queryParam["IsStatus"].ToString(); if (Num == "0") { sql2 += " and t.num = '" + Num + "' "; } else if (Num == "1") { sql2 += " and t.num < '3' and t.num <> '0' "; } else if (Num == "2") { sql2 += " and t.num = '3' "; } } strSql.Append(@" select * from ( select zb.F_SchoolId as F_School,zb.MajorNo,zb.ClassNo,zb.StuNo,zb.StuName,zb.mobile,isnull(fb.DkDate,Getdate()) as DkDate, fb.Address1,fb.Address2,fb.Address3,fb.Temperature1,fb.Temperature2,fb.Temperature3,isnull(fb.Num,0) as Num from StuInfoBasic zb left join ( select hps.*,aa.address as Address1,aa.Temperature as Temperature1 ,bb.address as Address2,bb.Temperature as Temperature2,cc.address as Address3 ,cc.Temperature as Temperature3,dd.Num from ( select StuNo,StuName,DkDate from HealthPunchStu hps where 1=1 " + sql1 + ""); strSql.Append(@" group by StuNo,StuName,DkDate) hps left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) AA on AA.StuNo=hps.StuNo and AA.StuName=hps.StuName and AA.dkType=1 left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) BB on BB.StuNo=hps.Stuno and BB.StuName=hps.StuName and BB.dkType=2 left join (select * from HealthPunchStu where 1=1 " + sql1 + ""); strSql.Append(@" ) CC on CC.StuNo=hps.Stuno and CC.StuName=hps.StuName and CC.dkType=3 left join (select Stuno,Count(*) as num from HealthPunchStu hps where 1=1 " + sql1 + " "); strSql.Append(@" group by Stuno ) dd on dd.StuNo=hps.Stuno ) fb on fb.Stuno = zb.stuno and fb.StuName = zb.StuName )t where 1= 1 " + sql1 + sql2 + " "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// /// 主键 public void DeleteEntity(string keyValue) { try { this.BaseRepository("CollegeMIS").Delete(t => t.ID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 public void SaveEntity(string keyValue, HealthPunchStuEntity entity) { try { var userInfo = LoginUserInfo.Get(); var stuInfo = this.BaseRepository("CollegeMIS").FindEntity(x => x.StuNo == userInfo.account); if (stuInfo != null) { entity.StuNo = stuInfo.StuNo; entity.StuName = userInfo.realName; entity.Phone = stuInfo.mobile; entity.F_School = stuInfo.F_SchoolId; entity.DeptNo = stuInfo.DeptNo; entity.MajorNo = stuInfo.MajorNo; entity.ClassNo = stuInfo.ClassNo; entity.Grade = stuInfo.Grade; entity.Sex = Convert.ToInt32(stuInfo.GenderNo); entity.CreateTime = DateTime.Now; entity.DKDate = DateTime.Now; entity.Year = DateTime.Now.Year.ToString(); entity.Moth = DateTime.Now.Month.ToString(); entity.Day = DateTime.Now.Day.ToString(); } entity.Create(); this.BaseRepository("CollegeMIS").Insert(entity); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public string PunchCard(string keyValue, HealthPunchStuEntity entity) { try { //获取打卡规则 var dktime1 = this.BaseRepository("CollegeMIS").FindEntity(x => x.CheckMark == 0 && x.Description == "1"); var dktime2 = this.BaseRepository("CollegeMIS").FindEntity(x => x.CheckMark == 0 && x.Description == "2"); var dktime3 = this.BaseRepository("CollegeMIS").FindEntity(x => x.CheckMark == 0 && x.Description == "3"); var datenow = DateTime.Now.ToString("yyyy-MM-dd"); DateTime Nowdate = DateTime.Now; DateTime todyTime = DateTime.Now.Date; var userInfo = LoginUserInfo.Get(); if (dktime1 != null && dktime2 != null && dktime3 != null) { DateTime Startime1 = Convert.ToDateTime(datenow + " " + dktime1.StarTime); DateTime Startime2 = Convert.ToDateTime(datenow + " " + dktime1.EndTime); DateTime Startime3 = Convert.ToDateTime(datenow + " " + dktime2.StarTime); DateTime Startime4 = Convert.ToDateTime(datenow + " " + dktime2.EndTime); DateTime Startime5 = Convert.ToDateTime(datenow + " " + dktime3.StarTime); DateTime Startime6 = Convert.ToDateTime(datenow + " " + dktime3.EndTime); #region 学生数据 var stuInfo = this.BaseRepository("CollegeMIS").FindEntity(x => x.StuNo == userInfo.account); if (stuInfo != null) { entity.StuNo = stuInfo.StuNo; entity.StuName = userInfo.realName; entity.Phone = stuInfo.mobile; entity.F_School = stuInfo.F_SchoolId; entity.DeptNo = stuInfo.DeptNo; entity.MajorNo = stuInfo.MajorNo; entity.ClassNo = stuInfo.ClassNo; entity.Grade = stuInfo.Grade; entity.Sex = Convert.ToInt32(stuInfo.GenderNo); entity.CreateTime = DateTime.Now; entity.DKDate = DateTime.Now; entity.Year = DateTime.Now.Year.ToString(); entity.Moth = DateTime.Now.Month.ToString(); entity.Day = DateTime.Now.Day.ToString(); } else { return "学生数据不存在!"; } #endregion if (Startime1 <= Nowdate && Startime2 >= Nowdate) //早上打卡 { var HealthPunchStu = this.BaseRepository("CollegeMIS").FindEntity(x => x.DKDate == todyTime && x.DKType == "1" && x.StuNo == userInfo.account); if (HealthPunchStu == null) { entity.DKType = "1"; } else { return "请勿重复打卡!"; } } else if (Startime3 <= Nowdate && Startime4 >= Nowdate) { var HealthPunchStu = this.BaseRepository("CollegeMIS").FindEntity(x => x.DKDate == todyTime && x.DKType == "2" && x.StuNo == userInfo.account); if (HealthPunchStu == null) { entity.DKType = "2"; } else { return "请勿重复打卡!"; } } else if (Startime5 <= Nowdate && Startime6 >= Nowdate) { var HealthPunchStu = this.BaseRepository("CollegeMIS").FindEntity(x => x.DKDate == todyTime && x.DKType == "3" && x.StuNo == userInfo.account); if (HealthPunchStu == null) { entity.DKType = "3"; } else { return "请勿重复打卡"; } } else { return "请在规定的时间段内打卡!"; } } else { return "请先设置打卡时间"; } entity.Create(); this.BaseRepository("CollegeMIS").Insert(entity); return "保存成功"; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion } }