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
}
}