using Dapper; using Learun.Application.Organization; using Learun.Application.TwoDevelopment.LogisticsManagement; using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; using Learun.DataBase.Repository; using Learun.Util; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using Learun.Application.Base.SystemModule; namespace Learun.Application.TwoDevelopment.EducationalAdministration { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2018 北京泉江科技有限公司 /// 创 建:超级管理员 /// 日 期:2019-07-17 11:20 /// 描 述:新生录取管理 /// public class StuEnrollService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.StuId, t.RegistrationNo, t.StuName, t.Gender, t.Nationals, t.Birthday, t.IDCard, t.Political, t.FreshType, t.ResidenceType, t.StuType, t.ResidenceAddress, t.NonNative, t.FromSchool, t.HomeAddress, t.FirstGuardian, t.FirstRelationship, t.FirstUnits, t.FirstMobile, t.SecondGuardian, t.SecondRelationship, t.SecondUnits, t.SecondMobile, t.Acceptance, t.Recipient, t.ZipCode, t.MedicalHistory, t.AdditionalCare, t.MajorNo, t.MajorName, t.Admissions, t.IsAccommodation, t.ExamRegistration, t.ClassNo, t.DormitoryNo, t.DormitoryName, t.IsPay, t.IsCheckIn, t.IsCheckIn2, t.EnrollType, t.IsSubsidize1, t.IsSubsidize12, t.IsMilitary, t.IsMilitary2, t.IsQuantity, t.IsTakeCloths, t.IsMug, t.IsGetBeddingArticle, t.IsReport, t.EductionalSystme, t.CheckInUrl, t.SubsidizeUrl, t.MilitaryUrl, t.AddTime, t.StuNo, t.StuStatusNo, t.PayAmount, t.ActualPayAmount, t.DeptNo, t.Grade, t.THROUGHPROJECT, t.Status,t.StuMobile,t.Specialty,t.City,t.County,t.EmpNo,t.IsAdmission,t.EnrollStatus,t.MidTermExam,t.zusu "); strSql.Append(" FROM StuEnroll t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["IDCard"].IsEmpty()) { dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); strSql.Append(" AND t.IDCard Like @IDCard "); } if (!queryParam["Year"].IsEmpty()) { dp.Add("Year", "%" + queryParam["Year"].ToString() + "%", DbType.String); strSql.Append(" AND t.ClassNo Like @Year "); } //sql条件 if (!queryParam["SqlParameter"].IsEmpty()) { strSql.Append(queryParam["SqlParameter"].ToString()); } if (!queryParam["RegistrationNo"].IsEmpty()) { dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String); strSql.Append(" AND t.RegistrationNo Like @RegistrationNo "); } if (!queryParam["Admissions"].IsEmpty()) { dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String); strSql.Append(" AND t.Admissions = @Admissions "); } if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String); strSql.Append(" AND t.Grade = @Grade "); } if (!queryParam["ClassNo"].IsEmpty()) { dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String); strSql.Append(" AND t.ClassNo = @ClassNo "); } if (!queryParam["IsAllocation"].IsEmpty()) { var IsAllocation = Convert.ToBoolean(queryParam["IsAllocation"].ToString()); if (IsAllocation) { strSql.Append(" AND (t.ClassNo IS NOT NULL AND t.ClassNo<>'')"); } else { strSql.Append(" AND (t.ClassNo IS NULL OR t.ClassNo='')"); } } if (!queryParam["IsAllocationDormitory"].IsEmpty()) { var IsAllocation = Convert.ToBoolean(queryParam["IsAllocationDormitory"].ToString()); if (IsAllocation) { strSql.Append(" AND (t.DormitoryNo IS NOT NULL AND t.DormitoryNo<>'')"); } else { strSql.Append(" AND (t.DormitoryNo IS NULL OR t.DormitoryNo='')"); } } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuName Like @StuName "); } if (!queryParam["Status"].IsEmpty()) { dp.Add("Status", queryParam["Status"].ToString(), DbType.String); strSql.Append(" AND t.Status = @Status "); } if (!queryParam["Gender"].IsEmpty()) { dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean); strSql.Append(" AND t.Gender = @Gender "); } if (!queryParam["PayList"].IsEmpty()) { strSql.Append(" AND t.Status>=3 AND t.Status<6 "); } if (!queryParam["IsCheckIn"].IsEmpty()) { if (queryParam["IsCheckIn"].ToString() == "null") { strSql.Append(" AND t.IsCheckIn is null "); } else { dp.Add("IsCheckIn", queryParam["IsCheckIn"].ToString(), DbType.String); strSql.Append(" AND t.IsCheckIn = @IsCheckIn "); } } if (!queryParam["IsSubsidize1"].IsEmpty()) { if (queryParam["IsSubsidize1"].ToString() == "null") { strSql.Append(" AND t.IsSubsidize1 is null "); } else { dp.Add("IsSubsidize1", queryParam["IsSubsidize1"].ToString(), DbType.String); strSql.Append(" AND t.IsSubsidize1 = @IsSubsidize1 "); } } if (!queryParam["IsMilitary"].IsEmpty()) { if (queryParam["IsMilitary"].ToString() == "null") { strSql.Append(" AND t.IsMilitary is null "); } else { dp.Add("IsMilitary", queryParam["IsMilitary"].ToString(), DbType.String); strSql.Append(" AND t.IsMilitary = @IsMilitary "); } } if (!queryParam["IsPay"].IsEmpty()) { if (queryParam["IsPay"].ToString() == "null") { strSql.Append(" AND t.IsPay is null "); } else { dp.Add("IsPay", queryParam["IsPay"].ToString(), DbType.String); strSql.Append(" AND t.IsPay = @IsPay "); } } if (!queryParam["IsMug"].IsEmpty()) { if (queryParam["IsMug"].ToString() == "null") { strSql.Append(" AND t.IsMug is null "); } else { dp.Add("IsMug", queryParam["IsMug"].ToString(), DbType.String); strSql.Append(" AND t.IsMug = @IsMug "); } } if (!queryParam["IsTakeCloths"].IsEmpty()) { if (queryParam["IsTakeCloths"].ToString() == "null") { strSql.Append(" AND t.IsTakeCloths is null "); } else { dp.Add("IsTakeCloths", queryParam["IsTakeCloths"].ToString(), DbType.String); strSql.Append(" AND t.IsTakeCloths = @IsTakeCloths "); } } if (!queryParam["IsQuantity"].IsEmpty()) { if (queryParam["IsQuantity"].ToString() == "null") { strSql.Append(" AND t.IsQuantity is null "); } else { dp.Add("IsQuantity", queryParam["IsQuantity"].ToString(), DbType.String); strSql.Append(" AND t.IsQuantity = @IsQuantity "); } } if (!queryParam["IsGetBeddingArticle"].IsEmpty()) { if (queryParam["IsGetBeddingArticle"].ToString() == "null") { strSql.Append(" AND t.IsGetBeddingArticle is null "); } else { dp.Add("IsGetBeddingArticle", queryParam["IsGetBeddingArticle"].ToString(), DbType.String); strSql.Append(" AND t.IsGetBeddingArticle = @IsGetBeddingArticle "); } } //获取班主任所带的班级 var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任")?.F_RoleId; var userInfo = LoginUserInfo.Get(); var sqlClasses = ""; if (!string.IsNullOrEmpty(roleid)) { if (userInfo.roleIds.Contains(roleid)) { var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList(); if (classes != null) { foreach (var item in classes) { sqlClasses += $"'{item}',"; } sqlClasses = sqlClasses.TrimEnd(','); } } if (!string.IsNullOrEmpty(sqlClasses)) { strSql.Append($" AND t.ClassNo IN({sqlClasses})"); } } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetPageListForTJ(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" isnull(s.physicsAndChemistry,0) physicsAndChemistry,isnull(s.english,0) english,isnull(s.chinese,0) chinese, isnull(s.politicsAndHistory,0) politicsAndHistory,isnull(s.physicalEducation,0) physicalEducation,isnull(s.math,0) math, t.StuName,t.Gender,t.Nationals,t.IDCard,t.HomeAddress,t.StuMobile, t.MidTermExam,t.FromSchool,t.Specialty,t.City,t.County,t.MajorNo,t.EmpNo "); strSql.Append(" FROM StuEnroll t "); strSql.Append(@" left join ( select a.StuEnrollId, max( case when a.subjectname = '物理与化学' then a.score else 0 end) as physicsAndChemistry, max(case when a.subjectname = '英语' then a.score else 0 end) as english, max( case when a.subjectname = '语文' then a.score else 0 end) as chinese, max(case when a.subjectname = '政治与历史' then a.score else 0 end) as politicsAndHistory, max(case when a.subjectname = '体育' then a.score else 0 end) as physicalEducation, max(case when a.subjectname = '数学' then a.score else 0 end) as math from StuEnrollMidExamScore a group by a.StuEnrollId ) s on t.stuid = s.StuEnrollId "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); #region SqlWhere if (!queryParam["City"].IsEmpty()) { dp.Add("City", queryParam["City"].ToString(), DbType.String); strSql.Append(" AND t.City = @City "); } if (!queryParam["County"].IsEmpty()) { dp.Add("County", queryParam["County"].ToString(), DbType.String); strSql.Append(" AND t.County = @County "); } if (!queryParam["IDCard"].IsEmpty()) { dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); strSql.Append(" AND t.IDCard Like @IDCard "); } if (!queryParam["Year"].IsEmpty()) { dp.Add("Year", queryParam["Year"].ToString(), DbType.String); strSql.Append(" AND t.Year = @Year "); } //sql条件 if (!queryParam["SqlParameter"].IsEmpty()) { strSql.Append(queryParam["SqlParameter"].ToString()); } if (!queryParam["Admissions"].IsEmpty()) { dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String); strSql.Append(" AND t.Admissions = @Admissions "); } if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["EmpNo"].IsEmpty()) { dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String); strSql.Append(" AND t.EmpNo = @EmpNo "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String); strSql.Append(" AND t.Grade = @Grade "); } if (!queryParam["ClassNo"].IsEmpty()) { dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String); strSql.Append(" AND t.ClassNo = @ClassNo "); } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuName Like @StuName "); } if (!queryParam["StuMobile"].IsEmpty()) { dp.Add("StuMobile", "%" + queryParam["StuMobile"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuMobile Like @StuMobile "); } if (!queryParam["Gender"].IsEmpty()) { dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean); strSql.Append(" AND t.Gender = @Gender "); } //获取班主任所带的班级 var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任")?.F_RoleId; var userInfo = LoginUserInfo.Get(); var sqlClasses = ""; if (!string.IsNullOrEmpty(roleid)) { if (userInfo.roleIds.Contains(roleid)) { var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList(); if (classes != null) { foreach (var item in classes) { sqlClasses += $"'{item}',"; } sqlClasses = sqlClasses.TrimEnd(','); } } if (!string.IsNullOrEmpty(sqlClasses)) { strSql.Append($" AND t.ClassNo IN({sqlClasses})"); } } #endregion return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable AllStudent() { try { return this.BaseRepository("CollegeMIS").FindList(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetDormitorys(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.ID, t.Name, t.Address, t.Campus, t.Dept, t.BuildType, t.Major, t.Class, t.Sex, t.Functionary, t.Phone, t.Price, t.Leader, t.StudentID, t.PlanStudentID, t.ParentID, t.Remark, t.Starred, t.PlanClassNo, t.HasToilet "); strSql.Append(" FROM Acc_DormitoryBuild t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["ParentID"].IsEmpty()) { dp.Add("ParentID", queryParam["ParentID"].ToString(), DbType.String); strSql.Append(" AND t.ParentID =@ParentID "); } if (!queryParam["Sex"].IsEmpty()) { dp.Add("Sex", queryParam["Sex"].ToString(), DbType.String); strSql.Append(" AND t.Sex = @Sex "); } if (!queryParam["IsAllocationDormitory"].IsEmpty()) { if (queryParam["IsAllocationDormitory"].ToString() == "false") { strSql.Append(" AND t.PlanClassNo is not null or t.PlanClassNo<>'' "); } else { strSql.Append(" AND t.PlanClassNo is null or t.PlanClassNo=''"); } } if (!queryParam["PlanClassNo"].IsEmpty()) { dp.Add("PlanClassNo", queryParam["PlanClassNo"].ToString(), DbType.String); strSql.Append(" AND t.PlanClassNo =@PlanClassNo "); } var data = this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination).OrderBy(a => a.Name).ToList(); foreach (var item in data) { item.ChildCount = this.BaseRepository("CollegeMIS").FindList(a => a.ParentID == item.ID).Count(); } return data; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal List> GetTree() { try { var data = this.BaseRepository("CollegeMIS").FindList(a => !string.IsNullOrEmpty(a.ClassNo)).ToList(); var classInfos = this.BaseRepository("CollegeMIS").FindList().ToList(); var classes = data.GroupBy(a => a.ClassNo).Select(a => a.Key).ToList(); List> list = new List>(); foreach (var classNo in classes) { var boy = data.Count(a => a.ClassNo == classNo && a.Gender == true); var girl = data.Count(a => a.ClassNo == classNo && a.Gender == false); var className = classInfos.FirstOrDefault(a => a.ClassNo == classNo)?.ClassName; Tuple tuple = new Tuple(boy, girl, classNo, className); list.Add(tuple); } return list; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal List GetBedTree(string classNo, string gender) { try { var sex = ""; if (gender == "true") { sex = "1"; } else { sex = "0"; } List list = new List(); var data = this.BaseRepository("CollegeMIS").FindList(a => a.PlanClassNo == classNo && a.Sex == sex).ToList(); var bb = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in data) { list.Add(item); var beds = this.BaseRepository("CollegeMIS").FindList(a => a.ParentID == item.ID).ToList(); foreach (var bed in beds) { var stuName = bb.FirstOrDefault(a => a.DormitoryNo == bed.ID)?.StuName; if (!string.IsNullOrEmpty(stuName)) { bed.Name = $"{bed.Name}({stuName})"; } list.Add(bed); } } return list; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal List GetStuIdCards() { try { return this.BaseRepository("CollegeMIS").FindList().Select(a => a.IDCard).ToList(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal object GetStuInfo(string stuId) { try { var stuEnroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId); var majorInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.MajorNo == stuEnroll.MajorNo); var deptNo = majorInfo?.DeptNo; var majorName = majorInfo?.MajorName; var deptName = this.BaseRepository("CollegeMIS").FindEntity(a => a.DeptNo == deptNo)?.DeptName; var classInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.ClassNo == stuEnroll.ClassNo); var teacherInfo = new EmpInfoEntity(); var yearAndSemester = Common.GetSemesterAndYear(); var result = new List(); if (classInfo != null) { teacherInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.EmpNo == classInfo.ClassDiredctorNo); result = this.BaseRepository("CollegeMIS").FindList(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester) .Select(a => new StuPayInfo { standerid = a.ChargeItemID, shouldPay = a.Standard, standard = a.Standard, standerdName = this.BaseRepository("CollegeMIS").FindEntity(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim() }).ToList(); } foreach (var item in result) { //住宿费 if (item.standerid == 12 && stuEnroll.IsCheckIn == false) { item.shouldPay = 0; } //学费 if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true) { item.shouldPay = 0; } switch (item.standerid) { case 12: if (stuEnroll.IsCheckIn == false) item.shouldPay = 0; break; case 14: if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0; break; case 15: if (stuEnroll.IsMilitary == false) item.shouldPay = 0; break; case 32: if (stuEnroll.IsCheckIn == false) item.shouldPay = 0; break; case 33: if (stuEnroll.EnrollType == "0") item.shouldPay = 0; break; default: break; } } decimal money = 0; decimal allMoney = 0; //记录缴费金额 foreach (var item in result) { money += Convert.ToDecimal(item.shouldPay); allMoney += Convert.ToDecimal(item.standard); } stuEnroll.PayAmount = money; this.BaseRepository("CollegeMIS").Update(stuEnroll); return new { deptName, majorName, className = classInfo?.ClassName, teacherName = teacherInfo?.EmpName, teacherMobile = teacherInfo?.mobile, chagerItemList = result, money, allMoney }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public class StuPayInfo { public int standerid { get; set; } public decimal? shouldPay { get; set; } public decimal? standard { get; set; } public string standerdName { get; set; } } internal object GetCheckInStatistics(string DeptNo, string MajorNo, string ClassNo) { try { var data = this.BaseRepository("CollegeMIS").FindList() .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo) .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo) .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo) ; var aa = data.Count(a => a.IsCheckIn == true); var bb = data.Count(a => a.IsCheckIn == false); return new { aa, bb }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal object GetHelpStatistics(string DeptNo, string MajorNo, string ClassNo) { try { var data = this.BaseRepository("CollegeMIS").FindList() .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo) .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo) .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo) ; var aa = data.Count(a => a.IsSubsidize1 == true); var bb = data.Count(a => a.IsSubsidize1 == false); return new { aa, bb }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal object GetMilitaryStatistics(string DeptNo, string MajorNo, string ClassNo) { try { var data = this.BaseRepository("CollegeMIS").FindList() .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo) .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo) .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo) ; var aa = data.Count(a => a.IsMilitary == true); var bb = data.Count(a => a.IsMilitary == false); return new { aa, bb }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取页面显示列表数据 /// /// 查询参数 /// public IEnumerable GetReportPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.StuId, t.RegistrationNo, t.StuName, t.Gender, t.Nationals, t.Birthday, t.IDCard, t.Political, t.FreshType, t.ResidenceType, t.StuType, t.ResidenceAddress, t.NonNative, t.FromSchool, t.HomeAddress, t.FirstGuardian, t.FirstRelationship, t.FirstUnits, t.FirstMobile, t.SecondGuardian, t.SecondRelationship, t.SecondUnits, t.SecondMobile, t.Acceptance, t.Recipient, t.ZipCode, t.MedicalHistory, t.AdditionalCare, t.MajorNo, t.MajorName, t.Admissions, t.IsAccommodation, t.ExamRegistration, t.ClassNo, t.DormitoryNo, t.DormitoryName, t.EnrollType, t.IsCheckIn, t.IsSubsidize1, t.IsMilitary, t.Grade, t.IsQuantity, t.IsTakeCloths, t.IsMug, t.IsGetBeddingArticle, t.IsReport, t.EductionalSystme, t.AddTime, t.StuNo, t.StuStatusNo, t.SecurityAgreement, t.Status "); strSql.Append(" FROM StuEnroll t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["IsReport"].IsEmpty()) { if (queryParam["IsReport"].ToString() == "null") { strSql.Append(" AND t.IsReport is null "); } else { dp.Add("IsReport", queryParam["IsReport"].ToString(), DbType.String); strSql.Append(" AND t.IsReport = @IsReport "); } } if (!queryParam["IDCard"].IsEmpty()) { dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String); strSql.Append(" AND t.IDCard Like @IDCard "); } if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["Admissions"].IsEmpty()) { dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String); strSql.Append(" AND t.Admissions = @Admissions "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String); strSql.Append(" AND t.Grade = @Grade "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["ClassNo"].IsEmpty()) { dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String); strSql.Append(" AND t.ClassNo = @ClassNo "); } if (!queryParam["RegistrationNo"].IsEmpty()) { dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String); strSql.Append(" AND t.RegistrationNo Like @RegistrationNo "); } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuName Like @StuName "); } //获取班主任所带的班级 var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "班主任").F_RoleId; var userInfo = LoginUserInfo.Get(); var sqlClasses = ""; if (userInfo.roleIds.Contains(roleid)) { var classes = this.BaseRepository("CollegeMIS").FindList(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList(); if (classes != null) { foreach (var item in classes) { sqlClasses += $"'{item}',"; } sqlClasses = sqlClasses.TrimEnd(','); } } if (!string.IsNullOrEmpty(sqlClasses)) { strSql.Append($" AND t.ClassNo IN({sqlClasses})"); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) Stay(string stuId, bool status, bool payAfter) { try { var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId; var loginUser = LoginUserInfo.Get(); var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { if (payAfter) { //if (loginUser.roleIds.Contains(roleid)) //{ item.IsCheckIn2 = status; this.BaseRepository("CollegeMIS").Update(item); //} } else { item.IsCheckIn = status; item.IsCheckIn2 = status; item.Status = 2; if (!status) { item.IsGetBeddingArticle = false; } this.BaseRepository("CollegeMIS").Update(item); } StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); if (status) { amountRecordEntity.Content = "确认入住"; } else { amountRecordEntity.Content = "取消入住"; } amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllStay() { try { var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList(); foreach (var item in list) { item.IsCheckIn = true; item.IsCheckIn2 = true; item.Status = 2; this.BaseRepository("CollegeMIS").Update(item); StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); amountRecordEntity.Content = "确认入住"; amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) Help(string stuId, bool status, bool payAfter) { try { var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId; var loginUser = LoginUserInfo.Get(); var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { if (payAfter) { //if (loginUser.roleIds.Contains(roleid)) //{ item.IsSubsidize12 = status; this.BaseRepository("CollegeMis").Update(item); //} } else { item.IsSubsidize1 = status; item.IsSubsidize12 = status; item.Status = 3; this.BaseRepository("CollegeMis").Update(item); } StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); if (status) { amountRecordEntity.Content = "确认资助"; } else { amountRecordEntity.Content = "取消资助"; } amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllHelp() { try { var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList(); foreach (var item in list) { item.IsSubsidize1 = true; item.Status = 3; this.BaseRepository("CollegeMIS").Update(item); StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); amountRecordEntity.Content = "确认资助"; amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) Military(string stuId, bool status, bool payAfter) { try { var roleid = this.BaseRepository().FindEntity(a => a.F_FullName == "学生科科长")?.F_RoleId; var loginUser = LoginUserInfo.Get(); var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { if (payAfter) { //if (loginUser.roleIds.Contains(roleid)) //{ item.IsMilitary2 = status; this.BaseRepository("CollegeMis").Update(item); //} } else { item.IsMilitary = status; item.IsMilitary2 = status; item.Status = 4; if (!status) { item.IsTakeCloths = false; } this.BaseRepository("CollegeMis").Update(item); } StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); if (status) { amountRecordEntity.Content = "确认军训"; } else { amountRecordEntity.Content = "取消军训"; } amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllReport() { try { var list = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in list) { item.IsReport = true; item.SecurityAgreement = true; item.Status = 1; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllPhoto() { try { var list = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in list) { item.IsMug = true; item.Status = 6; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllGetCloth() { try { var list = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in list) { item.IsTakeCloths = true; item.Status = 7; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllGetSize() { try { var list = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in list) { item.IsQuantity = true; item.Status = 8; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllGetArticle() { try { var list = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in list) { item.IsGetBeddingArticle = true; item.Status = 9; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllMilitary() { try { var list = this.BaseRepository("CollegeMIS").FindList(a => a.IsPay != true && a.IsReport == true).ToList(); foreach (var item in list) { item.IsMilitary = true; item.Status = 4; this.BaseRepository("CollegeMIS").Update(item); StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity(); amountRecordEntity.Create(); amountRecordEntity.Content = "确认军训"; amountRecordEntity.StuID = item.StuId; this.BaseRepository("CollegeMIS").Insert(amountRecordEntity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) IsPay(string stuId, bool status) { try { var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.IsPay = status; item.Status = 5; this.BaseRepository("CollegeMis").Update(item); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 缴费金额统计 /// /// internal object GetPaymentInfo() { try { var model = this.BaseRepository("CollegeMIS").FindList().ToList(); var listAllamount = model.Where(a => a.PayAmount != null && a.IsCheckIn != null && a.IsSubsidize1 != null).Select(a => a.PayAmount); decimal allamount = 0; foreach (var item in listAllamount) { if (item != null) { allamount += Convert.ToDecimal(item); } } var listIsamount = model.Where(a => a.IsPay == true).Select(a => a.PayAmount); decimal isamount = 0; foreach (var item in listIsamount) { if (item != null) { isamount += Convert.ToDecimal(item); } } return new { a = allamount, b = isamount }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal object GetStuDefaultInfo(string StuId) { try { var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == StuId); var imgUrl = ""; if (model?.Photo != null) { imgUrl = this.BaseRepository().FindEntity(a => a.F_Id == model.Photo)?.F_FilePath; if (!string.IsNullOrEmpty(imgUrl)) { imgUrl = "/" + imgUrl.Substring(imgUrl.IndexOf("Resource")); } } return new { stuName = model.StuName + (model.IsCheckIn == false ? "(走)" : ""), className = this.BaseRepository("CollegeMIS") .FindEntity(a => a.ClassNo == model.ClassNo)?.ClassName, imgUrl }; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) IsPhoto(string stuId, bool status, string fileGuid) { try { string result = ""; bool resultBool = false; var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId); if (model != null) { model.Photo = fileGuid; model.IsMug = status; model.Status = 6;//确认拍照 resultBool = true; result = "操作成功!"; this.BaseRepository("CollegeMIS").Update(model); } else { result = "错误"; } return (resultBool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) GetCloth(string stuId, bool status) { try { bool resultBool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.IsTakeCloths = status; item.Status = 7; this.BaseRepository("CollegeMis").Update(item); } resultBool = true; result = "操作成功"; } } else { result = "错误"; } return (resultBool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) GetClothSize(string stuId, bool status) { try { bool resultBool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.IsQuantity = status; item.Status = 8; this.BaseRepository("CollegeMis").Update(item); } resultBool = true; result = "操作成功"; } } else { result = "错误"; } return (resultBool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal (bool, string) GetArticles(string stuId, bool status) { try { bool resultBool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.IsGetBeddingArticle = status; item.Status = 9; this.BaseRepository("CollegeMis").Update(item); } resultBool = true; result = "操作成功"; } } else { result = "错误"; } return (resultBool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 生成缴费金额 /// internal void GetMoney() { try { var stuList = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var stuEnroll in stuList) { var classInfo = this.BaseRepository("CollegeMIS").FindEntity(a => a.ClassNo == stuEnroll.ClassNo); var yearAndSemester = Common.GetSemesterAndYear(); var result = new List(); if (classInfo != null) { result = this.BaseRepository("CollegeMIS").FindList(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester) .Select(a => new StuPayInfo { standerid = a.ChargeItemID, shouldPay = a.Standard, standard = a.Standard, standerdName = this.BaseRepository("CollegeMIS").FindEntity(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim() }).ToList(); } foreach (var item in result) { //住宿费 if (item.standerid == 12 && stuEnroll.IsCheckIn == false) { item.shouldPay = 0; } //学费 if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true) { item.shouldPay = 0; } switch (item.standerid) { case 12: if (stuEnroll.IsCheckIn == false) item.shouldPay = 0; break; case 14: if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0; break; case 15: if (stuEnroll.IsMilitary == false) item.shouldPay = 0; break; case 32: if (stuEnroll.IsCheckIn == false) item.shouldPay = 0; break; case 33: if (stuEnroll.EnrollType == "0") item.shouldPay = 0; break; default: break; } } decimal money = 0; //记录缴费金额 foreach (var item in result) { money += Convert.ToDecimal(item.shouldPay); } stuEnroll.PayAmount = money; this.BaseRepository("CollegeMIS").Update(stuEnroll); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllocationDormitory(string dormitoryNo, string stuId, string dormitoryName) { try { var oldstuEnroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.DormitoryNo == dormitoryNo); if (oldstuEnroll != null) { oldstuEnroll.DormitoryNo = ""; oldstuEnroll.DormitoryName = ""; this.BaseRepository("CollegeMIS").Update(oldstuEnroll); } var olddormitory = this.BaseRepository("CollegeMIS").FindEntity(a => a.PlanStudentID == stuId); if (olddormitory != null) { olddormitory.PlanStudentID = ""; this.BaseRepository("CollegeMIS").Update(olddormitory); } var dormitory = this.BaseRepository("CollegeMIS").FindEntity(a => a.ID == dormitoryNo); dormitory.PlanStudentID = stuId; this.BaseRepository("CollegeMIS").Update(dormitory); var stuEroll = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == stuId); stuEroll.DormitoryNo = dormitoryNo; stuEroll.DormitoryName = dormitoryName; this.BaseRepository("CollegeMIS").Update(stuEroll); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void AllocationClass(string classNo, string dataJson) { try { var data = JsonConvert.DeserializeObject>(dataJson); if (data.Any()) { foreach (var item in data) { item.ClassNo = classNo; this.BaseRepository("CollegeMis").Update(item); } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 关联照片 /// internal void RelationPhoto() { try { var stuList = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var stuEnrollEntity in stuList) { if (string.IsNullOrEmpty(stuEnrollEntity.Photo)) { stuEnrollEntity.Photo = Guid.NewGuid().ToString(); AnnexesFileEntity entity = new AnnexesFileEntity { F_Id = stuEnrollEntity.Photo, F_FolderId = stuEnrollEntity.Photo, F_FileName = stuEnrollEntity.Photo + ".jpg", F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg", F_FileExtensions = ".jpg", F_FileType = "jpg", }; entity.Create(); this.BaseRepository("CollegeMIS").Update(stuEnrollEntity); this.BaseRepository().Insert(entity); } else { var annexes = this.BaseRepository().FindEntity(a => a.F_FolderId == stuEnrollEntity.Photo); if (annexes != null) { if (!string.IsNullOrEmpty(stuEnrollEntity.IDCard)) { annexes.F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg"; this.BaseRepository().Update(annexes); } } else { AnnexesFileEntity entity = new AnnexesFileEntity { F_Id = stuEnrollEntity.Photo, F_FolderId = stuEnrollEntity.Photo, F_FileName = stuEnrollEntity.Photo + ".jpg", F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg", F_FileExtensions = ".jpg", F_FileType = "jpg", }; entity.Create(); this.BaseRepository().Insert(entity); } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void NewAllocationDormitory(string classNo, string dataJson) { try { var data = JsonConvert.DeserializeObject>(dataJson); if (data.Any()) { foreach (var item in data) { item.PlanClassNo = classNo; this.BaseRepository("CollegeMIS").Update(item); } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal void Synchronization() { try { var ListNewStudent = this.BaseRepository("CollegeMIS").FindList(a => a.IsReport == true); foreach (var newStudent in ListNewStudent) { var stuEntity = new StuInfoBasicEntity { StuNo = newStudent.StuNo, Birthday = newStudent.Birthday, ClassNo = newStudent.ClassNo, DeptNo = newStudent.DeptNo, MajorNo = newStudent.MajorNo, MajorDetailName = newStudent.MajorName, IdentityCardNo = newStudent.IDCard, Grade = newStudent.ClassNo.Substring(2, 2), StuName = newStudent.StuName, Photo = newStudent.Photo, FatherUnit = newStudent.ResidenceAddress, MailAddress = newStudent.HomeAddress, PartyFaceNo = newStudent.Political, NationalityNo = newStudent.Nationals, GenderNo = newStudent.Gender }; stuEntity.Create(); this.BaseRepository("CollegeMIS").Insert(stuEntity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取StuEnroll表实体数据 /// 主键 /// /// public StuEnrollEntity GetStuEnrollEntity(string keyValue) { try { var entity = this.BaseRepository("CollegeMIS").FindEntity(keyValue); if (!string.IsNullOrEmpty(entity.Photo)) { var path = this.BaseRepository().FindEntity(a => a.F_Id == entity.Photo)?.F_FilePath; if (!string.IsNullOrEmpty(path)) { path = "/" + path.Substring(path.IndexOf("Resource")); entity.PhotoUrl = path; } } return entity; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetMidExamScoreData(string keyValue) { try { var list = this.BaseRepository("CollegeMIS").FindList(x => x.StuEnrollId == keyValue).ToList(); if (list == null || list.Count() <= 0) { var db = this.BaseRepository("CollegeMIS"); db.BeginTrans(); var dataItem = this.BaseRepository().FindList("select b.* from [dbo].[LR_Base_DataItem] a join [dbo].[LR_Base_DataItemDetail] b on a.f_itemid=b.f_itemid where a.F_ItemCode='MidTermSubject' and b.f_deletemark=0 and b.f_enabledmark=1").OrderBy(x => x.F_SortCode); foreach (var data in dataItem) { StuEnrollMidExamScoreEntity entity = new StuEnrollMidExamScoreEntity(); entity.Create(); entity.StuEnrollId = keyValue; entity.subjectName = data.F_ItemName; entity.subjectCode = data.F_ItemCode; entity.sort = data.F_SortCode; db.Insert(entity); list.Add(entity); } db.Commit(); } return list; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取StuEnroll表实体数据 /// /// /// public StuEnrollEntity GetEntityByPersonalData(string IDCard, string StuName) { try { var year = DateTime.Now.Year; return this.BaseRepository("CollegeMIS").FindEntity(x => (x.IDCard == IDCard && x.StuName == StuName.Trim()) && x.AddTime.Value.Year == year); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 学生查询考试地点或录取结果 /// /// /// public StuEnrollEntity SearchForm(int type, StuEnrollEntity entity) { try { return this.BaseRepository("CollegeMIS").FindEntity(x => x.StuName == entity.StuName.Trim() && x.IDCard == entity.IDCard); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取学生考试信息 /// /// /// public IEnumerable GetExamDataByStuId(string keyValue) { try { string subSql = $"select * from ExamSubject where SubjectNo in (select SubjectNo from StuEnroll where stuid='{keyValue}')"; return this.BaseRepository("CollegeMIS").FindList(subSql); } 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.StuId, t.StuName, t.Gender, t.Nationals, t.HomeAddress, t.IDCard, t.StuMobile, t.FromSchool, t.MidTermExam, t.Specialty, t.City, t.County, t.MajorNo, t.IdCardPto1, t.IdCardPto2, t.MidDiplomaPto, t.MidAchievementPto, t.Remark "); strSql.Append(" FROM StuEnroll t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuName Like @StuName "); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion 获取数据 #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { try { var listId = keyValue.Split(',').ToList(); foreach (var stuId in listId) { this.BaseRepository("CollegeMIS").Delete(t => t.StuId == stuId); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(string keyValue, StuEnrollEntity entity) { try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } else { entity.Create(); entity.IsMilitary = true; this.BaseRepository("CollegeMIS").Insert(entity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 新生报名 /// 主键 /// /// public void SaveEnroll(string keyValue, StuEnrollEntity entity, List scoreData) { var db = this.BaseRepository("CollegeMIS"); try { db.BeginTrans(); var sql = $" select top 1 [year] as year,Majorname from CdMajor where ID='{entity.MajorNo}'"; var majorData = db.FindTable(sql); entity.MajorName = majorData.Rows[0]["Majorname"].ToString(); entity.Year = majorData.Rows[0]["year"].ToString(); if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); db.Update(entity); } else { entity.Create(); entity.EnrollStatus = 0; db.Insert(entity); } if (scoreData != null && scoreData.Count > 0) { for (int i = 0; i < scoreData.Count; i++) { if (!string.IsNullOrEmpty(scoreData[i].Id)) { db.Update(scoreData[i]); } else { StuEnrollMidExamScoreEntity model = new StuEnrollMidExamScoreEntity(); model.Create(); model.StuEnrollId = entity.StuId; model.subjectName = scoreData[i].subjectName; model.subjectCode = scoreData[i].subjectCode; model.score = scoreData[i].score; model.sort = i + 1; db.Insert(model); } } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public void EditEnrollType(string stuIds, string enrollType) { try { List list = stuIds.Split(',').ToList(); if (list.Count > 0) { foreach (var item in list) { if (!string.IsNullOrEmpty(item)) { var model = this.BaseRepository("CollegeMIS").FindEntity(a => a.StuId == item); if (model != null) { model.EnrollType = enrollType; this.BaseRepository("CollegeMIS").Update(model); } } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 招生统计 /// /// /// public DataTable GetTJList(string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("select empno,count(1) as num from stuenroll t where IsAdmission=1"); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["StuName"].IsEmpty()) { strSql.Append($" AND t.StuName Like '%{queryParam["StuName"]}%' "); } if (!queryParam["IDCard"].IsEmpty()) { strSql.Append($" AND t.IDCard Like '%{queryParam["IDCard"]}%' "); } if (!queryParam["StuMobile"].IsEmpty()) { strSql.Append($" AND t.StuMobile Like '%{queryParam["StuMobile"]}%' "); } if (!queryParam["Year"].IsEmpty()) { strSql.Append($" AND charindex(t.Year,('{queryParam["Year"]}'))>0 "); } if (!queryParam["City"].IsEmpty()) { strSql.Append($" AND charindex(t.City,('{queryParam["City"]}'))>0 "); } if (!queryParam["County"].IsEmpty()) { strSql.Append($" AND charindex(t.County,('{queryParam["County"]}'))>0 "); } if (!queryParam["MajorNo"].IsEmpty()) { strSql.Append($" AND charindex(t.MajorNo,('{queryParam["MajorNo"]}'))>0 "); } if (!queryParam["EmpNo"].IsEmpty()) { strSql.Append($" AND charindex(t.EmpNo,('{queryParam["EmpNo"]}'))>0 "); } //sql条件 if (!queryParam["SqlParameter"].IsEmpty()) { strSql.Append(queryParam["SqlParameter"].ToString()); } strSql.Append(" group by empno"); return this.BaseRepository("CollegeMIS").FindTable(strSql.ToString()); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public void SyncDept() { try { var data = this.BaseRepository("CollegeMIS").FindList().ToList(); var majorList = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in data) { var deptNo = majorList.FirstOrDefault(a => a.MajorNo == item.MajorNo)?.DeptNo; item.DeptNo = deptNo; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public void SyncMajor() { try { var data = this.BaseRepository("CollegeMIS").FindList().ToList(); var classList = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var item in data) { var majorNo = classList.FirstOrDefault(a => a.ClassNo == item.ClassNo)?.MajorNo; item.MajorNo = majorNo; this.BaseRepository("CollegeMIS").Update(item); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 签订安全自律协议 /// /// /// /// public (bool, string) Sign(string stuId, bool status) { try { var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.SecurityAgreement = status; this.BaseRepository("CollegeMis").Update(item); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 报到 /// /// /// /// public (bool, string) Report(string stuId, bool status) { try { var resultbool = false; var result = ""; if (!string.IsNullOrEmpty(stuId)) { var data = JsonConvert.DeserializeObject>(stuId); if (data.Any()) { foreach (var item in data) { item.IsReport = status; item.Status = 1; item.SecurityAgreement = status; this.BaseRepository("CollegeMis").Update(item); } resultbool = true; result = "操作成功"; } } else { result = "错误"; } return (resultbool, result); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 报名审核 /// 主键 /// /// public void UpdateEnrollStatus(string keyValue, int EnrollStatus) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var enrollList = db.FindList(x => x.StuId == keyValue).ToList(); string sql = $"update StuEnroll set EnrollStatus='{EnrollStatus}' where stuid in ('{keyValue}')"; db.ExecuteBySql(sql); //审核通过 添加新生成绩表 if (EnrollStatus == 2) { //新生成绩表 var list = db.FindList(); foreach (var enrollData in enrollList) { if (list.Where(x => x.YearNo == enrollData.Year && x.StuId == enrollData.StuId).Count() <= 0) { //新生成绩表不存在当前新生 添加 var subNos = enrollData.SubjectNo.Split(',').ToList(); foreach (var subno in subNos) { StuEnrollScoreEntity model = new StuEnrollScoreEntity(); model.Create(); model.YearNo = enrollData.Year; model.MajorId = enrollData.MajorNo; model.StuId = enrollData.StuId; model.SubjectId = subno; model.Score = 0; db.Insert(model); } } } } else { //删除新生成绩表 foreach (var enrollData in enrollList) { var scoreList = db.FindList(x => x.StuId == enrollData.StuId); foreach (var item in scoreList) { db.Delete(item); } } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 录取 /// 主键 /// /// public void Admission(string keyValue, int IsAdmission) { try { string sql = $"update StuEnroll set IsAdmission='{IsAdmission}' where stuid='{keyValue}'"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion 提交数据 } }