using Dapper; using Learun.DataBase.Repository; using Learun.Util; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Learun.Application.Organization; using Learun.Application.TwoDevelopment.EducationalAdministration; namespace Learun.Application.TwoDevelopment.PersonnelManagement { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2018 北京泉江科技有限公司 /// 创 建:超级管理员 /// 日 期:2020-02-03 14:37 /// 描 述:疫情记录 /// public class EpidemicSituationService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表分页数据 /// /// 分页参数 /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.ID, t.Creater, t.UnitName, t.BackUser, t.Type, t.Department, t.RelationShip, t.Gender, t.IDCard, t.HomeAddress, t.Mobile, t.Provice, t.Objective, t.OutReason, t.OutTime, t.BackHomeTime, t.Vehicle, t.VehicleNum, t.BackAddress, t.CreateTime, t.HealthSituation, t.OutArea, t.City, t.IsOut, t.HasFamily, t.HasPeople, t.StudentSource, t.Contacts,d.ClassDiredctorNo "); strSql.Append(" FROM EpidemicSituation t left join "+ BaseRepository().getDbConnection().Database+ ".dbo.LR_Base_User b on t.Creater=b.F_UserId left join stuinfobasic c on b.F_EnCode=c.stuno left join classinfo d on c.classno=d.classno "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) { dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); strSql.Append(" AND ( t.CreateTime >= @startTime AND t.CreateTime <= @endTime ) "); } if (!queryParam["Creater"].IsEmpty()) { dp.Add("Creater", "%"+queryParam["Creater"].ToString()+"%", DbType.String); strSql.Append(" AND c.StuName like @Creater "); } if (!queryParam["Type"].IsEmpty()) { dp.Add("Type", queryParam["Type"].ToString(), DbType.String); strSql.Append(" AND t.Type = @Type "); } if (!queryParam["IDCard"].IsEmpty()) { dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); strSql.Append(" AND t.IDCard Like @IDCard "); } if (!queryParam["UnitName"].IsEmpty()) { dp.Add("UnitName", "%" + queryParam["UnitName"].ToString() + "%", DbType.String); strSql.Append(" AND t.UnitName Like @UnitName "); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取页面显示列表分页数据 /// /// 分页参数 /// 查询参数 /// public List GetReportPageList(Pagination pagination, string queryJson) { try { var dangerPlace = "330000,440000,500000,310000,420100,510100,513423,513435".Split(',').ToList(); var dangerEID = this.BaseRepository("CollegeMIS").FindList(a => dangerPlace.Contains(a.Province) || dangerPlace.Contains(a.City) || dangerPlace.Contains(a.Area)) .Select(a => a.EID).Distinct().ToList(); var allEpiList = this.BaseRepository("CollegeMIS").FindList(); var allUserID = allEpiList.GroupBy(a => a.Creater).Select(a => a.Key); var dangerUserID = this.BaseRepository("CollegeMIS").FindList(a => dangerEID.Contains(a.ID)).GroupBy(a => a.Creater).Select(a => a.Key).ToList(); var list = new List(); foreach (var item in allUserID) { var entity = allEpiList.FirstOrDefault(a => a.Creater == item); if (dangerUserID.Contains(entity.Creater)) { entity.IsGoDangerPlace = true; } if (allEpiList.Any(a => a.Creater == item && a.IsOut == 1)) { entity.IsOut = 1; } if (allEpiList.Any(a => a.Creater == item && a.HasFamily == 1)) { entity.HasFamily = 1; } if (allEpiList.Any(a => a.Creater == item && a.HasPeople == 1)) { entity.HasPeople = 1; } list.Add(entity); } var expression = LinqExtensions.True(); var queryParam = queryJson.ToJObject(); // 填表人员 if (!queryParam["Creater"].IsEmpty()) { string Creater = queryParam["Creater"].ToString(); var studentlist = BaseRepository().FindList(m=>m.F_RealName.Contains(Creater)); expression = expression.And(t => studentlist.Any(m=>m.F_UserId== t.Creater)); } // 类别 if (!queryParam["Type"].IsEmpty()) { int Type = 0; int.TryParse(queryParam["Type"].ToString(), out Type); expression = expression.And(t => t.Type.Equals(Type)); } // 学生来源 if (!queryParam["StudentSource"].IsEmpty()) { string StudentSource = queryParam["StudentSource"].ToString(); expression = expression.And(t => t.StudentSource.Contains(StudentSource)); } list = this.BaseRepository("CollegeMIS").FindList(list, expression, pagination).ToList(); return list; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取页面显示列表数据 /// /// 查询参数 /// public IEnumerable GetList(string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.ID, t.Creater, t.UnitName, t.BackUser, t.Type, t.Department, t.RelationShip, t.Gender, t.IDCard, t.HomeAddress, t.Mobile, t.Provice, t.Objective, t.OutReason, t.OutTime, t.BackHomeTime, t.Vehicle, t.VehicleNum, t.BackAddress, t.CreateTime, t.HealthSituation, t.OutArea, t.StudentSource, t.City, t.Contacts "); strSql.Append(" FROM EpidemicSituation t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["Creater"].IsEmpty()) { dp.Add("Creater", "%" + queryParam["Creater"].ToString() + "%", DbType.String); strSql.Append(" AND t.Creater Like @Creater "); } if (!queryParam["Type"].IsEmpty()) { dp.Add("Type", queryParam["Type"].ToString(), DbType.String); strSql.Append(" AND t.Type = @Type "); } if (!queryParam["IDCard"].IsEmpty()) { dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); strSql.Append(" AND t.IDCard Like @IDCard "); } if (!queryParam["UnitName"].IsEmpty()) { dp.Add("UnitName", "%" + queryParam["UnitName"].ToString() + "%", DbType.String); strSql.Append(" AND t.UnitName Like @UnitName "); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表数据 /// /// public IEnumerable GetContactsDetailsList(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindList(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表数据 /// /// public IEnumerable GetPeopleDetailsList(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindList(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表数据 /// /// public IEnumerable GetPassPlaceList(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindList(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表实体数据 /// 主键 /// /// public ContactsDetailsEntity GetContactsDetailsEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表实体数据 /// 主键 /// /// public PeopleDetailsEntity GetPeopleDetailsEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ContactsDetails表实体数据 /// 主键 /// /// public PassPlaceEntity GetPassPlaceEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(t => t.EID == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取EpidemicSituation表实体数据 /// 主键 /// /// public EpidemicSituationEntity GetEpidemicSituationEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var epidemicSituationEntity = GetEpidemicSituationEntity(keyValue); db.Delete(t => t.ID == keyValue); db.Delete(t => t.EID == epidemicSituationEntity.ID); db.Delete(t => t.EID == epidemicSituationEntity.ID); db.Delete(t => t.EID == epidemicSituationEntity.ID); db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 判断今天是否提交过 /// 主键 /// /// public bool HasTodayValue(string userId) { try { var dataNow = DateTime.Now.Date.ToString(); var list = this.BaseRepository("CollegeMIS").FindList(a => a.Creater == userId); var result = false; foreach (var item in list) { if (item.CreateTime.ToDate().Date.ToString() == dataNow) { result = true; } } return result; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(UserInfo userInfo, string keyValue, EpidemicSituationEntity entity, List contactsDetailsList) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { if (!string.IsNullOrEmpty(keyValue)) { var epidemicSituationEntityTmp = GetEpidemicSituationEntity(keyValue); entity.Modify(keyValue, userInfo); db.Update(entity); db.Delete(t => t.EID == epidemicSituationEntityTmp.ID); foreach (ContactsDetailsEntity item in contactsDetailsList) { item.Create(userInfo); item.EID = epidemicSituationEntityTmp.ID; db.Insert(item); } } else { entity.Create(userInfo); db.Insert(entity); foreach (ContactsDetailsEntity item in contactsDetailsList) { item.Create(userInfo); item.EID = entity.ID; db.Insert(item); } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(UserInfo userInfo, string keyValue, EpidemicSituationEntity entity, List contactsDetailsList, List passList, List peopleDetailsList) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { if (!string.IsNullOrEmpty(keyValue)) { var epidemicSituationEntityTmp = GetEpidemicSituationEntity(keyValue); entity.Modify(keyValue, userInfo); db.Update(entity); db.Delete(t => t.EID == epidemicSituationEntityTmp.ID); db.Delete(t => t.EID == epidemicSituationEntityTmp.ID); db.Delete(t => t.EID == epidemicSituationEntityTmp.ID); foreach (ContactsDetailsEntity item in contactsDetailsList) { item.Create(userInfo); item.EID = epidemicSituationEntityTmp.ID; db.Insert(item); } foreach (PeopleDetailsEntity item in peopleDetailsList) { item.Create(); item.EID = entity.ID; db.Insert(item); } foreach (var item in passList) { item.Create(); item.EID = epidemicSituationEntityTmp.ID; db.Insert(item); } } else { entity.Create(userInfo); db.Insert(entity); foreach (ContactsDetailsEntity item in contactsDetailsList) { item.Create(userInfo); item.EID = entity.ID; db.Insert(item); } foreach (PeopleDetailsEntity item in peopleDetailsList) { item.Create(); item.EID = entity.ID; db.Insert(item); } foreach (var item in passList) { item.Create(); item.EID = entity.ID; db.Insert(item); } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion } }