using Dapper; using Learun.Application.Organization; 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 力软信息技术(苏州)有限公司 /// 创 建:超级管理员 /// 日 期:2021-12-16 10:14 /// 描 述:长阳迎新 /// public class StuVolunteerService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.* "); strSql.Append(" FROM StuVolunteer t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["Address"].IsEmpty()) { dp.Add("Address", "%" + queryParam["Address"].ToString() + "%", DbType.String); strSql.Append(" AND t.Address Like @Address "); } if (!queryParam["BySchool"].IsEmpty()) { dp.Add("BySchool", "%" + queryParam["BySchool"].ToString() + "%", DbType.String); strSql.Append(" AND t.BySchool Like @BySchool "); } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuName Like @StuName "); } if (!queryParam["StuNo"].IsEmpty()) { dp.Add("StuNo", "%" + queryParam["StuNo"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuNo Like @StuNo "); } if (!queryParam["StuCode"].IsEmpty()) { dp.Add("StuCode", "%" + queryParam["StuCode"].ToString() + "%", DbType.String); strSql.Append(" AND t.StuCode Like @StuCode "); } if (!queryParam["Sex"].IsEmpty()) { dp.Add("Sex", queryParam["Sex"].ToString(), DbType.String); strSql.Append(" AND t.Sex = @Sex "); } if (!queryParam["CardNo"].IsEmpty()) { dp.Add("CardNo", queryParam["CardNo"].ToString(), DbType.String); strSql.Append(" AND t.CardNo = @CardNo "); } if (!queryParam["ClassNo"].IsEmpty()) { dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String); strSql.Append(" AND t.ClassNo = @ClassNo "); } if (!queryParam["ClassStatus"].IsEmpty()) { dp.Add("ClassStatus", queryParam["ClassStatus"].ToString(), DbType.String); strSql.Append(" AND t.ClassStatus = @ClassStatus "); } if (!queryParam["StuCodeStatus"].IsEmpty()) { dp.Add("StuCodeStatus", queryParam["StuCodeStatus"].ToString(), DbType.String); strSql.Append(" AND t.StuCodeStatus = @StuCodeStatus "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["MajorOne"].IsEmpty()) { dp.Add("MajorOne", queryParam["MajorOne"].ToString(), DbType.String); strSql.Append(" AND t.MajorOne = @MajorOne "); } if (!queryParam["MajorTwo"].IsEmpty()) { dp.Add("MajorTwo", queryParam["MajorTwo"].ToString(), DbType.String); strSql.Append(" AND t.MajorTwo = @MajorTwo "); } if (!queryParam["MajorThree"].IsEmpty()) { dp.Add("MajorThree", queryParam["MajorThree"].ToString(), DbType.String); strSql.Append(" AND t.MajorThree = @MajorThree "); } if (!queryParam["SqlParameter"].IsEmpty()) { strSql.Append(queryParam["SqlParameter"].ToString()); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取StuVolunteer表实体数据 /// /// 主键 /// public StuVolunteerEntity GetStuVolunteerEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取专业统计 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetMajorStatistics(string queryJson) { try { var strSql = new StringBuilder(); strSql.Append(" SELECT "); strSql.Append(@" t.* "); strSql.Append(" FROM StuVolunteer t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String); strSql.Append(" AND t.Grade = @Grade "); } var data = this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp); return data; } 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 { //单个删除 //this.BaseRepository("CollegeMIS").Delete(t => t.ID == keyValue); //多个删除 var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { db.Delete(t => t.ID == item); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 public void SaveEntity(string keyValue, StuVolunteerEntity entity) { try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } else { entity.Create(); entity.IsOurSchool = false; entity.IsIntention = false; this.BaseRepository("CollegeMIS").Insert(entity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 分班 /// /// /// public void SaveClassForm(string keyValue, string ClassNo) { try { var classinfo = this.BaseRepository("CollegeMIS").FindEntity(x => x.ClassNo == ClassNo); if (classinfo != null) { var arr = keyValue.Split(',').ToList(); foreach (var id in arr) { var stuNo = GetStuNo(); string sql = $"update StuVolunteer set StuNo='{stuNo}' ,ClassNo='{ClassNo}',ClassStatus=0 where ID='{id}' and (StuNo is null or len(StuNo)=0); update StuVolunteer set ClassNo='{ClassNo}',ClassStatus=0 where ID='{id}' and (StuNo is not null or len(StuNo)>0)"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql); } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 审核分班 /// /// /// 分班是否审核通过 public void CheckForm(string keyValue, int ClassStatus) { try { if (keyValue.Contains(",")) { keyValue = string.Join("','", keyValue.Split(',')); } string sql = $"update StuVolunteer set ClassStatus={ClassStatus} where ID in ('{keyValue}')"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取学号 /// /// private string GetStuNo() { //当前学年 var year = Common.GetSemesterAndYear().AcademicYearShort.Substring(0, 2); var StuNo = year + "3642000004"; var maxSql = $"select Max(StuNo) as StuNo from StuVolunteer where StuNo like '{StuNo}%'"; var maxStuNo = this.BaseRepository("CollegeMIS").FindObject(maxSql); if (maxStuNo == null || string.IsNullOrEmpty(maxStuNo.ToString())) { StuNo = StuNo + "00001"; } else { int lastNum = int.Parse(maxStuNo.ToString().Substring(maxStuNo.ToString().Length - 5, 5)); lastNum++; StuNo = StuNo + lastNum.ToString("00000"); } return StuNo; } /// /// 生成学籍 /// public void GenerateStu() { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { //只生成分班审核通过 string updSql = $"update [dbo].[StuVolunteer] set StuCode='G'+CardNo, StuCodeStatus=1 where ClassStatus=1"; db.ExecuteBySql(updSql); string addSql = @"insert into StuInfoBasic ( Stuid,StuNo,StuCode,ClassNo,StuName,GenderNo,DeptNo,MajorNo,IdentityCardNo,ExamScore,ProvinceCode,AdmissionNo,F_SchoolId,Grade ) select newid(),StuNo,'G'+CardNo,ClassNo,StuName,Sex,DeptNo,MajorNo,CardNo,StuScore,ProvinceCode,ExamNo,F_SchoolId,Grade from StuVolunteer t where t.ClassStatus=1 and t.StuNo not in (select b.StuNo from StuInfoBasic b where b.StuNo=t.StuNo) "; db.ExecuteBySql(addSql); db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 扩展代码 /// /// 去重 /// /// 初中学号 /// 报名号 /// 身份证号 /// public List GetRepetitions(string H_SchoolNo, string ApplyNo, string CardNo) { try { return this.BaseRepository("CollegeMIS").FindList(x => x.H_SchoolNo == H_SchoolNo || x.ApplyNo == ApplyNo || x.CardNo == CardNo).ToList(); } catch (Exception e) { Console.WriteLine(e); throw; } } /// /// 标注数据 /// /// 主键 public void LabelEntity(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsIntention = true; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 取消标注数据 /// /// 主键 public void CancelLabel(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsIntention = false; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 志愿填报 /// /// /// public void IsOurSchool(string keyValue, StuVolunteerEntity entity) { try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } else { entity.Create(); this.BaseRepository("CollegeMIS").Insert(entity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 录取学生 /// /// 主键 public void EnrollEntity(string keyValue) { var dbMISName = this.BaseRepository("BaseDb").FindList().FirstOrDefault(); var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsEnroll = true; entity.F_SchoolId = dbMISName.F_CompanyId; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 取消录取学生 /// /// 主键 public void CancelEntity(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsEnroll = false; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 public void DraftForm(string keyValue, StuVolunteerEntity entity) { try { entity.Modify(keyValue); entity.UpdateTime = DateTime.Now; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 public void SubmitForm(string keyValue, StuVolunteerEntity entity) { try { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取StuVolunteer表实体数据 /// /// 身份证号 /// public StuVolunteerEntity GetEntityByCardNo(string CardNo) { try { return this.BaseRepository("CollegeMIS").FindEntity(x => x.CardNo == CardNo); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 标注数据 /// /// 主键 public void JoinEntity(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsOurSchool = true; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 取消标注数据 /// /// 主键 public void CanJoin(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyValueArr = keyValue.Split(','); foreach (var item in keyValueArr) { var entity = db.FindEntity(x => x.ID == item); entity.IsOurSchool = false; db.Update(entity); } db.Commit(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 专业审核 /// /// /// 状态 public void MajorForm(string keyValue, int ClassStatus) { try { if (keyValue.Contains(",")) { keyValue = string.Join("','", keyValue.Split(',')); } string sql = $"update StuVolunteer set MajorStatus={ClassStatus} where ID in ('{keyValue}')"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 专业注册 /// /// /// public void SaveMajorForm(string keyValue, string MajorNo) { try { string DeptNo = ""; var CdMajorList = this.BaseRepository("CollegeMIS").FindEntity(x => x.CheckMark == true && x.MajorNo == MajorNo); if (CdMajorList != null) { DeptNo = CdMajorList.DeptNo; } var Majorinfo = this.BaseRepository("CollegeMIS").FindEntity(x => x.MajorNo == MajorNo); if (Majorinfo != null) { var arr = keyValue.Split(',').ToList(); foreach (var id in arr) { string sql = $"update StuVolunteer set MajorNo = '{MajorNo}',ClassNo = '',DeptNo = '{DeptNo}', MajorStatus = 0 ,ClassStatus = 0 where ID='{id}' and (StuNo is null or len(StuNo)=0); update StuVolunteer set MajorNo='{MajorNo}', ClassNo = '',DeptNo = '{DeptNo}', MajorStatus =0,ClassStatus=0 where ID='{id}' and (StuNo is not null or len(StuNo)>0)"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql); } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion } public class MajorStatistics { /// /// 专业部 /// public string DeptNo { get; set; } /// /// 专业部 /// public string DeptName { get; set; } /// /// 专业名称 /// public string MajorNo { get; set; } /// /// 专业名称 /// public string MajorName { get; set; } /// /// 年级 /// public string Grade { get; set; } /// /// 总人数 /// public string ZRNum { get; set; } /// /// 录取人数 /// public int? EnrollNum { get; set; } /// /// 报名人数 /// public int? WillNum { get; set; } /// /// 男生 /// public int? ManNum { get; set; } /// /// 女生 /// public int? WoManNum { get; set; } } }