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 力软信息技术(苏州)有限公司 /// 创 建:超级管理员 /// 日 期:2020-11-27 10:05 /// 描 述:学生请假管理 /// public class StuLeaveManagementService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT t.*,s.StuName as CreateUserName,s.ClassNo,s.DeptNo,s.MajorNo,c.ClassDiredctorNo,c.ClassTutorNo "); strSql.Append(" FROM StuLeaveManagement t left join StuInfoBasic s on t.CreateUserNo=s.StuNo left join ClassInfo c on s.ClassNo=c.ClassNo "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["LeaveType"].IsEmpty()) { dp.Add("LeaveType", queryParam["LeaveType"].ToString(), DbType.String); strSql.Append(" AND t.LeaveType = @LeaveType "); } if (!queryParam["CheckStatus"].IsEmpty()) { dp.Add("CheckStatus", queryParam["CheckStatus"].ToString(), DbType.String); strSql.Append(" AND t.CheckStatus = @CheckStatus "); } if (!queryParam["StuNo"].IsEmpty()) { dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String); strSql.Append(" AND t.CreateUserNo = @StuNo "); } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND s.StuName like @StuName "); } //班级班主任/辅导员/系主任 //if (!queryParam["ClassManagerNo"].IsEmpty()) //{ // dp.Add("ClassManagerNo", queryParam["ClassManagerNo"].ToString(), DbType.String); // strSql.Append(" AND (c.ClassDiredctorNo = @ClassManagerNo or c.ClassTutorNo = @ClassManagerNo) "); // //登录用户是否是系主任:若是,展示大于2天的请假记录; // var deptDirectorRoleId = Config.GetValue("DeptDirectorRoleId"); // if (deptDirectorRoleId != null) // { // var loginInfoRoleIds = LoginUserInfo.Get().roleIds; // if (loginInfoRoleIds.IndexOf(',') == -1) // { // if (loginInfoRoleIds == deptDirectorRoleId) // { // strSql.Append(" or t.LeaveDay>2 )"); // } // else // { // strSql.Append(" ) "); // } // } // else // { // if (loginInfoRoleIds.Split(',').Contains(deptDirectorRoleId)) // { // strSql.Append(" or t.LeaveDay>2 )"); // } // else // { // strSql.Append(" ) "); // } // } // } // else // { // strSql.Append(" ) "); // } //} return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetCheckPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT t.*,s.StuName as CreateUserName,s.ClassNo,s.DeptNo,s.MajorNo,c.ClassDiredctorNo,c.ClassTutorNo "); strSql.Append(" FROM StuLeaveManagement t left join StuInfoBasic s on t.CreateUserNo=s.StuNo left join ClassInfo c on s.ClassNo=c.ClassNo "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["LeaveType"].IsEmpty()) { dp.Add("LeaveType", queryParam["LeaveType"].ToString(), DbType.String); strSql.Append(" AND t.LeaveType = @LeaveType "); } if (!queryParam["CheckStatus"].IsEmpty()) { dp.Add("CheckStatus", queryParam["CheckStatus"].ToString(), DbType.String); strSql.Append(" AND t.CheckStatus = @CheckStatus "); } if (!queryParam["StuNo"].IsEmpty()) { dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String); strSql.Append(" AND t.CreateUserNo = @StuNo "); } if (!queryParam["StuName"].IsEmpty()) { dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String); strSql.Append(" AND s.StuName like @StuName "); } //班级班主任/辅导员/系主任 var ClassManagerNo = LoginUserInfo.Get().account; if (!string.IsNullOrEmpty(ClassManagerNo)) { dp.Add("ClassManagerNo", ClassManagerNo, DbType.String); strSql.Append(" AND (c.ClassDiredctorNo = @ClassManagerNo or c.ClassTutorNo = @ClassManagerNo "); //登录用户是否是系主任:若是,展示大于2天的请假记录; var deptDirectorRoleId = Config.GetValue("DeptDirectorRoleId"); if (deptDirectorRoleId != null) { var loginInfoRoleIds = LoginUserInfo.Get().roleIds; if (loginInfoRoleIds.IndexOf(',') == -1) { if (loginInfoRoleIds == deptDirectorRoleId) { strSql.Append(" or t.LeaveDay>2 )"); } else { strSql.Append(" ) "); } } else { if (loginInfoRoleIds.Split(',').Contains(deptDirectorRoleId)) { strSql.Append(" or t.LeaveDay>2 )"); } else { strSql.Append(" ) "); } } } else { strSql.Append(" ) "); } } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取StuLeaveManagement表实体数据 /// /// 主键 /// public StuLeaveManagementEntity GetStuLeaveManagementEntity(string keyValue) { try { var data = this.BaseRepository("CollegeMIS").FindEntity(keyValue); if (data != null) { var studentlist = this.BaseRepository("CollegeMIS").FindList(x => x.StuNo == data.CreateUserNo).FirstOrDefault(); if (studentlist != null) { data.DeptNo = studentlist.DeptNo; data.MajorNo = studentlist.MajorNo; data.ClassNo = studentlist.ClassNo; data.CreateUserName = studentlist.StuName; } var classlist = this.BaseRepository("CollegeMIS").FindList(x => x.ClassNo == data.ClassNo).FirstOrDefault(); if (classlist != null) { data.ClassDiredctorNo = classlist.ClassDiredctorNo; data.ClassTutorNo = classlist.ClassTutorNo; } } return data; } 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, StuLeaveManagementEntity entity) { var db = this.BaseRepository("CollegeMIS"); try { db.BeginTrans(); if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); db.Update(entity); // if (entity.CheckStatus.Trim() == "2" && entity.StartTime != null) // { // //请假审核通过后,该学生的对应日期的课表改为请假 // var model = this.BaseRepository("CollegeMIS").FindList( // $"select * from StuLeaveManagement where Id='{keyValue}'").FirstOrDefault(); // //请假开始时间和结束时间 // var startTime = Convert.ToDateTime(model.StartTime?.ToString("yyyy-MM-dd") + " 00:00:00"); // var endTime = Convert.ToDateTime(model.EndTime?.ToString("yyyy-MM-dd") + " 23:59:59"); // //排课数据 // var arrangeLessonTermList = db.FindList($@"select a.*,b.StuName,b.Grade,b.GenderNo from [dbo].[ArrangeLessonTerm] a //join stuinfobasic b on a.teachclassno=b.classno //where b.stuno='{model.CreateUserNo}' //and a.lessondate between '{startTime}' and '{endTime}'"); // var deptList = this.BaseRepository("CollegeMIS").FindList(); // var majorList = this.BaseRepository("CollegeMIS").FindList(); // var classInfoList = this.BaseRepository("CollegeMIS").FindList(); // var classRoomList = this.BaseRepository("CollegeMIS").FindList().ToList(); // var lessonSortList = this.BaseRepository("CollegeMIS").FindList().ToList(); // foreach (var arrangeLessonTerm in arrangeLessonTermList) // { // StuAttendanceLeaveEntity stuAttendanceLeave = new StuAttendanceLeaveEntity(); // stuAttendanceLeave.AcademicYearNo = arrangeLessonTerm.AcademicYearNo; // stuAttendanceLeave.Semester = arrangeLessonTerm.Semester; // stuAttendanceLeave.StuNo = model.CreateUserNo; // stuAttendanceLeave.StuName = arrangeLessonTerm.StuName; // stuAttendanceLeave.Grade = arrangeLessonTerm.Grade; // stuAttendanceLeave.DeptNo = arrangeLessonTerm.DeptNo; // stuAttendanceLeave.DeptName = deptList.Where(x => x.DeptNo == arrangeLessonTerm.DeptNo) // .FirstOrDefault()?.DeptName; // stuAttendanceLeave.MajorNo = arrangeLessonTerm.MajorNo; // stuAttendanceLeave.MajorName = majorList.Where(x => x.MajorNo == arrangeLessonTerm.MajorNo) // .FirstOrDefault()?.MajorName; // stuAttendanceLeave.ClassNo = arrangeLessonTerm.TeachClassNo; // stuAttendanceLeave.ClassName = classInfoList // .Where(x => x.ClassNo == arrangeLessonTerm.TeachClassNo).FirstOrDefault()?.ClassName; // stuAttendanceLeave.LessonNo = arrangeLessonTerm.LessonNo; // stuAttendanceLeave.LessonName = arrangeLessonTerm.LessonName; // stuAttendanceLeave.TeachClassNo = arrangeLessonTerm.TeachClassNo; // stuAttendanceLeave.LessonSortNo = arrangeLessonTerm.LessonSortNo; // stuAttendanceLeave.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName; // stuAttendanceLeave.LessonDate = arrangeLessonTerm.LessonDate; // stuAttendanceLeave.LessonTime = arrangeLessonTerm.LessonTime; // stuAttendanceLeave.LeaveType = entity.LeaveType; // stuAttendanceLeave.EmpNo = arrangeLessonTerm.EmpNo; // stuAttendanceLeave.TecRemark = "按天请假"; // stuAttendanceLeave.UpdateDate = DateTime.Now; // stuAttendanceLeave.IsCheck = "1"; // stuAttendanceLeave.ClassRoomNo = arrangeLessonTerm.ClassroomNo; // stuAttendanceLeave.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName; // //去重 // var isExistModel = this.BaseRepository("CollegeMIS").FindEntity(x => // x.AcademicYearNo == stuAttendanceLeave.AcademicYearNo && x.Semester == stuAttendanceLeave.Semester && // x.StuNo == stuAttendanceLeave.StuNo && x.LessonNo == stuAttendanceLeave.LessonNo && x.TeachClassNo == stuAttendanceLeave.TeachClassNo && // x.LessonSortNo == stuAttendanceLeave.LessonSortNo && x.LessonDate == stuAttendanceLeave.LessonDate && x.LessonTime == stuAttendanceLeave.LessonTime && // x.EmpNo == stuAttendanceLeave.EmpNo && x.ClassRoomNo == stuAttendanceLeave.ClassRoomNo // ); // if (isExistModel != null) // { // stuAttendanceLeave.Modify(isExistModel.ID); // db.Update(stuAttendanceLeave); // } // else // { // stuAttendanceLeave.Create(); // db.Insert(stuAttendanceLeave); // } // //学生考勤 // StuAttendanceEntity stuAttendanceEntity = new StuAttendanceEntity(); // stuAttendanceEntity.AcademicYearNo = arrangeLessonTerm.AcademicYearNo; // stuAttendanceEntity.Semester = arrangeLessonTerm.Semester; // stuAttendanceEntity.StuNo = model.CreateUserNo; // stuAttendanceEntity.StuName = arrangeLessonTerm.StuName; // stuAttendanceEntity.Gender = arrangeLessonTerm.GenderNo.ToLower() == "true" ? "男" : "女"; // stuAttendanceEntity.Grade = arrangeLessonTerm.Grade; // stuAttendanceEntity.DeptNo = arrangeLessonTerm.DeptNo; // stuAttendanceEntity.DeptName = deptList.Where(x => x.DeptNo == arrangeLessonTerm.DeptNo) // .FirstOrDefault()?.DeptName; // stuAttendanceEntity.MajorNo = arrangeLessonTerm.MajorNo; // stuAttendanceEntity.MajorName = majorList.Where(x => x.MajorNo == arrangeLessonTerm.MajorNo).FirstOrDefault()?.MajorName; // stuAttendanceEntity.ClassNo = arrangeLessonTerm.TeachClassNo; // stuAttendanceEntity.ClassName = classInfoList // .Where(x => x.ClassNo == arrangeLessonTerm.TeachClassNo).FirstOrDefault()?.ClassName; // stuAttendanceEntity.LessonNo = arrangeLessonTerm.LessonNo; // stuAttendanceEntity.LessonName = arrangeLessonTerm.LessonName; // stuAttendanceEntity.TeachClassNo = arrangeLessonTerm.TeachClassNo; // stuAttendanceEntity.LessonSortNo = arrangeLessonTerm.LessonSortNo; // stuAttendanceEntity.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName; // stuAttendanceEntity.LessonDate = arrangeLessonTerm.LessonDate; // stuAttendanceEntity.PlanWeek = null; // stuAttendanceEntity.LessonTime = arrangeLessonTerm.LessonTime; // stuAttendanceEntity.AttendOrNo = "否"; // stuAttendanceEntity.Sort = Convert.ToInt32(entity.LeaveType) == 2 ? "病假" : "事假"; // stuAttendanceEntity.EmpNo = arrangeLessonTerm.EmpNo; // stuAttendanceEntity.Remark = "按天请假"; // stuAttendanceEntity.CheckMarkDept = ""; // stuAttendanceEntity.CheckMark = ""; // stuAttendanceEntity.InertDate = DateTime.Now; // stuAttendanceEntity.ClassRoomNo = arrangeLessonTerm.ClassroomNo; // stuAttendanceEntity.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName; // //去重 // var isExistModel2 = this.BaseRepository("CollegeMIS").FindEntity(x => // x.AcademicYearNo == stuAttendanceEntity.AcademicYearNo && x.Semester == stuAttendanceEntity.Semester && x.StuNo == stuAttendanceEntity.StuNo && // x.LessonNo == stuAttendanceEntity.LessonNo && x.TeachClassNo == stuAttendanceEntity.TeachClassNo && x.LessonSortNo == stuAttendanceEntity.LessonSortNo && // x.LessonDate == stuAttendanceEntity.LessonDate && x.LessonTime == stuAttendanceEntity.LessonTime && x.EmpNo == stuAttendanceEntity.EmpNo && x.ClassRoomNo == stuAttendanceEntity.ClassRoomNo); // if (isExistModel2 != null) // { // stuAttendanceEntity.Modify(isExistModel2.ID); // db.Update(stuAttendanceEntity); // } // else // { // stuAttendanceEntity.Create(); // db.Insert(stuAttendanceEntity); // } // } // } } else { entity.Create(); db.Insert(entity); } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 提交 /// /// /// /// public void ModifyStatus(string keyValue, string CheckStatus, string processId) { var db = this.BaseRepository("CollegeMIS"); try { db.BeginTrans(); var entity = db.FindEntity(keyValue); entity.CheckStatus = CheckStatus; entity.ProcessId = processId; db.Update(entity); db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 审核实体数据 /// /// 主键 public void ChangeStatusByProcessId(string status, string processId, string userId) { var db = this.BaseRepository("CollegeMIS"); try { db.BeginTrans(); db.ExecuteBySql("update StuLeaveManagement set CheckStatus='" + status + "',CheckUserId='" + userId + "',CheckTime='" + DateTime.Now + "' where ProcessId='" + processId + "' "); if (status.Trim() == "2") { //请假审核通过后,该学生的对应日期的课表改为请假 var model = db.FindList( $"select * from StuLeaveManagement where ProcessId='{processId}'").FirstOrDefault(); //请假开始时间和结束时间 var startTime = Convert.ToDateTime(model.StartTime?.ToString("yyyy-MM-dd") + " 00:00:00"); var endTime = Convert.ToDateTime(model.EndTime?.ToString("yyyy-MM-dd") + " 23:59:59"); //排课数据 var arrangeLessonTermList = db.FindList($@"select a.*,b.StuName,b.Grade,b.GenderNo from [dbo].[ArrangeLessonTerm] a join stuinfobasic b on a.teachclassno=b.classno where b.stuno='{model.CreateUserNo}' and a.lessondate between '{startTime}' and '{endTime}'"); var deptList = this.BaseRepository("CollegeMIS").FindList(); var majorList = this.BaseRepository("CollegeMIS").FindList(); var classInfoList = this.BaseRepository("CollegeMIS").FindList(); var classRoomList = this.BaseRepository("CollegeMIS").FindList().ToList(); var lessonSortList = this.BaseRepository("CollegeMIS").FindList().ToList(); foreach (var arrangeLessonTerm in arrangeLessonTermList) { StuAttendanceLeaveEntity stuAttendanceLeave = new StuAttendanceLeaveEntity(); stuAttendanceLeave.AcademicYearNo = arrangeLessonTerm.AcademicYearNo; stuAttendanceLeave.Semester = arrangeLessonTerm.Semester; stuAttendanceLeave.StuNo = model.CreateUserNo; stuAttendanceLeave.StuName = arrangeLessonTerm.StuName; stuAttendanceLeave.Grade = arrangeLessonTerm.Grade; stuAttendanceLeave.DeptNo = arrangeLessonTerm.DeptNo; stuAttendanceLeave.DeptName = deptList.Where(x => x.DeptNo == arrangeLessonTerm.DeptNo) .FirstOrDefault()?.DeptName; stuAttendanceLeave.MajorNo = arrangeLessonTerm.MajorNo; stuAttendanceLeave.MajorName = majorList.Where(x => x.MajorNo == arrangeLessonTerm.MajorNo) .FirstOrDefault()?.MajorName; stuAttendanceLeave.ClassNo = arrangeLessonTerm.TeachClassNo; stuAttendanceLeave.ClassName = classInfoList .Where(x => x.ClassNo == arrangeLessonTerm.TeachClassNo).FirstOrDefault()?.ClassName; stuAttendanceLeave.LessonNo = arrangeLessonTerm.LessonNo; stuAttendanceLeave.LessonName = arrangeLessonTerm.LessonName; stuAttendanceLeave.TeachClassNo = arrangeLessonTerm.TeachClassNo; stuAttendanceLeave.LessonSortNo = arrangeLessonTerm.LessonSortNo; stuAttendanceLeave.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName; stuAttendanceLeave.LessonDate = arrangeLessonTerm.LessonDate; stuAttendanceLeave.LessonTime = arrangeLessonTerm.LessonTime; stuAttendanceLeave.LeaveType = model.LeaveType; stuAttendanceLeave.EmpNo = arrangeLessonTerm.EmpNo; stuAttendanceLeave.TecRemark = "按天请假"; stuAttendanceLeave.UpdateDate = DateTime.Now; stuAttendanceLeave.IsCheck = "1"; stuAttendanceLeave.ClassRoomNo = arrangeLessonTerm.ClassroomNo; stuAttendanceLeave.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName; //去重 var isExistModel = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == stuAttendanceLeave.AcademicYearNo && x.Semester == stuAttendanceLeave.Semester && x.StuNo == stuAttendanceLeave.StuNo && x.LessonNo == stuAttendanceLeave.LessonNo && x.TeachClassNo == stuAttendanceLeave.TeachClassNo && x.LessonSortNo == stuAttendanceLeave.LessonSortNo && x.LessonDate == stuAttendanceLeave.LessonDate && x.LessonTime == stuAttendanceLeave.LessonTime && x.EmpNo == stuAttendanceLeave.EmpNo && x.ClassRoomNo == stuAttendanceLeave.ClassRoomNo ); if (isExistModel != null) { stuAttendanceLeave.Modify(isExistModel.ID); db.Update(stuAttendanceLeave); } else { stuAttendanceLeave.Create(); db.Insert(stuAttendanceLeave); } //学生考勤 StuAttendanceEntity stuAttendanceEntity = new StuAttendanceEntity(); stuAttendanceEntity.AcademicYearNo = arrangeLessonTerm.AcademicYearNo; stuAttendanceEntity.Semester = arrangeLessonTerm.Semester; stuAttendanceEntity.StuNo = model.CreateUserNo; stuAttendanceEntity.StuName = arrangeLessonTerm.StuName; stuAttendanceEntity.Gender = arrangeLessonTerm.GenderNo.ToLower() == "true" ? "男" : "女"; stuAttendanceEntity.Grade = arrangeLessonTerm.Grade; stuAttendanceEntity.DeptNo = arrangeLessonTerm.DeptNo; stuAttendanceEntity.DeptName = deptList.Where(x => x.DeptNo == arrangeLessonTerm.DeptNo) .FirstOrDefault()?.DeptName; stuAttendanceEntity.MajorNo = arrangeLessonTerm.MajorNo; stuAttendanceEntity.MajorName = majorList.Where(x => x.MajorNo == arrangeLessonTerm.MajorNo).FirstOrDefault()?.MajorName; stuAttendanceEntity.ClassNo = arrangeLessonTerm.TeachClassNo; stuAttendanceEntity.ClassName = classInfoList .Where(x => x.ClassNo == arrangeLessonTerm.TeachClassNo).FirstOrDefault()?.ClassName; stuAttendanceEntity.LessonNo = arrangeLessonTerm.LessonNo; stuAttendanceEntity.LessonName = arrangeLessonTerm.LessonName; stuAttendanceEntity.TeachClassNo = arrangeLessonTerm.TeachClassNo; stuAttendanceEntity.LessonSortNo = arrangeLessonTerm.LessonSortNo; stuAttendanceEntity.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName; stuAttendanceEntity.LessonDate = arrangeLessonTerm.LessonDate; stuAttendanceEntity.PlanWeek = null; stuAttendanceEntity.LessonTime = arrangeLessonTerm.LessonTime; stuAttendanceEntity.AttendOrNo = "否"; stuAttendanceEntity.Sort = Convert.ToInt32(model.LeaveType) == 2 ? "病假" : "事假"; stuAttendanceEntity.EmpNo = arrangeLessonTerm.EmpNo; stuAttendanceEntity.Remark = "按天请假"; stuAttendanceEntity.CheckMarkDept = ""; stuAttendanceEntity.CheckMark = ""; stuAttendanceEntity.InertDate = DateTime.Now; stuAttendanceEntity.ClassRoomNo = arrangeLessonTerm.ClassroomNo; stuAttendanceEntity.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName; //去重 var isExistModel2 = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == stuAttendanceEntity.AcademicYearNo && x.Semester == stuAttendanceEntity.Semester && x.StuNo == stuAttendanceEntity.StuNo && x.LessonNo == stuAttendanceEntity.LessonNo && x.TeachClassNo == stuAttendanceEntity.TeachClassNo && x.LessonSortNo == stuAttendanceEntity.LessonSortNo && x.LessonDate == stuAttendanceEntity.LessonDate && x.LessonTime == stuAttendanceEntity.LessonTime && x.EmpNo == stuAttendanceEntity.EmpNo && x.ClassRoomNo == stuAttendanceEntity.ClassRoomNo); if (isExistModel2 != null) { stuAttendanceEntity.Modify(isExistModel2.ID); db.Update(stuAttendanceEntity); } else { stuAttendanceEntity.Create(); db.Insert(stuAttendanceEntity); } } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// /// /// /// /// public void ChangeStatusById(string keyValue, int CheckStatus, string processId) { try { this.BaseRepository("CollegeMIS").ExecuteBySql($"update stuleavemanagement set ProcessId='{processId}',CheckStatus='{CheckStatus}' where Id='{keyValue}'"); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取主表实体数据 /// /// 流程实例ID /// public StuLeaveManagementEntity GetEntityByProcessId(string processId) { try { var data = this.BaseRepository("CollegeMIS").FindEntity(t => t.ProcessId == processId); if (data != null) { var studentlist = this.BaseRepository("CollegeMIS").FindList(x => x.StuNo == data.CreateUserNo).FirstOrDefault(); if (studentlist != null) { data.DeptNo = studentlist.DeptNo; data.MajorNo = studentlist.MajorNo; data.ClassNo = studentlist.ClassNo; data.CreateUserName = studentlist.StuName; } var classlist = this.BaseRepository("CollegeMIS").FindList(x => x.ClassNo == data.ClassNo).FirstOrDefault(); if (classlist != null) { data.ClassDiredctorNo = classlist.ClassDiredctorNo; data.ClassTutorNo = classlist.ClassTutorNo; } } return data; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion } }