You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

579 lines
28 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  10. {
  11. /// <summary>
  12. /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
  13. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2020-11-27 10:05
  16. /// 描 述:学生请假管理
  17. /// </summary>
  18. public class StuLeaveManagementService : RepositoryFactory
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取页面显示列表数据
  23. /// </summary>
  24. /// <param name="pagination">查询参数</param>
  25. /// <param name="queryJson">查询参数</param>
  26. /// <returns></returns>
  27. public IEnumerable<StuLeaveManagementEntity> GetPageList(Pagination pagination, string queryJson)
  28. {
  29. try
  30. {
  31. var strSql = new StringBuilder();
  32. strSql.Append("SELECT t.*,s.StuName as CreateUserName,s.ClassNo,s.DeptNo,s.MajorNo,c.ClassDiredctorNo,c.ClassTutorNo ");
  33. strSql.Append(" FROM StuLeaveManagement t left join StuInfoBasic s on t.CreateUserNo=s.StuNo left join ClassInfo c on s.ClassNo=c.ClassNo ");
  34. strSql.Append(" WHERE 1=1 ");
  35. var queryParam = queryJson.ToJObject();
  36. // 虚拟参数
  37. var dp = new DynamicParameters(new { });
  38. if (!queryParam["LeaveType"].IsEmpty())
  39. {
  40. dp.Add("LeaveType", queryParam["LeaveType"].ToString(), DbType.String);
  41. strSql.Append(" AND t.LeaveType = @LeaveType ");
  42. }
  43. if (!queryParam["CheckStatus"].IsEmpty())
  44. {
  45. dp.Add("CheckStatus", queryParam["CheckStatus"].ToString(), DbType.String);
  46. strSql.Append(" AND t.CheckStatus = @CheckStatus ");
  47. }
  48. if (!queryParam["StuNo"].IsEmpty())
  49. {
  50. dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String);
  51. strSql.Append(" AND t.CreateUserNo = @StuNo ");
  52. }
  53. if (!queryParam["StuName"].IsEmpty())
  54. {
  55. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  56. strSql.Append(" AND s.StuName like @StuName ");
  57. }
  58. //班级班主任/辅导员/系主任
  59. if (!queryParam["ClassManagerNo"].IsEmpty())
  60. {
  61. dp.Add("ClassManagerNo", queryParam["ClassManagerNo"].ToString(), DbType.String);
  62. strSql.Append(" AND (c.ClassDiredctorNo = @ClassManagerNo or c.ClassTutorNo = @ClassManagerNo) ");
  63. ////登录用户是否是系主任:若是,展示大于2天的请假记录;
  64. //var deptDirectorRoleId = Config.GetValue("DeptDirectorRoleId");
  65. //if (deptDirectorRoleId != null)
  66. //{
  67. // var loginInfoRoleIds = LoginUserInfo.Get().roleIds;
  68. // if (loginInfoRoleIds.IndexOf(',') == -1)
  69. // {
  70. // if (loginInfoRoleIds == deptDirectorRoleId)
  71. // {
  72. // strSql.Append(" or t.LeaveDay>2 )");
  73. // }
  74. // else
  75. // {
  76. // strSql.Append(" ) ");
  77. // }
  78. // }
  79. // else
  80. // {
  81. // if (loginInfoRoleIds.Split(',').Contains(deptDirectorRoleId))
  82. // {
  83. // strSql.Append(" or t.LeaveDay>2 )");
  84. // }
  85. // else
  86. // {
  87. // strSql.Append(" ) ");
  88. // }
  89. // }
  90. //}
  91. //else
  92. //{
  93. // strSql.Append(" ) ");
  94. //}
  95. }
  96. return this.BaseRepository("CollegeMIS").FindList<StuLeaveManagementEntity>(strSql.ToString(), dp, pagination);
  97. }
  98. catch (Exception ex)
  99. {
  100. if (ex is ExceptionEx)
  101. {
  102. throw;
  103. }
  104. else
  105. {
  106. throw ExceptionEx.ThrowServiceException(ex);
  107. }
  108. }
  109. }
  110. public IEnumerable<StuLeaveManagementEntity> GetCheckPageList(Pagination pagination, string queryJson)
  111. {
  112. try
  113. {
  114. var strSql = new StringBuilder();
  115. strSql.Append("SELECT t.*,s.StuName as CreateUserName,s.ClassNo,s.DeptNo,s.MajorNo,c.ClassDiredctorNo,c.ClassTutorNo ");
  116. strSql.Append(" FROM StuLeaveManagement t left join StuInfoBasic s on t.CreateUserNo=s.StuNo left join ClassInfo c on s.ClassNo=c.ClassNo ");
  117. strSql.Append(" WHERE 1=1 ");
  118. var queryParam = queryJson.ToJObject();
  119. // 虚拟参数
  120. var dp = new DynamicParameters(new { });
  121. if (!queryParam["LeaveType"].IsEmpty())
  122. {
  123. dp.Add("LeaveType", queryParam["LeaveType"].ToString(), DbType.String);
  124. strSql.Append(" AND t.LeaveType = @LeaveType ");
  125. }
  126. if (!queryParam["CheckStatus"].IsEmpty())
  127. {
  128. dp.Add("CheckStatus", queryParam["CheckStatus"].ToString(), DbType.String);
  129. strSql.Append(" AND t.CheckStatus = @CheckStatus ");
  130. }
  131. if (!queryParam["StuNo"].IsEmpty())
  132. {
  133. dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String);
  134. strSql.Append(" AND t.CreateUserNo = @StuNo ");
  135. }
  136. if (!queryParam["StuName"].IsEmpty())
  137. {
  138. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  139. strSql.Append(" AND s.StuName like @StuName ");
  140. }
  141. //班级班主任/辅导员/系主任
  142. var ClassManagerNo = LoginUserInfo.Get().account;
  143. if (!string.IsNullOrEmpty(ClassManagerNo))
  144. {
  145. dp.Add("ClassManagerNo", ClassManagerNo, DbType.String);
  146. strSql.Append(" AND (c.ClassDiredctorNo = @ClassManagerNo or c.ClassTutorNo = @ClassManagerNo ");
  147. //登录用户是否是系主任:若是,展示大于2天的请假记录;
  148. var deptDirectorRoleId = Config.GetValue("DeptDirectorRoleId");
  149. if (deptDirectorRoleId != null)
  150. {
  151. var loginInfoRoleIds = LoginUserInfo.Get().roleIds;
  152. if (loginInfoRoleIds.IndexOf(',') == -1)
  153. {
  154. if (loginInfoRoleIds == deptDirectorRoleId)
  155. {
  156. strSql.Append(" or t.LeaveDay>2 )");
  157. }
  158. else
  159. {
  160. strSql.Append(" ) ");
  161. }
  162. }
  163. else
  164. {
  165. if (loginInfoRoleIds.Split(',').Contains(deptDirectorRoleId))
  166. {
  167. strSql.Append(" or t.LeaveDay>2 )");
  168. }
  169. else
  170. {
  171. strSql.Append(" ) ");
  172. }
  173. }
  174. }
  175. else
  176. {
  177. strSql.Append(" ) ");
  178. }
  179. }
  180. return this.BaseRepository("CollegeMIS").FindList<StuLeaveManagementEntity>(strSql.ToString(), dp, pagination);
  181. }
  182. catch (Exception ex)
  183. {
  184. if (ex is ExceptionEx)
  185. {
  186. throw;
  187. }
  188. else
  189. {
  190. throw ExceptionEx.ThrowServiceException(ex);
  191. }
  192. }
  193. }
  194. /// <summary>
  195. /// 获取StuLeaveManagement表实体数据
  196. /// </summary>
  197. /// <param name="keyValue">主键</param>
  198. /// <returns></returns>
  199. public StuLeaveManagementEntity GetStuLeaveManagementEntity(string keyValue)
  200. {
  201. try
  202. {
  203. var data = this.BaseRepository("CollegeMIS").FindEntity<StuLeaveManagementEntity>(keyValue);
  204. if (data != null)
  205. {
  206. var studentlist = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(x => x.StuNo == data.CreateUserNo).FirstOrDefault();
  207. if (studentlist != null)
  208. {
  209. data.DeptNo = studentlist.DeptNo;
  210. data.MajorNo = studentlist.MajorNo;
  211. data.ClassNo = studentlist.ClassNo;
  212. data.CreateUserName = studentlist.StuName;
  213. }
  214. var classlist = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(x => x.ClassNo == data.ClassNo).FirstOrDefault();
  215. if (classlist != null)
  216. {
  217. data.ClassDiredctorNo = classlist.ClassDiredctorNo;
  218. data.ClassTutorNo = classlist.ClassTutorNo;
  219. }
  220. }
  221. return data;
  222. }
  223. catch (Exception ex)
  224. {
  225. if (ex is ExceptionEx)
  226. {
  227. throw;
  228. }
  229. else
  230. {
  231. throw ExceptionEx.ThrowServiceException(ex);
  232. }
  233. }
  234. }
  235. #endregion
  236. #region 提交数据
  237. /// <summary>
  238. /// 删除实体数据
  239. /// </summary>
  240. /// <param name="keyValue">主键</param>
  241. public void DeleteEntity(string keyValue)
  242. {
  243. try
  244. {
  245. this.BaseRepository("CollegeMIS").Delete<StuLeaveManagementEntity>(t => t.Id == keyValue);
  246. }
  247. catch (Exception ex)
  248. {
  249. if (ex is ExceptionEx)
  250. {
  251. throw;
  252. }
  253. else
  254. {
  255. throw ExceptionEx.ThrowServiceException(ex);
  256. }
  257. }
  258. }
  259. /// <summary>
  260. /// 保存实体数据(新增、修改)
  261. /// </summary>
  262. /// <param name="keyValue">主键</param>
  263. /// <param name="entity">实体</param>
  264. public void SaveEntity(string keyValue, StuLeaveManagementEntity entity)
  265. {
  266. var db = this.BaseRepository("CollegeMIS");
  267. try
  268. {
  269. db.BeginTrans();
  270. if (!string.IsNullOrEmpty(keyValue))
  271. {
  272. entity.Modify(keyValue);
  273. db.Update(entity);
  274. }
  275. else
  276. {
  277. entity.Create();
  278. db.Insert(entity);
  279. }
  280. db.Commit();
  281. }
  282. catch (Exception ex)
  283. {
  284. db.Rollback();
  285. if (ex is ExceptionEx)
  286. {
  287. throw;
  288. }
  289. else
  290. {
  291. throw ExceptionEx.ThrowServiceException(ex);
  292. }
  293. }
  294. }
  295. /// <summary>
  296. /// 提交
  297. /// </summary>
  298. /// <param name="keyValue"></param>
  299. /// <param name="CheckStatus"></param>
  300. /// <param name="processId"></param>
  301. public void ModifyStatus(string keyValue, string CheckStatus, string processId)
  302. {
  303. var db = this.BaseRepository("CollegeMIS");
  304. try
  305. {
  306. db.BeginTrans();
  307. var entity = db.FindEntity<StuLeaveManagementEntity>(keyValue);
  308. entity.CheckStatus = CheckStatus;
  309. entity.ProcessId = processId;
  310. db.Update(entity);
  311. db.Commit();
  312. }
  313. catch (Exception ex)
  314. {
  315. db.Rollback();
  316. if (ex is ExceptionEx)
  317. {
  318. throw;
  319. }
  320. else
  321. {
  322. throw ExceptionEx.ThrowServiceException(ex);
  323. }
  324. }
  325. }
  326. /// <summary>
  327. /// 审核实体数据
  328. /// </summary>
  329. /// <param name="keyValue">主键</param>
  330. public void ChangeStatusByProcessId(string status, string processId, string userId)
  331. {
  332. var db = this.BaseRepository("CollegeMIS");
  333. try
  334. {
  335. db.BeginTrans();
  336. db.ExecuteBySql("update StuLeaveManagement set CheckStatus='" + status + "',CheckUserId='" + userId + "',CheckTime='" + DateTime.Now + "' where ProcessId='" + processId + "' ");
  337. if (status.Trim() == "2")
  338. {
  339. //请假审核通过后,该学生的对应日期的课表改为请假
  340. var model = db.FindList<StuLeaveManagementEntity>(
  341. $"select * from StuLeaveManagement where ProcessId='{processId}'").FirstOrDefault();
  342. if (model != null)
  343. {
  344. var stuEntity = this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(x => x.StuNo == model.CreateUserNo);
  345. if (stuEntity != null)
  346. {
  347. //请假开始时间和结束时间
  348. var startTime = Convert.ToDateTime(model.StartTime?.ToString("yyyy-MM-dd") + " 00:00:00");
  349. var endTime = Convert.ToDateTime(model.EndTime?.ToString("yyyy-MM-dd") + " 23:59:59");
  350. //必修课+选修课
  351. var arrangeLessonList = new List<ArrangeLessonTermEntity>();
  352. //必修课排课数据
  353. var arrangeLessonTermList = db.FindList<ArrangeLessonTermEntity>($@"select a.*,b.StuName,b.Grade,b.GenderNo,b.ClassNo from [dbo].[ArrangeLessonTerm] a
  354. join stuinfobasic b on replace(a.TeachClassNo,a.LessonName,'')=b.classno
  355. where b.stuno='{model.CreateUserNo}'
  356. and a.lessondate between '{startTime}' and '{endTime}'");
  357. arrangeLessonList.AddRange(arrangeLessonTermList);
  358. //选修课排课数据
  359. var arrangeLessonTermElectiveList = db.FindList<ArrangeLessonTermEntity>($@"select a.* from
  360. (select olpoeid from ElectiveMergeItem
  361. where emid in (select emid from ElectiveMergeItem aa left
  362. join StuSelectLessonListOfElective bb on aa.olpoeid = bb.olpeid
  363. where bb.StuNo = '{model.CreateUserNo}' and bb.Status = 2 )
  364. ) as ccc
  365. left join ArrangeLessonTermOfElective a on ccc.olpoeid = a.PaiKeId
  366. where a.LessonDate between '{startTime}' and '{endTime}'
  367. and a.CheckMark = '1' ");
  368. arrangeLessonList.AddRange(arrangeLessonTermElectiveList);
  369. var deptList = this.BaseRepository("CollegeMIS").FindList<CdDeptEntity>();
  370. var majorList = this.BaseRepository("CollegeMIS").FindList<CdMajorEntity>();
  371. var classInfoList = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>();
  372. var classRoomList = this.BaseRepository("CollegeMIS").FindList<ClassroomInfoEntity>().ToList();
  373. var lessonSortList = this.BaseRepository("CollegeMIS").FindList<CdLessonSortEntity>().ToList();
  374. foreach (var arrangeLessonTerm in arrangeLessonList)
  375. {
  376. //学生课表请假表
  377. StuAttendanceLeaveEntity stuAttendanceLeave = new StuAttendanceLeaveEntity();
  378. stuAttendanceLeave.AcademicYearNo = arrangeLessonTerm.AcademicYearNo;
  379. stuAttendanceLeave.Semester = arrangeLessonTerm.Semester;
  380. stuAttendanceLeave.StuNo = stuEntity.StuNo;
  381. stuAttendanceLeave.StuName = stuEntity.StuName;
  382. stuAttendanceLeave.Grade = stuEntity.Grade;
  383. stuAttendanceLeave.DeptNo = stuEntity.DeptNo;
  384. stuAttendanceLeave.DeptName = deptList.Where(x => x.DeptNo == stuEntity.DeptNo)
  385. .FirstOrDefault()?.DeptName;
  386. stuAttendanceLeave.MajorNo = stuEntity.MajorNo;
  387. stuAttendanceLeave.MajorName = majorList.Where(x => x.MajorNo == stuEntity.MajorNo)
  388. .FirstOrDefault()?.MajorName;
  389. stuAttendanceLeave.ClassNo = stuEntity.ClassNo;
  390. stuAttendanceLeave.ClassName = classInfoList
  391. .Where(x => x.ClassNo == stuEntity.ClassNo).FirstOrDefault()?.ClassName;
  392. stuAttendanceLeave.LessonNo = arrangeLessonTerm.LessonNo;
  393. stuAttendanceLeave.LessonName = arrangeLessonTerm.LessonName;
  394. stuAttendanceLeave.TeachClassNo = stuEntity.ClassNo;
  395. stuAttendanceLeave.LessonSortNo = arrangeLessonTerm.LessonSortNo;
  396. stuAttendanceLeave.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName;
  397. stuAttendanceLeave.LessonDate = arrangeLessonTerm.LessonDate;
  398. stuAttendanceLeave.LessonTime = arrangeLessonTerm.LessonSortNo == "2" ? arrangeLessonTerm.LessonSection : arrangeLessonTerm.LessonTime;
  399. stuAttendanceLeave.LeaveType = model.LeaveType;
  400. stuAttendanceLeave.EmpNo = arrangeLessonTerm.EmpNo;
  401. stuAttendanceLeave.TecRemark = "按天请假";
  402. stuAttendanceLeave.UpdateDate = DateTime.Now;
  403. stuAttendanceLeave.IsCheck = "1";
  404. stuAttendanceLeave.ClassRoomNo = arrangeLessonTerm.ClassroomNo;
  405. stuAttendanceLeave.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName;
  406. //去重
  407. var isExistModel = this.BaseRepository("CollegeMIS").FindEntity<StuAttendanceLeaveEntity>(x =>
  408. x.AcademicYearNo == stuAttendanceLeave.AcademicYearNo && x.Semester == stuAttendanceLeave.Semester &&
  409. x.StuNo == stuAttendanceLeave.StuNo && x.LessonNo == stuAttendanceLeave.LessonNo && x.TeachClassNo == stuAttendanceLeave.TeachClassNo &&
  410. x.LessonSortNo == stuAttendanceLeave.LessonSortNo && x.LessonDate == stuAttendanceLeave.LessonDate && x.LessonTime == stuAttendanceLeave.LessonTime &&
  411. x.EmpNo == stuAttendanceLeave.EmpNo && x.ClassRoomNo == stuAttendanceLeave.ClassRoomNo
  412. );
  413. if (isExistModel != null)
  414. {
  415. stuAttendanceLeave.Modify(isExistModel.ID);
  416. db.Update(stuAttendanceLeave);
  417. }
  418. else
  419. {
  420. stuAttendanceLeave.Create();
  421. db.Insert(stuAttendanceLeave);
  422. }
  423. //学生考勤表
  424. StuAttendanceEntity stuAttendanceEntity = new StuAttendanceEntity();
  425. stuAttendanceEntity.AcademicYearNo = arrangeLessonTerm.AcademicYearNo;
  426. stuAttendanceEntity.Semester = arrangeLessonTerm.Semester;
  427. stuAttendanceEntity.StuNo = stuEntity.StuNo;
  428. stuAttendanceEntity.StuName = stuEntity.StuName;
  429. stuAttendanceEntity.Gender = stuEntity.GenderNo == true ? "男" : "女";
  430. stuAttendanceEntity.Grade = stuEntity.Grade;
  431. stuAttendanceEntity.DeptNo = stuEntity.DeptNo;
  432. stuAttendanceEntity.DeptName = deptList.Where(x => x.DeptNo == stuEntity.DeptNo)
  433. .FirstOrDefault()?.DeptName;
  434. stuAttendanceEntity.MajorNo = stuEntity.MajorNo;
  435. stuAttendanceEntity.MajorName = majorList.Where(x => x.MajorNo == stuEntity.MajorNo).FirstOrDefault()?.MajorName;
  436. stuAttendanceEntity.ClassNo = stuEntity.ClassNo;
  437. stuAttendanceEntity.ClassName = classInfoList
  438. .Where(x => x.ClassNo == stuEntity.ClassNo).FirstOrDefault()?.ClassName;
  439. stuAttendanceEntity.LessonNo = arrangeLessonTerm.LessonNo;
  440. stuAttendanceEntity.LessonName = arrangeLessonTerm.LessonName;
  441. stuAttendanceEntity.TeachClassNo = stuEntity.ClassNo;
  442. stuAttendanceEntity.LessonSortNo = arrangeLessonTerm.LessonSortNo;
  443. stuAttendanceEntity.LessonSortName = lessonSortList.Find(m => m.LessonSortNo == arrangeLessonTerm.LessonSortNo)?.LessonSortName;
  444. stuAttendanceEntity.LessonDate = arrangeLessonTerm.LessonDate;
  445. stuAttendanceEntity.PlanWeek = null;
  446. stuAttendanceEntity.LessonTime = arrangeLessonTerm.LessonSortNo == "2" ? arrangeLessonTerm.LessonSection : arrangeLessonTerm.LessonTime;
  447. stuAttendanceEntity.LessonTime2 = arrangeLessonTerm.LessonSortNo == "2" ? arrangeLessonTerm.LessonTime : null;
  448. stuAttendanceEntity.AttendOrNo = "否";
  449. stuAttendanceEntity.Sort = "请假";
  450. stuAttendanceEntity.EmpNo = arrangeLessonTerm.EmpNo;
  451. stuAttendanceEntity.Remark = "属于学生按天请假的流程审核";
  452. stuAttendanceEntity.CheckMarkDept = "0";
  453. stuAttendanceEntity.CheckMark = "0";
  454. stuAttendanceEntity.InertDate = DateTime.Now;
  455. stuAttendanceEntity.ClassRoomNo = arrangeLessonTerm.ClassroomNo;
  456. stuAttendanceEntity.ClassRoomName = classRoomList.FirstOrDefault(x => x.ClassroomNo == arrangeLessonTerm.ClassroomNo)?.ClassroomName;
  457. //去重
  458. var isExistModel2 = this.BaseRepository("CollegeMIS").FindEntity<StuAttendanceEntity>(x =>
  459. x.AcademicYearNo == stuAttendanceEntity.AcademicYearNo && x.Semester == stuAttendanceEntity.Semester && x.StuNo == stuAttendanceEntity.StuNo &&
  460. x.LessonNo == stuAttendanceEntity.LessonNo && x.TeachClassNo == stuAttendanceEntity.TeachClassNo && x.LessonSortNo == stuAttendanceEntity.LessonSortNo &&
  461. x.LessonDate == stuAttendanceEntity.LessonDate && x.LessonTime == stuAttendanceEntity.LessonTime && x.EmpNo == stuAttendanceEntity.EmpNo && x.ClassRoomNo == stuAttendanceEntity.ClassRoomNo);
  462. if (isExistModel2 != null)
  463. {
  464. stuAttendanceEntity.Modify(isExistModel2.ID);
  465. db.Update(stuAttendanceEntity);
  466. }
  467. else
  468. {
  469. stuAttendanceEntity.Create();
  470. db.Insert(stuAttendanceEntity);
  471. }
  472. }
  473. }
  474. }
  475. }
  476. db.Commit();
  477. }
  478. catch (Exception ex)
  479. {
  480. db.Rollback();
  481. if (ex is ExceptionEx)
  482. {
  483. throw;
  484. }
  485. else
  486. {
  487. throw ExceptionEx.ThrowServiceException(ex);
  488. }
  489. }
  490. }
  491. /// <summary>
  492. ///
  493. /// </summary>
  494. /// <param name="keyValue"></param>
  495. /// <param name="status"></param>
  496. /// <param name="processId"></param>
  497. public void ChangeStatusById(string keyValue, int CheckStatus, string processId)
  498. {
  499. try
  500. {
  501. this.BaseRepository("CollegeMIS").ExecuteBySql($"update stuleavemanagement set ProcessId='{processId}',CheckStatus='{CheckStatus}' where Id='{keyValue}'");
  502. }
  503. catch (Exception ex)
  504. {
  505. if (ex is ExceptionEx)
  506. {
  507. throw;
  508. }
  509. else
  510. {
  511. throw ExceptionEx.ThrowServiceException(ex);
  512. }
  513. }
  514. }
  515. /// <summary>
  516. /// 获取主表实体数据
  517. /// </summary>
  518. /// <param name="processId">流程实例ID</param>
  519. /// <returns></returns>
  520. public StuLeaveManagementEntity GetEntityByProcessId(string processId)
  521. {
  522. try
  523. {
  524. var data = this.BaseRepository("CollegeMIS").FindEntity<StuLeaveManagementEntity>(t => t.ProcessId == processId);
  525. if (data != null)
  526. {
  527. var studentlist = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(x => x.StuNo == data.CreateUserNo).FirstOrDefault();
  528. if (studentlist != null)
  529. {
  530. data.DeptNo = studentlist.DeptNo;
  531. data.MajorNo = studentlist.MajorNo;
  532. data.ClassNo = studentlist.ClassNo;
  533. data.CreateUserName = studentlist.StuName;
  534. }
  535. var classlist = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(x => x.ClassNo == data.ClassNo).FirstOrDefault();
  536. if (classlist != null)
  537. {
  538. data.ClassDiredctorNo = classlist.ClassDiredctorNo;
  539. data.ClassTutorNo = classlist.ClassTutorNo;
  540. }
  541. }
  542. return data;
  543. }
  544. catch (Exception ex)
  545. {
  546. if (ex is ExceptionEx)
  547. {
  548. throw;
  549. }
  550. else
  551. {
  552. throw ExceptionEx.ThrowServiceException(ex);
  553. }
  554. }
  555. }
  556. #endregion
  557. }
  558. }