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.
 
 
 
 
 
 

2742 lines
98 KiB

  1. using Dapper;
  2. using Learun.Application.Organization;
  3. using Learun.Application.TwoDevelopment.LogisticsManagement;
  4. using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement;
  5. using Learun.DataBase.Repository;
  6. using Learun.Util;
  7. using Newtonsoft.Json;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Data;
  11. using System.Linq;
  12. using System.Text;
  13. using Learun.Application.Base.SystemModule;
  14. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  15. {
  16. /// <summary>
  17. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  18. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  19. /// 创 建:超级管理员
  20. /// 日 期:2019-07-17 11:20
  21. /// 描 述:新生录取管理
  22. /// </summary>
  23. public class StuEnrollService : RepositoryFactory
  24. {
  25. #region 获取数据
  26. /// <summary>
  27. /// 获取页面显示列表数据
  28. /// <summary>
  29. /// <param name="queryJson">查询参数</param>
  30. /// <returns></returns>
  31. public IEnumerable<StuEnrollEntity> GetPageList(Pagination pagination, string queryJson)
  32. {
  33. try
  34. {
  35. var strSql = new StringBuilder();
  36. strSql.Append("SELECT ");
  37. strSql.Append(@"
  38. t.StuId,
  39. t.RegistrationNo,
  40. t.StuName,
  41. t.Gender,
  42. t.Nationals,
  43. t.Birthday,
  44. t.IDCard,
  45. t.Political,
  46. t.FreshType,
  47. t.ResidenceType,
  48. t.StuType,
  49. t.ResidenceAddress,
  50. t.NonNative,
  51. t.FromSchool,
  52. t.HomeAddress,
  53. t.FirstGuardian,
  54. t.FirstRelationship,
  55. t.FirstUnits,
  56. t.FirstMobile,
  57. t.SecondGuardian,
  58. t.SecondRelationship,
  59. t.SecondUnits,
  60. t.SecondMobile,
  61. t.Acceptance,
  62. t.Recipient,
  63. t.ZipCode,
  64. t.MedicalHistory,
  65. t.AdditionalCare,
  66. t.MajorNo,
  67. t.MajorName,
  68. t.Admissions,
  69. t.IsAccommodation,
  70. t.ExamRegistration,
  71. t.ClassNo,
  72. t.DormitoryNo,
  73. t.DormitoryName,
  74. t.IsPay,
  75. t.IsCheckIn,
  76. t.IsCheckIn2,
  77. t.EnrollType,
  78. t.IsSubsidize1,
  79. t.IsSubsidize12,
  80. t.IsMilitary,
  81. t.IsMilitary2,
  82. t.IsQuantity,
  83. t.IsTakeCloths,
  84. t.IsMug,
  85. t.IsGetBeddingArticle,
  86. t.IsReport,
  87. t.EductionalSystme,
  88. t.CheckInUrl,
  89. t.SubsidizeUrl,
  90. t.MilitaryUrl,
  91. t.AddTime,
  92. t.StuNo,
  93. t.StuStatusNo,
  94. t.PayAmount,
  95. t.ActualPayAmount,
  96. t.DeptNo,
  97. t.Grade,
  98. t.THROUGHPROJECT,
  99. t.Status,t.StuMobile,t.Specialty,t.City,t.County,t.EmpNo,t.IsAdmission,t.EnrollStatus,t.MidTermExam,t.zusu
  100. ");
  101. strSql.Append(" FROM StuEnroll t ");
  102. strSql.Append(" WHERE 1=1 ");
  103. var queryParam = queryJson.ToJObject();
  104. // 虚拟参数
  105. var dp = new DynamicParameters(new { });
  106. if (!queryParam["IDCard"].IsEmpty())
  107. {
  108. dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
  109. strSql.Append(" AND t.IDCard Like @IDCard ");
  110. }
  111. if (!queryParam["Year"].IsEmpty())
  112. {
  113. dp.Add("Year", "%" + queryParam["Year"].ToString() + "%", DbType.String);
  114. strSql.Append(" AND t.ClassNo Like @Year ");
  115. }
  116. //sql条件
  117. if (!queryParam["SqlParameter"].IsEmpty())
  118. {
  119. strSql.Append(queryParam["SqlParameter"].ToString());
  120. }
  121. if (!queryParam["RegistrationNo"].IsEmpty())
  122. {
  123. dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String);
  124. strSql.Append(" AND t.RegistrationNo Like @RegistrationNo ");
  125. }
  126. if (!queryParam["Admissions"].IsEmpty())
  127. {
  128. dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
  129. strSql.Append(" AND t.Admissions = @Admissions ");
  130. }
  131. if (!queryParam["DeptNo"].IsEmpty())
  132. {
  133. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  134. strSql.Append(" AND t.DeptNo = @DeptNo ");
  135. }
  136. if (!queryParam["MajorNo"].IsEmpty())
  137. {
  138. dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
  139. strSql.Append(" AND t.MajorNo = @MajorNo ");
  140. }
  141. if (!queryParam["Grade"].IsEmpty())
  142. {
  143. dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
  144. strSql.Append(" AND t.Grade = @Grade ");
  145. }
  146. if (!queryParam["ClassNo"].IsEmpty())
  147. {
  148. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  149. strSql.Append(" AND t.ClassNo = @ClassNo ");
  150. }
  151. if (!queryParam["IsAllocation"].IsEmpty())
  152. {
  153. var IsAllocation = Convert.ToBoolean(queryParam["IsAllocation"].ToString());
  154. if (IsAllocation)
  155. {
  156. strSql.Append(" AND (t.ClassNo IS NOT NULL AND t.ClassNo<>'')");
  157. }
  158. else
  159. {
  160. strSql.Append(" AND (t.ClassNo IS NULL OR t.ClassNo='')");
  161. }
  162. }
  163. if (!queryParam["IsAllocationDormitory"].IsEmpty())
  164. {
  165. var IsAllocation = Convert.ToBoolean(queryParam["IsAllocationDormitory"].ToString());
  166. if (IsAllocation)
  167. {
  168. strSql.Append(" AND (t.DormitoryNo IS NOT NULL AND t.DormitoryNo<>'')");
  169. }
  170. else
  171. {
  172. strSql.Append(" AND (t.DormitoryNo IS NULL OR t.DormitoryNo='')");
  173. }
  174. }
  175. if (!queryParam["StuName"].IsEmpty())
  176. {
  177. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  178. strSql.Append(" AND t.StuName Like @StuName ");
  179. }
  180. if (!queryParam["Status"].IsEmpty())
  181. {
  182. dp.Add("Status", queryParam["Status"].ToString(), DbType.String);
  183. strSql.Append(" AND t.Status = @Status ");
  184. }
  185. if (!queryParam["Gender"].IsEmpty())
  186. {
  187. dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean);
  188. strSql.Append(" AND t.Gender = @Gender ");
  189. }
  190. if (!queryParam["PayList"].IsEmpty())
  191. {
  192. strSql.Append(" AND t.Status>=3 AND t.Status<6 ");
  193. }
  194. if (!queryParam["IsCheckIn"].IsEmpty())
  195. {
  196. if (queryParam["IsCheckIn"].ToString() == "null")
  197. {
  198. strSql.Append(" AND t.IsCheckIn is null ");
  199. }
  200. else
  201. {
  202. dp.Add("IsCheckIn", queryParam["IsCheckIn"].ToString(), DbType.String);
  203. strSql.Append(" AND t.IsCheckIn = @IsCheckIn ");
  204. }
  205. }
  206. if (!queryParam["IsSubsidize1"].IsEmpty())
  207. {
  208. if (queryParam["IsSubsidize1"].ToString() == "null")
  209. {
  210. strSql.Append(" AND t.IsSubsidize1 is null ");
  211. }
  212. else
  213. {
  214. dp.Add("IsSubsidize1", queryParam["IsSubsidize1"].ToString(), DbType.String);
  215. strSql.Append(" AND t.IsSubsidize1 = @IsSubsidize1 ");
  216. }
  217. }
  218. if (!queryParam["IsMilitary"].IsEmpty())
  219. {
  220. if (queryParam["IsMilitary"].ToString() == "null")
  221. {
  222. strSql.Append(" AND t.IsMilitary is null ");
  223. }
  224. else
  225. {
  226. dp.Add("IsMilitary", queryParam["IsMilitary"].ToString(), DbType.String);
  227. strSql.Append(" AND t.IsMilitary = @IsMilitary ");
  228. }
  229. }
  230. if (!queryParam["IsPay"].IsEmpty())
  231. {
  232. if (queryParam["IsPay"].ToString() == "null")
  233. {
  234. strSql.Append(" AND t.IsPay is null ");
  235. }
  236. else
  237. {
  238. dp.Add("IsPay", queryParam["IsPay"].ToString(), DbType.String);
  239. strSql.Append(" AND t.IsPay = @IsPay ");
  240. }
  241. }
  242. if (!queryParam["IsMug"].IsEmpty())
  243. {
  244. if (queryParam["IsMug"].ToString() == "null")
  245. {
  246. strSql.Append(" AND t.IsMug is null ");
  247. }
  248. else
  249. {
  250. dp.Add("IsMug", queryParam["IsMug"].ToString(), DbType.String);
  251. strSql.Append(" AND t.IsMug = @IsMug ");
  252. }
  253. }
  254. if (!queryParam["IsTakeCloths"].IsEmpty())
  255. {
  256. if (queryParam["IsTakeCloths"].ToString() == "null")
  257. {
  258. strSql.Append(" AND t.IsTakeCloths is null ");
  259. }
  260. else
  261. {
  262. dp.Add("IsTakeCloths", queryParam["IsTakeCloths"].ToString(), DbType.String);
  263. strSql.Append(" AND t.IsTakeCloths = @IsTakeCloths ");
  264. }
  265. }
  266. if (!queryParam["IsQuantity"].IsEmpty())
  267. {
  268. if (queryParam["IsQuantity"].ToString() == "null")
  269. {
  270. strSql.Append(" AND t.IsQuantity is null ");
  271. }
  272. else
  273. {
  274. dp.Add("IsQuantity", queryParam["IsQuantity"].ToString(), DbType.String);
  275. strSql.Append(" AND t.IsQuantity = @IsQuantity ");
  276. }
  277. }
  278. if (!queryParam["IsGetBeddingArticle"].IsEmpty())
  279. {
  280. if (queryParam["IsGetBeddingArticle"].ToString() == "null")
  281. {
  282. strSql.Append(" AND t.IsGetBeddingArticle is null ");
  283. }
  284. else
  285. {
  286. dp.Add("IsGetBeddingArticle", queryParam["IsGetBeddingArticle"].ToString(), DbType.String);
  287. strSql.Append(" AND t.IsGetBeddingArticle = @IsGetBeddingArticle ");
  288. }
  289. }
  290. //获取班主任所带的班级
  291. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "班主任")?.F_RoleId;
  292. var userInfo = LoginUserInfo.Get();
  293. var sqlClasses = "";
  294. if (!string.IsNullOrEmpty(roleid))
  295. {
  296. if (userInfo.roleIds.Contains(roleid))
  297. {
  298. var classes = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
  299. if (classes != null)
  300. {
  301. foreach (var item in classes)
  302. {
  303. sqlClasses += $"'{item}',";
  304. }
  305. sqlClasses = sqlClasses.TrimEnd(',');
  306. }
  307. }
  308. if (!string.IsNullOrEmpty(sqlClasses))
  309. {
  310. strSql.Append($" AND t.ClassNo IN({sqlClasses})");
  311. }
  312. }
  313. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(strSql.ToString(), dp, pagination);
  314. }
  315. catch (Exception ex)
  316. {
  317. if (ex is ExceptionEx)
  318. {
  319. throw;
  320. }
  321. else
  322. {
  323. throw ExceptionEx.ThrowServiceException(ex);
  324. }
  325. }
  326. }
  327. public IEnumerable<StuEnrollEntity> GetPageListForTJ(Pagination pagination, string queryJson)
  328. {
  329. try
  330. {
  331. var strSql = new StringBuilder();
  332. strSql.Append("SELECT ");
  333. strSql.Append(@" isnull(s.physicsAndChemistry,0) physicsAndChemistry,isnull(s.english,0) english,isnull(s.chinese,0) chinese,
  334. isnull(s.politicsAndHistory,0) politicsAndHistory,isnull(s.physicalEducation,0) physicalEducation,isnull(s.math,0) math,
  335. t.StuName,t.Gender,t.Nationals,t.IDCard,t.HomeAddress,t.StuMobile,
  336. t.MidTermExam,t.FromSchool,t.Specialty,t.City,t.County,t.MajorNo,t.EmpNo ");
  337. strSql.Append(" FROM StuEnroll t ");
  338. strSql.Append(@" left join (
  339. select a.StuEnrollId, max( case when a.subjectname = '物理与化学' then a.score else 0 end) as physicsAndChemistry,
  340. max(case when a.subjectname = '英语' then a.score else 0 end) as english,
  341. max( case when a.subjectname = '语文' then a.score else 0 end) as chinese,
  342. max(case when a.subjectname = '政治与历史' then a.score else 0 end) as politicsAndHistory,
  343. max(case when a.subjectname = '体育' then a.score else 0 end) as physicalEducation,
  344. max(case when a.subjectname = '数学' then a.score else 0 end) as math
  345. from StuEnrollMidExamScore a
  346. group by a.StuEnrollId
  347. ) s
  348. on t.stuid = s.StuEnrollId ");
  349. strSql.Append(" WHERE 1=1 ");
  350. var queryParam = queryJson.ToJObject();
  351. // 虚拟参数
  352. var dp = new DynamicParameters(new { });
  353. #region SqlWhere
  354. if (!queryParam["City"].IsEmpty())
  355. {
  356. dp.Add("City", queryParam["City"].ToString(), DbType.String);
  357. strSql.Append(" AND t.City = @City ");
  358. }
  359. if (!queryParam["County"].IsEmpty())
  360. {
  361. dp.Add("County", queryParam["County"].ToString(), DbType.String);
  362. strSql.Append(" AND t.County = @County ");
  363. }
  364. if (!queryParam["IDCard"].IsEmpty())
  365. {
  366. dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
  367. strSql.Append(" AND t.IDCard Like @IDCard ");
  368. }
  369. if (!queryParam["Year"].IsEmpty())
  370. {
  371. dp.Add("Year", queryParam["Year"].ToString(), DbType.String);
  372. strSql.Append(" AND t.Year = @Year ");
  373. }
  374. //sql条件
  375. if (!queryParam["SqlParameter"].IsEmpty())
  376. {
  377. strSql.Append(queryParam["SqlParameter"].ToString());
  378. }
  379. if (!queryParam["Admissions"].IsEmpty())
  380. {
  381. dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
  382. strSql.Append(" AND t.Admissions = @Admissions ");
  383. }
  384. if (!queryParam["DeptNo"].IsEmpty())
  385. {
  386. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  387. strSql.Append(" AND t.DeptNo = @DeptNo ");
  388. }
  389. if (!queryParam["MajorNo"].IsEmpty())
  390. {
  391. dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
  392. strSql.Append(" AND t.MajorNo = @MajorNo ");
  393. }
  394. if (!queryParam["EmpNo"].IsEmpty())
  395. {
  396. dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String);
  397. strSql.Append(" AND t.EmpNo = @EmpNo ");
  398. }
  399. if (!queryParam["Grade"].IsEmpty())
  400. {
  401. dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
  402. strSql.Append(" AND t.Grade = @Grade ");
  403. }
  404. if (!queryParam["ClassNo"].IsEmpty())
  405. {
  406. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  407. strSql.Append(" AND t.ClassNo = @ClassNo ");
  408. }
  409. if (!queryParam["StuName"].IsEmpty())
  410. {
  411. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  412. strSql.Append(" AND t.StuName Like @StuName ");
  413. }
  414. if (!queryParam["StuMobile"].IsEmpty())
  415. {
  416. dp.Add("StuMobile", "%" + queryParam["StuMobile"].ToString() + "%", DbType.String);
  417. strSql.Append(" AND t.StuMobile Like @StuMobile ");
  418. }
  419. if (!queryParam["Gender"].IsEmpty())
  420. {
  421. dp.Add("Gender", Convert.ToBoolean(queryParam["Gender"].ToString()), DbType.Boolean);
  422. strSql.Append(" AND t.Gender = @Gender ");
  423. }
  424. //获取班主任所带的班级
  425. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "班主任")?.F_RoleId;
  426. var userInfo = LoginUserInfo.Get();
  427. var sqlClasses = "";
  428. if (!string.IsNullOrEmpty(roleid))
  429. {
  430. if (userInfo.roleIds.Contains(roleid))
  431. {
  432. var classes = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
  433. if (classes != null)
  434. {
  435. foreach (var item in classes)
  436. {
  437. sqlClasses += $"'{item}',";
  438. }
  439. sqlClasses = sqlClasses.TrimEnd(',');
  440. }
  441. }
  442. if (!string.IsNullOrEmpty(sqlClasses))
  443. {
  444. strSql.Append($" AND t.ClassNo IN({sqlClasses})");
  445. }
  446. }
  447. #endregion
  448. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(strSql.ToString(), dp, pagination);
  449. }
  450. catch (Exception ex)
  451. {
  452. if (ex is ExceptionEx)
  453. {
  454. throw;
  455. }
  456. else
  457. {
  458. throw ExceptionEx.ThrowServiceException(ex);
  459. }
  460. }
  461. }
  462. public IEnumerable<StuEnrollEntity> AllStudent()
  463. {
  464. try
  465. {
  466. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>();
  467. }
  468. catch (Exception ex)
  469. {
  470. if (ex is ExceptionEx)
  471. {
  472. throw;
  473. }
  474. else
  475. {
  476. throw ExceptionEx.ThrowServiceException(ex);
  477. }
  478. }
  479. }
  480. public IEnumerable<Acc_DormitoryBuildEntity> GetDormitorys(Pagination pagination, string queryJson)
  481. {
  482. try
  483. {
  484. var strSql = new StringBuilder();
  485. strSql.Append("SELECT ");
  486. strSql.Append(@"
  487. t.ID,
  488. t.Name,
  489. t.Address,
  490. t.Campus,
  491. t.Dept,
  492. t.BuildType,
  493. t.Major,
  494. t.Class,
  495. t.Sex,
  496. t.Functionary,
  497. t.Phone,
  498. t.Price,
  499. t.Leader,
  500. t.StudentID,
  501. t.PlanStudentID,
  502. t.ParentID,
  503. t.Remark,
  504. t.Starred,
  505. t.PlanClassNo,
  506. t.HasToilet
  507. ");
  508. strSql.Append(" FROM Acc_DormitoryBuild t ");
  509. strSql.Append(" WHERE 1=1 ");
  510. var queryParam = queryJson.ToJObject();
  511. // 虚拟参数
  512. var dp = new DynamicParameters(new { });
  513. if (!queryParam["ParentID"].IsEmpty())
  514. {
  515. dp.Add("ParentID", queryParam["ParentID"].ToString(), DbType.String);
  516. strSql.Append(" AND t.ParentID =@ParentID ");
  517. }
  518. if (!queryParam["Sex"].IsEmpty())
  519. {
  520. dp.Add("Sex", queryParam["Sex"].ToString(), DbType.String);
  521. strSql.Append(" AND t.Sex = @Sex ");
  522. }
  523. if (!queryParam["IsAllocationDormitory"].IsEmpty())
  524. {
  525. if (queryParam["IsAllocationDormitory"].ToString() == "false")
  526. {
  527. strSql.Append(" AND t.PlanClassNo is not null or t.PlanClassNo<>'' ");
  528. }
  529. else
  530. {
  531. strSql.Append(" AND t.PlanClassNo is null or t.PlanClassNo=''");
  532. }
  533. }
  534. if (!queryParam["PlanClassNo"].IsEmpty())
  535. {
  536. dp.Add("PlanClassNo", queryParam["PlanClassNo"].ToString(), DbType.String);
  537. strSql.Append(" AND t.PlanClassNo =@PlanClassNo ");
  538. }
  539. var data = this.BaseRepository("CollegeMIS").FindList<Acc_DormitoryBuildEntity>(strSql.ToString(), dp, pagination).OrderBy(a => a.Name).ToList();
  540. foreach (var item in data)
  541. {
  542. item.ChildCount = this.BaseRepository("CollegeMIS").FindList<Acc_DormitoryBuildEntity>(a => a.ParentID == item.ID).Count();
  543. }
  544. return data;
  545. }
  546. catch (Exception ex)
  547. {
  548. if (ex is ExceptionEx)
  549. {
  550. throw;
  551. }
  552. else
  553. {
  554. throw ExceptionEx.ThrowServiceException(ex);
  555. }
  556. }
  557. }
  558. internal List<Tuple<int, int, string, string>> GetTree()
  559. {
  560. try
  561. {
  562. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(a => !string.IsNullOrEmpty(a.ClassNo)).ToList();
  563. var classInfos = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>().ToList();
  564. var classes = data.GroupBy(a => a.ClassNo).Select(a => a.Key).ToList();
  565. List<Tuple<int, int, string, string>> list = new List<Tuple<int, int, string, string>>();
  566. foreach (var classNo in classes)
  567. {
  568. var boy = data.Count(a => a.ClassNo == classNo && a.Gender == true);
  569. var girl = data.Count(a => a.ClassNo == classNo && a.Gender == false);
  570. var className = classInfos.FirstOrDefault(a => a.ClassNo == classNo)?.ClassName;
  571. Tuple<int, int, string, string> tuple = new Tuple<int, int, string, string>(boy, girl, classNo, className);
  572. list.Add(tuple);
  573. }
  574. return list;
  575. }
  576. catch (Exception ex)
  577. {
  578. if (ex is ExceptionEx)
  579. {
  580. throw;
  581. }
  582. else
  583. {
  584. throw ExceptionEx.ThrowServiceException(ex);
  585. }
  586. }
  587. }
  588. internal List<Acc_DormitoryBuildEntity> GetBedTree(string classNo, string gender)
  589. {
  590. try
  591. {
  592. var sex = "";
  593. if (gender == "true")
  594. {
  595. sex = "1";
  596. }
  597. else
  598. {
  599. sex = "0";
  600. }
  601. List<Acc_DormitoryBuildEntity> list = new List<Acc_DormitoryBuildEntity>();
  602. var data = this.BaseRepository("CollegeMIS").FindList<Acc_DormitoryBuildEntity>(a => a.PlanClassNo == classNo && a.Sex == sex).ToList();
  603. var bb = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  604. foreach (var item in data)
  605. {
  606. list.Add(item);
  607. var beds = this.BaseRepository("CollegeMIS").FindList<Acc_DormitoryBuildEntity>(a => a.ParentID == item.ID).ToList();
  608. foreach (var bed in beds)
  609. {
  610. var stuName = bb.FirstOrDefault(a => a.DormitoryNo == bed.ID)?.StuName;
  611. if (!string.IsNullOrEmpty(stuName))
  612. {
  613. bed.Name = $"{bed.Name}({stuName})";
  614. }
  615. list.Add(bed);
  616. }
  617. }
  618. return list;
  619. }
  620. catch (Exception ex)
  621. {
  622. if (ex is ExceptionEx)
  623. {
  624. throw;
  625. }
  626. else
  627. {
  628. throw ExceptionEx.ThrowServiceException(ex);
  629. }
  630. }
  631. }
  632. internal List<string> GetStuIdCards()
  633. {
  634. try
  635. {
  636. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().Select(a => a.IDCard).ToList();
  637. }
  638. catch (Exception ex)
  639. {
  640. if (ex is ExceptionEx)
  641. {
  642. throw;
  643. }
  644. else
  645. {
  646. throw ExceptionEx.ThrowServiceException(ex);
  647. }
  648. }
  649. }
  650. internal object GetStuInfo(string stuId)
  651. {
  652. try
  653. {
  654. var stuEnroll = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.StuId == stuId);
  655. var majorInfo = this.BaseRepository("CollegeMIS").FindEntity<CdMajorEntity>(a => a.MajorNo == stuEnroll.MajorNo);
  656. var deptNo = majorInfo?.DeptNo;
  657. var majorName = majorInfo?.MajorName;
  658. var deptName = this.BaseRepository("CollegeMIS").FindEntity<CdDeptEntity>(a => a.DeptNo == deptNo)?.DeptName;
  659. var classInfo = this.BaseRepository("CollegeMIS").FindEntity<ClassInfoEntity>(a => a.ClassNo == stuEnroll.ClassNo);
  660. var teacherInfo = new EmpInfoEntity();
  661. var yearAndSemester = Common.GetSemesterAndYear();
  662. var result = new List<StuPayInfo>();
  663. if (classInfo != null)
  664. {
  665. teacherInfo = this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(a => a.EmpNo == classInfo.ClassDiredctorNo);
  666. result = this.BaseRepository("CollegeMIS").FindList<FinaChargesStandardEntity>(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester)
  667. .Select(a => new StuPayInfo
  668. {
  669. standerid = a.ChargeItemID,
  670. shouldPay = a.Standard,
  671. standard = a.Standard,
  672. standerdName = this.BaseRepository("CollegeMIS").FindEntity<FinaChargeItemEntity>(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim()
  673. }).ToList();
  674. }
  675. foreach (var item in result)
  676. {
  677. //住宿费
  678. if (item.standerid == 12 && stuEnroll.IsCheckIn == false)
  679. {
  680. item.shouldPay = 0;
  681. }
  682. //学费
  683. if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true)
  684. {
  685. item.shouldPay = 0;
  686. }
  687. switch (item.standerid)
  688. {
  689. case 12:
  690. if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
  691. break;
  692. case 14:
  693. if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0;
  694. break;
  695. case 15:
  696. if (stuEnroll.IsMilitary == false) item.shouldPay = 0;
  697. break;
  698. case 32:
  699. if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
  700. break;
  701. case 33:
  702. if (stuEnroll.EnrollType == "0") item.shouldPay = 0;
  703. break;
  704. default:
  705. break;
  706. }
  707. }
  708. decimal money = 0;
  709. decimal allMoney = 0;
  710. //记录缴费金额
  711. foreach (var item in result)
  712. {
  713. money += Convert.ToDecimal(item.shouldPay);
  714. allMoney += Convert.ToDecimal(item.standard);
  715. }
  716. stuEnroll.PayAmount = money;
  717. this.BaseRepository("CollegeMIS").Update(stuEnroll);
  718. return new
  719. {
  720. deptName,
  721. majorName,
  722. className = classInfo?.ClassName,
  723. teacherName = teacherInfo?.EmpName,
  724. teacherMobile = teacherInfo?.mobile,
  725. chagerItemList = result,
  726. money,
  727. allMoney
  728. };
  729. }
  730. catch (Exception ex)
  731. {
  732. if (ex is ExceptionEx)
  733. {
  734. throw;
  735. }
  736. else
  737. {
  738. throw ExceptionEx.ThrowServiceException(ex);
  739. }
  740. }
  741. }
  742. public class StuPayInfo
  743. {
  744. public int standerid { get; set; }
  745. public decimal? shouldPay { get; set; }
  746. public decimal? standard { get; set; }
  747. public string standerdName { get; set; }
  748. }
  749. internal object GetCheckInStatistics(string DeptNo, string MajorNo, string ClassNo)
  750. {
  751. try
  752. {
  753. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>()
  754. .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
  755. .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
  756. .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
  757. ;
  758. var aa = data.Count(a => a.IsCheckIn == true);
  759. var bb = data.Count(a => a.IsCheckIn == false);
  760. return new { aa, bb };
  761. }
  762. catch (Exception ex)
  763. {
  764. if (ex is ExceptionEx)
  765. {
  766. throw;
  767. }
  768. else
  769. {
  770. throw ExceptionEx.ThrowServiceException(ex);
  771. }
  772. }
  773. }
  774. internal object GetHelpStatistics(string DeptNo, string MajorNo, string ClassNo)
  775. {
  776. try
  777. {
  778. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>()
  779. .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
  780. .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
  781. .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
  782. ;
  783. var aa = data.Count(a => a.IsSubsidize1 == true);
  784. var bb = data.Count(a => a.IsSubsidize1 == false);
  785. return new { aa, bb };
  786. }
  787. catch (Exception ex)
  788. {
  789. if (ex is ExceptionEx)
  790. {
  791. throw;
  792. }
  793. else
  794. {
  795. throw ExceptionEx.ThrowServiceException(ex);
  796. }
  797. }
  798. }
  799. internal object GetMilitaryStatistics(string DeptNo, string MajorNo, string ClassNo)
  800. {
  801. try
  802. {
  803. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>()
  804. .Where(a => string.IsNullOrEmpty(DeptNo) || a.DeptNo == DeptNo)
  805. .Where(a => string.IsNullOrEmpty(MajorNo) || a.MajorNo == MajorNo)
  806. .Where(a => string.IsNullOrEmpty(ClassNo) || a.ClassNo == ClassNo)
  807. ;
  808. var aa = data.Count(a => a.IsMilitary == true);
  809. var bb = data.Count(a => a.IsMilitary == false);
  810. return new { aa, bb };
  811. }
  812. catch (Exception ex)
  813. {
  814. if (ex is ExceptionEx)
  815. {
  816. throw;
  817. }
  818. else
  819. {
  820. throw ExceptionEx.ThrowServiceException(ex);
  821. }
  822. }
  823. }
  824. /// <summary>
  825. /// 获取页面显示列表数据
  826. /// <summary>
  827. /// <param name="queryJson">查询参数</param>
  828. /// <returns></returns>
  829. public IEnumerable<StuEnrollEntity> GetReportPageList(Pagination pagination, string queryJson)
  830. {
  831. try
  832. {
  833. var strSql = new StringBuilder();
  834. strSql.Append("SELECT ");
  835. strSql.Append(@"
  836. t.StuId,
  837. t.RegistrationNo,
  838. t.StuName,
  839. t.Gender,
  840. t.Nationals,
  841. t.Birthday,
  842. t.IDCard,
  843. t.Political,
  844. t.FreshType,
  845. t.ResidenceType,
  846. t.StuType,
  847. t.ResidenceAddress,
  848. t.NonNative,
  849. t.FromSchool,
  850. t.HomeAddress,
  851. t.FirstGuardian,
  852. t.FirstRelationship,
  853. t.FirstUnits,
  854. t.FirstMobile,
  855. t.SecondGuardian,
  856. t.SecondRelationship,
  857. t.SecondUnits,
  858. t.SecondMobile,
  859. t.Acceptance,
  860. t.Recipient,
  861. t.ZipCode,
  862. t.MedicalHistory,
  863. t.AdditionalCare,
  864. t.MajorNo,
  865. t.MajorName,
  866. t.Admissions,
  867. t.IsAccommodation,
  868. t.ExamRegistration,
  869. t.ClassNo,
  870. t.DormitoryNo,
  871. t.DormitoryName,
  872. t.EnrollType,
  873. t.IsCheckIn,
  874. t.IsSubsidize1,
  875. t.IsMilitary,
  876. t.Grade,
  877. t.IsQuantity,
  878. t.IsTakeCloths,
  879. t.IsMug,
  880. t.IsGetBeddingArticle,
  881. t.IsReport,
  882. t.EductionalSystme,
  883. t.AddTime,
  884. t.StuNo,
  885. t.StuStatusNo,
  886. t.SecurityAgreement,
  887. t.Status
  888. ");
  889. strSql.Append(" FROM StuEnroll t ");
  890. strSql.Append(" WHERE 1=1 ");
  891. var queryParam = queryJson.ToJObject();
  892. // 虚拟参数
  893. var dp = new DynamicParameters(new { });
  894. if (!queryParam["IsReport"].IsEmpty())
  895. {
  896. if (queryParam["IsReport"].ToString() == "null")
  897. {
  898. strSql.Append(" AND t.IsReport is null ");
  899. }
  900. else
  901. {
  902. dp.Add("IsReport", queryParam["IsReport"].ToString(), DbType.String);
  903. strSql.Append(" AND t.IsReport = @IsReport ");
  904. }
  905. }
  906. if (!queryParam["IDCard"].IsEmpty())
  907. {
  908. dp.Add("IDCard", "%" + queryParam["IDCard"].ToString() + "%", DbType.String);
  909. strSql.Append(" AND t.IDCard Like @IDCard ");
  910. }
  911. if (!queryParam["DeptNo"].IsEmpty())
  912. {
  913. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  914. strSql.Append(" AND t.DeptNo = @DeptNo ");
  915. }
  916. if (!queryParam["Admissions"].IsEmpty())
  917. {
  918. dp.Add("Admissions", queryParam["Admissions"].ToString(), DbType.String);
  919. strSql.Append(" AND t.Admissions = @Admissions ");
  920. }
  921. if (!queryParam["Grade"].IsEmpty())
  922. {
  923. dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
  924. strSql.Append(" AND t.Grade = @Grade ");
  925. }
  926. if (!queryParam["MajorNo"].IsEmpty())
  927. {
  928. dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
  929. strSql.Append(" AND t.MajorNo = @MajorNo ");
  930. }
  931. if (!queryParam["ClassNo"].IsEmpty())
  932. {
  933. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  934. strSql.Append(" AND t.ClassNo = @ClassNo ");
  935. }
  936. if (!queryParam["RegistrationNo"].IsEmpty())
  937. {
  938. dp.Add("RegistrationNo", "%" + queryParam["RegistrationNo"].ToString() + "%", DbType.String);
  939. strSql.Append(" AND t.RegistrationNo Like @RegistrationNo ");
  940. }
  941. if (!queryParam["StuName"].IsEmpty())
  942. {
  943. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  944. strSql.Append(" AND t.StuName Like @StuName ");
  945. }
  946. //获取班主任所带的班级
  947. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "班主任").F_RoleId;
  948. var userInfo = LoginUserInfo.Get();
  949. var sqlClasses = "";
  950. if (userInfo.roleIds.Contains(roleid))
  951. {
  952. var classes = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo).ToList();
  953. if (classes != null)
  954. {
  955. foreach (var item in classes)
  956. {
  957. sqlClasses += $"'{item}',";
  958. }
  959. sqlClasses = sqlClasses.TrimEnd(',');
  960. }
  961. }
  962. if (!string.IsNullOrEmpty(sqlClasses))
  963. {
  964. strSql.Append($" AND t.ClassNo IN({sqlClasses})");
  965. }
  966. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(strSql.ToString(), dp, pagination);
  967. }
  968. catch (Exception ex)
  969. {
  970. if (ex is ExceptionEx)
  971. {
  972. throw;
  973. }
  974. else
  975. {
  976. throw ExceptionEx.ThrowServiceException(ex);
  977. }
  978. }
  979. }
  980. internal (bool, string) Stay(string stuId, bool status, bool payAfter)
  981. {
  982. try
  983. {
  984. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "学生科科长")?.F_RoleId;
  985. var loginUser = LoginUserInfo.Get();
  986. var resultbool = false;
  987. var result = "";
  988. if (!string.IsNullOrEmpty(stuId))
  989. {
  990. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  991. if (data.Any())
  992. {
  993. foreach (var item in data)
  994. {
  995. if (payAfter)
  996. {
  997. //if (loginUser.roleIds.Contains(roleid))
  998. //{
  999. item.IsCheckIn2 = status;
  1000. this.BaseRepository("CollegeMIS").Update(item);
  1001. //}
  1002. }
  1003. else
  1004. {
  1005. item.IsCheckIn = status;
  1006. item.IsCheckIn2 = status;
  1007. item.Status = 2;
  1008. if (!status)
  1009. {
  1010. item.IsGetBeddingArticle = false;
  1011. }
  1012. this.BaseRepository("CollegeMIS").Update(item);
  1013. }
  1014. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1015. amountRecordEntity.Create();
  1016. if (status)
  1017. {
  1018. amountRecordEntity.Content = "确认入住";
  1019. }
  1020. else
  1021. {
  1022. amountRecordEntity.Content = "取消入住";
  1023. }
  1024. amountRecordEntity.StuID = item.StuId;
  1025. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1026. }
  1027. resultbool = true;
  1028. result = "操作成功";
  1029. }
  1030. }
  1031. else
  1032. {
  1033. result = "错误";
  1034. }
  1035. return (resultbool, result);
  1036. }
  1037. catch (Exception ex)
  1038. {
  1039. if (ex is ExceptionEx)
  1040. {
  1041. throw;
  1042. }
  1043. else
  1044. {
  1045. throw ExceptionEx.ThrowServiceException(ex);
  1046. }
  1047. }
  1048. }
  1049. internal void AllStay()
  1050. {
  1051. try
  1052. {
  1053. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(a => a.IsPay != true && a.IsReport == true).ToList();
  1054. foreach (var item in list)
  1055. {
  1056. item.IsCheckIn = true;
  1057. item.IsCheckIn2 = true;
  1058. item.Status = 2;
  1059. this.BaseRepository("CollegeMIS").Update(item);
  1060. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1061. amountRecordEntity.Create();
  1062. amountRecordEntity.Content = "确认入住";
  1063. amountRecordEntity.StuID = item.StuId;
  1064. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1065. }
  1066. }
  1067. catch (Exception ex)
  1068. {
  1069. if (ex is ExceptionEx)
  1070. {
  1071. throw;
  1072. }
  1073. else
  1074. {
  1075. throw ExceptionEx.ThrowServiceException(ex);
  1076. }
  1077. }
  1078. }
  1079. internal (bool, string) Help(string stuId, bool status, bool payAfter)
  1080. {
  1081. try
  1082. {
  1083. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "学生科科长")?.F_RoleId;
  1084. var loginUser = LoginUserInfo.Get();
  1085. var resultbool = false;
  1086. var result = "";
  1087. if (!string.IsNullOrEmpty(stuId))
  1088. {
  1089. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1090. if (data.Any())
  1091. {
  1092. foreach (var item in data)
  1093. {
  1094. if (payAfter)
  1095. {
  1096. //if (loginUser.roleIds.Contains(roleid))
  1097. //{
  1098. item.IsSubsidize12 = status;
  1099. this.BaseRepository("CollegeMis").Update(item);
  1100. //}
  1101. }
  1102. else
  1103. {
  1104. item.IsSubsidize1 = status;
  1105. item.IsSubsidize12 = status;
  1106. item.Status = 3;
  1107. this.BaseRepository("CollegeMis").Update(item);
  1108. }
  1109. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1110. amountRecordEntity.Create();
  1111. if (status)
  1112. {
  1113. amountRecordEntity.Content = "确认资助";
  1114. }
  1115. else
  1116. {
  1117. amountRecordEntity.Content = "取消资助";
  1118. }
  1119. amountRecordEntity.StuID = item.StuId;
  1120. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1121. }
  1122. resultbool = true;
  1123. result = "操作成功";
  1124. }
  1125. }
  1126. else
  1127. {
  1128. result = "错误";
  1129. }
  1130. return (resultbool, result);
  1131. }
  1132. catch (Exception ex)
  1133. {
  1134. if (ex is ExceptionEx)
  1135. {
  1136. throw;
  1137. }
  1138. else
  1139. {
  1140. throw ExceptionEx.ThrowServiceException(ex);
  1141. }
  1142. }
  1143. }
  1144. internal void AllHelp()
  1145. {
  1146. try
  1147. {
  1148. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(a => a.IsPay != true && a.IsReport == true).ToList();
  1149. foreach (var item in list)
  1150. {
  1151. item.IsSubsidize1 = true;
  1152. item.Status = 3;
  1153. this.BaseRepository("CollegeMIS").Update(item);
  1154. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1155. amountRecordEntity.Create();
  1156. amountRecordEntity.Content = "确认资助";
  1157. amountRecordEntity.StuID = item.StuId;
  1158. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1159. }
  1160. }
  1161. catch (Exception ex)
  1162. {
  1163. if (ex is ExceptionEx)
  1164. {
  1165. throw;
  1166. }
  1167. else
  1168. {
  1169. throw ExceptionEx.ThrowServiceException(ex);
  1170. }
  1171. }
  1172. }
  1173. internal (bool, string) Military(string stuId, bool status, bool payAfter)
  1174. {
  1175. try
  1176. {
  1177. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "学生科科长")?.F_RoleId;
  1178. var loginUser = LoginUserInfo.Get();
  1179. var resultbool = false;
  1180. var result = "";
  1181. if (!string.IsNullOrEmpty(stuId))
  1182. {
  1183. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1184. if (data.Any())
  1185. {
  1186. foreach (var item in data)
  1187. {
  1188. if (payAfter)
  1189. {
  1190. //if (loginUser.roleIds.Contains(roleid))
  1191. //{
  1192. item.IsMilitary2 = status;
  1193. this.BaseRepository("CollegeMis").Update(item);
  1194. //}
  1195. }
  1196. else
  1197. {
  1198. item.IsMilitary = status;
  1199. item.IsMilitary2 = status;
  1200. item.Status = 4;
  1201. if (!status)
  1202. {
  1203. item.IsTakeCloths = false;
  1204. }
  1205. this.BaseRepository("CollegeMis").Update(item);
  1206. }
  1207. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1208. amountRecordEntity.Create();
  1209. if (status)
  1210. {
  1211. amountRecordEntity.Content = "确认军训";
  1212. }
  1213. else
  1214. {
  1215. amountRecordEntity.Content = "取消军训";
  1216. }
  1217. amountRecordEntity.StuID = item.StuId;
  1218. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1219. }
  1220. resultbool = true;
  1221. result = "操作成功";
  1222. }
  1223. }
  1224. else
  1225. {
  1226. result = "错误";
  1227. }
  1228. return (resultbool, result);
  1229. }
  1230. catch (Exception ex)
  1231. {
  1232. if (ex is ExceptionEx)
  1233. {
  1234. throw;
  1235. }
  1236. else
  1237. {
  1238. throw ExceptionEx.ThrowServiceException(ex);
  1239. }
  1240. }
  1241. }
  1242. internal void AllReport()
  1243. {
  1244. try
  1245. {
  1246. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1247. foreach (var item in list)
  1248. {
  1249. item.IsReport = true;
  1250. item.SecurityAgreement = true;
  1251. item.Status = 1;
  1252. this.BaseRepository("CollegeMIS").Update(item);
  1253. }
  1254. }
  1255. catch (Exception ex)
  1256. {
  1257. if (ex is ExceptionEx)
  1258. {
  1259. throw;
  1260. }
  1261. else
  1262. {
  1263. throw ExceptionEx.ThrowServiceException(ex);
  1264. }
  1265. }
  1266. }
  1267. internal void AllPhoto()
  1268. {
  1269. try
  1270. {
  1271. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1272. foreach (var item in list)
  1273. {
  1274. item.IsMug = true;
  1275. item.Status = 6;
  1276. this.BaseRepository("CollegeMIS").Update(item);
  1277. }
  1278. }
  1279. catch (Exception ex)
  1280. {
  1281. if (ex is ExceptionEx)
  1282. {
  1283. throw;
  1284. }
  1285. else
  1286. {
  1287. throw ExceptionEx.ThrowServiceException(ex);
  1288. }
  1289. }
  1290. }
  1291. internal void AllGetCloth()
  1292. {
  1293. try
  1294. {
  1295. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1296. foreach (var item in list)
  1297. {
  1298. item.IsTakeCloths = true;
  1299. item.Status = 7;
  1300. this.BaseRepository("CollegeMIS").Update(item);
  1301. }
  1302. }
  1303. catch (Exception ex)
  1304. {
  1305. if (ex is ExceptionEx)
  1306. {
  1307. throw;
  1308. }
  1309. else
  1310. {
  1311. throw ExceptionEx.ThrowServiceException(ex);
  1312. }
  1313. }
  1314. }
  1315. internal void AllGetSize()
  1316. {
  1317. try
  1318. {
  1319. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1320. foreach (var item in list)
  1321. {
  1322. item.IsQuantity = true;
  1323. item.Status = 8;
  1324. this.BaseRepository("CollegeMIS").Update(item);
  1325. }
  1326. }
  1327. catch (Exception ex)
  1328. {
  1329. if (ex is ExceptionEx)
  1330. {
  1331. throw;
  1332. }
  1333. else
  1334. {
  1335. throw ExceptionEx.ThrowServiceException(ex);
  1336. }
  1337. }
  1338. }
  1339. internal void AllGetArticle()
  1340. {
  1341. try
  1342. {
  1343. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1344. foreach (var item in list)
  1345. {
  1346. item.IsGetBeddingArticle = true;
  1347. item.Status = 9;
  1348. this.BaseRepository("CollegeMIS").Update(item);
  1349. }
  1350. }
  1351. catch (Exception ex)
  1352. {
  1353. if (ex is ExceptionEx)
  1354. {
  1355. throw;
  1356. }
  1357. else
  1358. {
  1359. throw ExceptionEx.ThrowServiceException(ex);
  1360. }
  1361. }
  1362. }
  1363. internal void AllMilitary()
  1364. {
  1365. try
  1366. {
  1367. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(a => a.IsPay != true && a.IsReport == true).ToList();
  1368. foreach (var item in list)
  1369. {
  1370. item.IsMilitary = true;
  1371. item.Status = 4;
  1372. this.BaseRepository("CollegeMIS").Update(item);
  1373. StuEnrollAmountRecordEntity amountRecordEntity = new StuEnrollAmountRecordEntity();
  1374. amountRecordEntity.Create();
  1375. amountRecordEntity.Content = "确认军训";
  1376. amountRecordEntity.StuID = item.StuId;
  1377. this.BaseRepository("CollegeMIS").Insert(amountRecordEntity);
  1378. }
  1379. }
  1380. catch (Exception ex)
  1381. {
  1382. if (ex is ExceptionEx)
  1383. {
  1384. throw;
  1385. }
  1386. else
  1387. {
  1388. throw ExceptionEx.ThrowServiceException(ex);
  1389. }
  1390. }
  1391. }
  1392. internal (bool, string) IsPay(string stuId, bool status)
  1393. {
  1394. try
  1395. {
  1396. var resultbool = false;
  1397. var result = "";
  1398. if (!string.IsNullOrEmpty(stuId))
  1399. {
  1400. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1401. if (data.Any())
  1402. {
  1403. foreach (var item in data)
  1404. {
  1405. item.IsPay = status;
  1406. item.Status = 5;
  1407. this.BaseRepository("CollegeMis").Update(item);
  1408. }
  1409. resultbool = true;
  1410. result = "操作成功";
  1411. }
  1412. }
  1413. else
  1414. {
  1415. result = "错误";
  1416. }
  1417. return (resultbool, result);
  1418. }
  1419. catch (Exception ex)
  1420. {
  1421. if (ex is ExceptionEx)
  1422. {
  1423. throw;
  1424. }
  1425. else
  1426. {
  1427. throw ExceptionEx.ThrowServiceException(ex);
  1428. }
  1429. }
  1430. }
  1431. /// <summary>
  1432. /// 缴费金额统计
  1433. /// </summary>
  1434. /// <returns></returns>
  1435. internal object GetPaymentInfo()
  1436. {
  1437. try
  1438. {
  1439. var model = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1440. var listAllamount = model.Where(a => a.PayAmount != null && a.IsCheckIn != null && a.IsSubsidize1 != null).Select(a => a.PayAmount);
  1441. decimal allamount = 0;
  1442. foreach (var item in listAllamount)
  1443. {
  1444. if (item != null)
  1445. {
  1446. allamount += Convert.ToDecimal(item);
  1447. }
  1448. }
  1449. var listIsamount = model.Where(a => a.IsPay == true).Select(a => a.PayAmount);
  1450. decimal isamount = 0;
  1451. foreach (var item in listIsamount)
  1452. {
  1453. if (item != null)
  1454. {
  1455. isamount += Convert.ToDecimal(item);
  1456. }
  1457. }
  1458. return new
  1459. {
  1460. a = allamount,
  1461. b = isamount
  1462. };
  1463. }
  1464. catch (Exception ex)
  1465. {
  1466. if (ex is ExceptionEx)
  1467. {
  1468. throw;
  1469. }
  1470. else
  1471. {
  1472. throw ExceptionEx.ThrowServiceException(ex);
  1473. }
  1474. }
  1475. }
  1476. internal object GetStuDefaultInfo(string StuId)
  1477. {
  1478. try
  1479. {
  1480. var model = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.StuId == StuId);
  1481. var imgUrl = "";
  1482. if (model?.Photo != null)
  1483. {
  1484. imgUrl = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_Id == model.Photo)?.F_FilePath;
  1485. if (!string.IsNullOrEmpty(imgUrl))
  1486. {
  1487. imgUrl = "/" + imgUrl.Substring(imgUrl.IndexOf("Resource"));
  1488. }
  1489. }
  1490. return new
  1491. {
  1492. stuName = model.StuName + (model.IsCheckIn == false ? "(走)" : ""),
  1493. className = this.BaseRepository("CollegeMIS")
  1494. .FindEntity<ClassInfoEntity>(a => a.ClassNo == model.ClassNo)?.ClassName,
  1495. imgUrl
  1496. };
  1497. }
  1498. catch (Exception ex)
  1499. {
  1500. if (ex is ExceptionEx)
  1501. {
  1502. throw;
  1503. }
  1504. else
  1505. {
  1506. throw ExceptionEx.ThrowServiceException(ex);
  1507. }
  1508. }
  1509. }
  1510. internal (bool, string) IsPhoto(string stuId, bool status, string fileGuid)
  1511. {
  1512. try
  1513. {
  1514. string result = "";
  1515. bool resultBool = false;
  1516. var model = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.StuId == stuId);
  1517. if (model != null)
  1518. {
  1519. model.Photo = fileGuid;
  1520. model.IsMug = status;
  1521. model.Status = 6;//确认拍照
  1522. resultBool = true;
  1523. result = "操作成功!";
  1524. this.BaseRepository("CollegeMIS").Update(model);
  1525. }
  1526. else
  1527. {
  1528. result = "错误";
  1529. }
  1530. return (resultBool, result);
  1531. }
  1532. catch (Exception ex)
  1533. {
  1534. if (ex is ExceptionEx)
  1535. {
  1536. throw;
  1537. }
  1538. else
  1539. {
  1540. throw ExceptionEx.ThrowServiceException(ex);
  1541. }
  1542. }
  1543. }
  1544. internal (bool, string) GetCloth(string stuId, bool status)
  1545. {
  1546. try
  1547. {
  1548. bool resultBool = false;
  1549. var result = "";
  1550. if (!string.IsNullOrEmpty(stuId))
  1551. {
  1552. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1553. if (data.Any())
  1554. {
  1555. foreach (var item in data)
  1556. {
  1557. item.IsTakeCloths = status;
  1558. item.Status = 7;
  1559. this.BaseRepository("CollegeMis").Update(item);
  1560. }
  1561. resultBool = true;
  1562. result = "操作成功";
  1563. }
  1564. }
  1565. else
  1566. {
  1567. result = "错误";
  1568. }
  1569. return (resultBool, result);
  1570. }
  1571. catch (Exception ex)
  1572. {
  1573. if (ex is ExceptionEx)
  1574. {
  1575. throw;
  1576. }
  1577. else
  1578. {
  1579. throw ExceptionEx.ThrowServiceException(ex);
  1580. }
  1581. }
  1582. }
  1583. internal (bool, string) GetClothSize(string stuId, bool status)
  1584. {
  1585. try
  1586. {
  1587. bool resultBool = false;
  1588. var result = "";
  1589. if (!string.IsNullOrEmpty(stuId))
  1590. {
  1591. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1592. if (data.Any())
  1593. {
  1594. foreach (var item in data)
  1595. {
  1596. item.IsQuantity = status;
  1597. item.Status = 8;
  1598. this.BaseRepository("CollegeMis").Update(item);
  1599. }
  1600. resultBool = true;
  1601. result = "操作成功";
  1602. }
  1603. }
  1604. else
  1605. {
  1606. result = "错误";
  1607. }
  1608. return (resultBool, result);
  1609. }
  1610. catch (Exception ex)
  1611. {
  1612. if (ex is ExceptionEx)
  1613. {
  1614. throw;
  1615. }
  1616. else
  1617. {
  1618. throw ExceptionEx.ThrowServiceException(ex);
  1619. }
  1620. }
  1621. }
  1622. internal (bool, string) GetArticles(string stuId, bool status)
  1623. {
  1624. try
  1625. {
  1626. bool resultBool = false;
  1627. var result = "";
  1628. if (!string.IsNullOrEmpty(stuId))
  1629. {
  1630. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  1631. if (data.Any())
  1632. {
  1633. foreach (var item in data)
  1634. {
  1635. item.IsGetBeddingArticle = status;
  1636. item.Status = 9;
  1637. this.BaseRepository("CollegeMis").Update(item);
  1638. }
  1639. resultBool = true;
  1640. result = "操作成功";
  1641. }
  1642. }
  1643. else
  1644. {
  1645. result = "错误";
  1646. }
  1647. return (resultBool, result);
  1648. }
  1649. catch (Exception ex)
  1650. {
  1651. if (ex is ExceptionEx)
  1652. {
  1653. throw;
  1654. }
  1655. else
  1656. {
  1657. throw ExceptionEx.ThrowServiceException(ex);
  1658. }
  1659. }
  1660. }
  1661. /// <summary>
  1662. /// 生成缴费金额
  1663. /// </summary>
  1664. internal void GetMoney()
  1665. {
  1666. try
  1667. {
  1668. var stuList = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1669. foreach (var stuEnroll in stuList)
  1670. {
  1671. var classInfo = this.BaseRepository("CollegeMIS").FindEntity<ClassInfoEntity>(a => a.ClassNo == stuEnroll.ClassNo);
  1672. var yearAndSemester = Common.GetSemesterAndYear();
  1673. var result = new List<StuPayInfo>();
  1674. if (classInfo != null)
  1675. {
  1676. result = this.BaseRepository("CollegeMIS").FindList<FinaChargesStandardEntity>(a => a.Grade == classInfo.Grade && a.MajorNo == stuEnroll.MajorNo && a.AcademicYearNo == yearAndSemester.AcademicYearShort && a.Semester == yearAndSemester.Semester)
  1677. .Select(a => new StuPayInfo
  1678. {
  1679. standerid = a.ChargeItemID,
  1680. shouldPay = a.Standard,
  1681. standard = a.Standard,
  1682. standerdName = this.BaseRepository("CollegeMIS").FindEntity<FinaChargeItemEntity>(b => b.ChargeItemID == a.ChargeItemID).ChargeItemName.Trim()
  1683. }).ToList();
  1684. }
  1685. foreach (var item in result)
  1686. {
  1687. //住宿费
  1688. if (item.standerid == 12 && stuEnroll.IsCheckIn == false)
  1689. {
  1690. item.shouldPay = 0;
  1691. }
  1692. //学费
  1693. if (item.standerid == 14 && stuEnroll.IsSubsidize1 == true)
  1694. {
  1695. item.shouldPay = 0;
  1696. }
  1697. switch (item.standerid)
  1698. {
  1699. case 12:
  1700. if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
  1701. break;
  1702. case 14:
  1703. if (stuEnroll.IsSubsidize1 == true) item.shouldPay = 0;
  1704. break;
  1705. case 15:
  1706. if (stuEnroll.IsMilitary == false) item.shouldPay = 0;
  1707. break;
  1708. case 32:
  1709. if (stuEnroll.IsCheckIn == false) item.shouldPay = 0;
  1710. break;
  1711. case 33:
  1712. if (stuEnroll.EnrollType == "0") item.shouldPay = 0;
  1713. break;
  1714. default:
  1715. break;
  1716. }
  1717. }
  1718. decimal money = 0;
  1719. //记录缴费金额
  1720. foreach (var item in result)
  1721. {
  1722. money += Convert.ToDecimal(item.shouldPay);
  1723. }
  1724. stuEnroll.PayAmount = money;
  1725. this.BaseRepository("CollegeMIS").Update(stuEnroll);
  1726. }
  1727. }
  1728. catch (Exception ex)
  1729. {
  1730. if (ex is ExceptionEx)
  1731. {
  1732. throw;
  1733. }
  1734. else
  1735. {
  1736. throw ExceptionEx.ThrowServiceException(ex);
  1737. }
  1738. }
  1739. }
  1740. internal void AllocationDormitory(string dormitoryNo, string stuId, string dormitoryName)
  1741. {
  1742. try
  1743. {
  1744. var oldstuEnroll = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.DormitoryNo == dormitoryNo);
  1745. if (oldstuEnroll != null)
  1746. {
  1747. oldstuEnroll.DormitoryNo = "";
  1748. oldstuEnroll.DormitoryName = "";
  1749. this.BaseRepository("CollegeMIS").Update(oldstuEnroll);
  1750. }
  1751. var olddormitory = this.BaseRepository("CollegeMIS").FindEntity<Acc_DormitoryBuildEntity>(a => a.PlanStudentID == stuId);
  1752. if (olddormitory != null)
  1753. {
  1754. olddormitory.PlanStudentID = "";
  1755. this.BaseRepository("CollegeMIS").Update(olddormitory);
  1756. }
  1757. var dormitory = this.BaseRepository("CollegeMIS").FindEntity<Acc_DormitoryBuildEntity>(a => a.ID == dormitoryNo);
  1758. dormitory.PlanStudentID = stuId;
  1759. this.BaseRepository("CollegeMIS").Update(dormitory);
  1760. var stuEroll = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.StuId == stuId);
  1761. stuEroll.DormitoryNo = dormitoryNo;
  1762. stuEroll.DormitoryName = dormitoryName;
  1763. this.BaseRepository("CollegeMIS").Update(stuEroll);
  1764. }
  1765. catch (Exception ex)
  1766. {
  1767. if (ex is ExceptionEx)
  1768. {
  1769. throw;
  1770. }
  1771. else
  1772. {
  1773. throw ExceptionEx.ThrowServiceException(ex);
  1774. }
  1775. }
  1776. }
  1777. internal void AllocationClass(string classNo, string dataJson)
  1778. {
  1779. try
  1780. {
  1781. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(dataJson);
  1782. if (data.Any())
  1783. {
  1784. foreach (var item in data)
  1785. {
  1786. item.ClassNo = classNo;
  1787. this.BaseRepository("CollegeMis").Update(item);
  1788. }
  1789. }
  1790. }
  1791. catch (Exception ex)
  1792. {
  1793. if (ex is ExceptionEx)
  1794. {
  1795. throw;
  1796. }
  1797. else
  1798. {
  1799. throw ExceptionEx.ThrowServiceException(ex);
  1800. }
  1801. }
  1802. }
  1803. /// <summary>
  1804. /// 关联照片
  1805. /// </summary>
  1806. internal void RelationPhoto()
  1807. {
  1808. try
  1809. {
  1810. var stuList = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  1811. foreach (var stuEnrollEntity in stuList)
  1812. {
  1813. if (string.IsNullOrEmpty(stuEnrollEntity.Photo))
  1814. {
  1815. stuEnrollEntity.Photo = Guid.NewGuid().ToString();
  1816. AnnexesFileEntity entity = new AnnexesFileEntity
  1817. {
  1818. F_Id = stuEnrollEntity.Photo,
  1819. F_FolderId = stuEnrollEntity.Photo,
  1820. F_FileName = stuEnrollEntity.Photo + ".jpg",
  1821. F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg",
  1822. F_FileExtensions = ".jpg",
  1823. F_FileType = "jpg",
  1824. };
  1825. entity.Create();
  1826. this.BaseRepository("CollegeMIS").Update(stuEnrollEntity);
  1827. this.BaseRepository().Insert(entity);
  1828. }
  1829. else
  1830. {
  1831. var annexes = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == stuEnrollEntity.Photo);
  1832. if (annexes != null)
  1833. {
  1834. if (!string.IsNullOrEmpty(stuEnrollEntity.IDCard))
  1835. {
  1836. annexes.F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg";
  1837. this.BaseRepository().Update(annexes);
  1838. }
  1839. }
  1840. else
  1841. {
  1842. AnnexesFileEntity entity = new AnnexesFileEntity
  1843. {
  1844. F_Id = stuEnrollEntity.Photo,
  1845. F_FolderId = stuEnrollEntity.Photo,
  1846. F_FileName = stuEnrollEntity.Photo + ".jpg",
  1847. F_FilePath = $"D:/智慧校园系统/Publish1/Resource/StudentPhotos/{stuEnrollEntity.IDCard}.jpg",
  1848. F_FileExtensions = ".jpg",
  1849. F_FileType = "jpg",
  1850. };
  1851. entity.Create();
  1852. this.BaseRepository().Insert(entity);
  1853. }
  1854. }
  1855. }
  1856. }
  1857. catch (Exception ex)
  1858. {
  1859. if (ex is ExceptionEx)
  1860. {
  1861. throw;
  1862. }
  1863. else
  1864. {
  1865. throw ExceptionEx.ThrowServiceException(ex);
  1866. }
  1867. }
  1868. }
  1869. internal void NewAllocationDormitory(string classNo, string dataJson)
  1870. {
  1871. try
  1872. {
  1873. var data = JsonConvert.DeserializeObject<List<Acc_DormitoryBuildEntity>>(dataJson);
  1874. if (data.Any())
  1875. {
  1876. foreach (var item in data)
  1877. {
  1878. item.PlanClassNo = classNo;
  1879. this.BaseRepository("CollegeMIS").Update(item);
  1880. }
  1881. }
  1882. }
  1883. catch (Exception ex)
  1884. {
  1885. if (ex is ExceptionEx)
  1886. {
  1887. throw;
  1888. }
  1889. else
  1890. {
  1891. throw ExceptionEx.ThrowServiceException(ex);
  1892. }
  1893. }
  1894. }
  1895. internal void Synchronization()
  1896. {
  1897. try
  1898. {
  1899. var ListNewStudent =
  1900. this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(a => a.IsReport == true);
  1901. foreach (var newStudent in ListNewStudent)
  1902. {
  1903. var stuEntity = new StuInfoBasicEntity
  1904. {
  1905. StuNo = newStudent.StuNo,
  1906. Birthday = newStudent.Birthday,
  1907. ClassNo = newStudent.ClassNo,
  1908. DeptNo = newStudent.DeptNo,
  1909. MajorNo = newStudent.MajorNo,
  1910. MajorDetailName = newStudent.MajorName,
  1911. IdentityCardNo = newStudent.IDCard,
  1912. Grade = newStudent.ClassNo.Substring(2, 2),
  1913. StuName = newStudent.StuName,
  1914. Photo = newStudent.Photo,
  1915. FatherUnit = newStudent.ResidenceAddress,
  1916. MailAddress = newStudent.HomeAddress,
  1917. PartyFaceNo = newStudent.Political,
  1918. NationalityNo = newStudent.Nationals,
  1919. GenderNo = newStudent.Gender
  1920. };
  1921. stuEntity.Create();
  1922. this.BaseRepository("CollegeMIS").Insert(stuEntity);
  1923. }
  1924. }
  1925. catch (Exception ex)
  1926. {
  1927. if (ex is ExceptionEx)
  1928. {
  1929. throw;
  1930. }
  1931. else
  1932. {
  1933. throw ExceptionEx.ThrowServiceException(ex);
  1934. }
  1935. }
  1936. }
  1937. /// <summary>
  1938. /// 获取StuEnroll表实体数据
  1939. /// <param name="keyValue">主键</param>
  1940. /// <summary>
  1941. /// <returns></returns>
  1942. public StuEnrollEntity GetStuEnrollEntity(string keyValue)
  1943. {
  1944. try
  1945. {
  1946. var entity = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(keyValue);
  1947. if (!string.IsNullOrEmpty(entity.Photo))
  1948. {
  1949. var path = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_Id == entity.Photo)?.F_FilePath;
  1950. if (!string.IsNullOrEmpty(path))
  1951. {
  1952. path = "/" + path.Substring(path.IndexOf("Resource"));
  1953. entity.PhotoUrl = path;
  1954. }
  1955. }
  1956. return entity;
  1957. }
  1958. catch (Exception ex)
  1959. {
  1960. if (ex is ExceptionEx)
  1961. {
  1962. throw;
  1963. }
  1964. else
  1965. {
  1966. throw ExceptionEx.ThrowServiceException(ex);
  1967. }
  1968. }
  1969. }
  1970. public IEnumerable<StuEnrollMidExamScoreEntity> GetMidExamScoreData(string keyValue)
  1971. {
  1972. try
  1973. {
  1974. var list = this.BaseRepository("CollegeMIS").FindList<StuEnrollMidExamScoreEntity>(x => x.StuEnrollId == keyValue).ToList();
  1975. if (list == null || list.Count() <= 0)
  1976. {
  1977. var db = this.BaseRepository("CollegeMIS");
  1978. db.BeginTrans();
  1979. var dataItem = this.BaseRepository().FindList<DataItemDetailEntity>("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);
  1980. foreach (var data in dataItem)
  1981. {
  1982. StuEnrollMidExamScoreEntity entity = new StuEnrollMidExamScoreEntity();
  1983. entity.Create();
  1984. entity.StuEnrollId = keyValue;
  1985. entity.subjectName = data.F_ItemName;
  1986. entity.subjectCode = data.F_ItemCode;
  1987. entity.sort = data.F_SortCode;
  1988. db.Insert(entity);
  1989. list.Add(entity);
  1990. }
  1991. db.Commit();
  1992. }
  1993. return list;
  1994. }
  1995. catch (Exception ex)
  1996. {
  1997. if (ex is ExceptionEx)
  1998. {
  1999. throw;
  2000. }
  2001. else
  2002. {
  2003. throw ExceptionEx.ThrowServiceException(ex);
  2004. }
  2005. }
  2006. }
  2007. /// <summary>
  2008. /// 获取StuEnroll表实体数据
  2009. /// <param name=""></param>
  2010. /// <summary>
  2011. /// <returns></returns>
  2012. public StuEnrollEntity GetEntityByPersonalData(string IDCard, string StuName)
  2013. {
  2014. try
  2015. {
  2016. var year = DateTime.Now.Year;
  2017. return this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(x => (x.IDCard == IDCard && x.StuName == StuName.Trim()) && x.AddTime.Value.Year == year);
  2018. }
  2019. catch (Exception ex)
  2020. {
  2021. if (ex is ExceptionEx)
  2022. {
  2023. throw;
  2024. }
  2025. else
  2026. {
  2027. throw ExceptionEx.ThrowServiceException(ex);
  2028. }
  2029. }
  2030. }
  2031. /// <summary>
  2032. /// 学生查询考试地点或录取结果
  2033. /// <param name=""></param>
  2034. /// <summary>
  2035. /// <returns></returns>
  2036. public StuEnrollEntity SearchForm(int type, StuEnrollEntity entity)
  2037. {
  2038. try
  2039. {
  2040. return this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(x => x.StuName == entity.StuName.Trim() && x.IDCard == entity.IDCard);
  2041. }
  2042. catch (Exception ex)
  2043. {
  2044. if (ex is ExceptionEx)
  2045. {
  2046. throw;
  2047. }
  2048. else
  2049. {
  2050. throw ExceptionEx.ThrowServiceException(ex);
  2051. }
  2052. }
  2053. }
  2054. /// <summary>
  2055. /// 获取学生考试信息
  2056. /// </summary>
  2057. /// <param name="keyValue"></param>
  2058. /// <returns></returns>
  2059. public IEnumerable<ExamSubjectEntity> GetExamDataByStuId(string keyValue)
  2060. {
  2061. try
  2062. {
  2063. string subSql = $"select * from ExamSubject where SubjectNo in (select SubjectNo from StuEnroll where stuid='{keyValue}')";
  2064. return this.BaseRepository("CollegeMIS").FindList<ExamSubjectEntity>(subSql);
  2065. }
  2066. catch (Exception ex)
  2067. {
  2068. if (ex is ExceptionEx)
  2069. {
  2070. throw;
  2071. }
  2072. else
  2073. {
  2074. throw ExceptionEx.ThrowServiceException(ex);
  2075. }
  2076. }
  2077. }
  2078. /// <summary>
  2079. /// 获取页面显示列表数据
  2080. /// <summary>
  2081. /// <param name="queryJson">查询参数</param>
  2082. /// <returns></returns>
  2083. public IEnumerable<StuEnrollEntity> GetList(string queryJson)
  2084. {
  2085. try
  2086. {
  2087. var strSql = new StringBuilder();
  2088. strSql.Append("SELECT ");
  2089. strSql.Append(@"
  2090. t.StuId,
  2091. t.StuName,
  2092. t.Gender,
  2093. t.Nationals,
  2094. t.HomeAddress,
  2095. t.IDCard,
  2096. t.StuMobile,
  2097. t.FromSchool,
  2098. t.MidTermExam,
  2099. t.Specialty,
  2100. t.City,
  2101. t.County,
  2102. t.MajorNo,
  2103. t.IdCardPto1,
  2104. t.IdCardPto2,
  2105. t.MidDiplomaPto,
  2106. t.MidAchievementPto,
  2107. t.Remark
  2108. ");
  2109. strSql.Append(" FROM StuEnroll t ");
  2110. strSql.Append(" WHERE 1=1 ");
  2111. var queryParam = queryJson.ToJObject();
  2112. // 虚拟参数
  2113. var dp = new DynamicParameters(new { });
  2114. if (!queryParam["StuName"].IsEmpty())
  2115. {
  2116. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  2117. strSql.Append(" AND t.StuName Like @StuName ");
  2118. }
  2119. return this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>(strSql.ToString(), dp);
  2120. }
  2121. catch (Exception ex)
  2122. {
  2123. if (ex is ExceptionEx)
  2124. {
  2125. throw;
  2126. }
  2127. else
  2128. {
  2129. throw ExceptionEx.ThrowServiceException(ex);
  2130. }
  2131. }
  2132. }
  2133. #endregion 获取数据
  2134. #region 提交数据
  2135. /// <summary>
  2136. /// 删除实体数据
  2137. /// <param name="keyValue">主键</param>
  2138. /// <summary>
  2139. /// <returns></returns>
  2140. public void DeleteEntity(string keyValue)
  2141. {
  2142. try
  2143. {
  2144. var listId = keyValue.Split(',').ToList();
  2145. foreach (var stuId in listId)
  2146. {
  2147. this.BaseRepository("CollegeMIS").Delete<StuEnrollEntity>(t => t.StuId == stuId);
  2148. }
  2149. }
  2150. catch (Exception ex)
  2151. {
  2152. if (ex is ExceptionEx)
  2153. {
  2154. throw;
  2155. }
  2156. else
  2157. {
  2158. throw ExceptionEx.ThrowServiceException(ex);
  2159. }
  2160. }
  2161. }
  2162. /// <summary>
  2163. /// 保存实体数据(新增、修改)
  2164. /// <param name="keyValue">主键</param>
  2165. /// <summary>
  2166. /// <returns></returns>
  2167. public void SaveEntity(string keyValue, StuEnrollEntity entity)
  2168. {
  2169. try
  2170. {
  2171. if (!string.IsNullOrEmpty(keyValue))
  2172. {
  2173. entity.Modify(keyValue);
  2174. this.BaseRepository("CollegeMIS").Update(entity);
  2175. }
  2176. else
  2177. {
  2178. entity.Create();
  2179. entity.IsMilitary = true;
  2180. this.BaseRepository("CollegeMIS").Insert(entity);
  2181. }
  2182. }
  2183. catch (Exception ex)
  2184. {
  2185. if (ex is ExceptionEx)
  2186. {
  2187. throw;
  2188. }
  2189. else
  2190. {
  2191. throw ExceptionEx.ThrowServiceException(ex);
  2192. }
  2193. }
  2194. }
  2195. /// <summary>
  2196. /// 新生报名
  2197. /// <param name="keyValue">主键</param>
  2198. /// <summary>
  2199. /// <returns></returns>
  2200. public void SaveEnroll(string keyValue, StuEnrollEntity entity, List<StuEnrollMidExamScoreEntity> scoreData)
  2201. {
  2202. var db = this.BaseRepository("CollegeMIS");
  2203. try
  2204. {
  2205. db.BeginTrans();
  2206. var sql = $" select top 1 [year] as year,Majorname from CdMajor where ID='{entity.MajorNo}'";
  2207. var majorData = db.FindTable(sql);
  2208. entity.MajorName = majorData.Rows[0]["Majorname"].ToString();
  2209. entity.Year = majorData.Rows[0]["year"].ToString();
  2210. if (!string.IsNullOrEmpty(keyValue))
  2211. {
  2212. entity.Modify(keyValue);
  2213. db.Update(entity);
  2214. }
  2215. else
  2216. {
  2217. entity.Create();
  2218. entity.EnrollStatus = 0;
  2219. db.Insert(entity);
  2220. }
  2221. if (scoreData != null && scoreData.Count > 0)
  2222. {
  2223. for (int i = 0; i < scoreData.Count; i++)
  2224. {
  2225. if (!string.IsNullOrEmpty(scoreData[i].Id))
  2226. {
  2227. db.Update(scoreData[i]);
  2228. }
  2229. else
  2230. {
  2231. StuEnrollMidExamScoreEntity model = new StuEnrollMidExamScoreEntity();
  2232. model.Create();
  2233. model.StuEnrollId = entity.StuId;
  2234. model.subjectName = scoreData[i].subjectName;
  2235. model.subjectCode = scoreData[i].subjectCode;
  2236. model.score = scoreData[i].score;
  2237. model.sort = i + 1;
  2238. db.Insert(model);
  2239. }
  2240. }
  2241. }
  2242. db.Commit();
  2243. }
  2244. catch (Exception ex)
  2245. {
  2246. db.Rollback();
  2247. if (ex is ExceptionEx)
  2248. {
  2249. throw;
  2250. }
  2251. else
  2252. {
  2253. throw ExceptionEx.ThrowServiceException(ex);
  2254. }
  2255. }
  2256. }
  2257. public void EditEnrollType(string stuIds, string enrollType)
  2258. {
  2259. try
  2260. {
  2261. List<string> list = stuIds.Split(',').ToList();
  2262. if (list.Count > 0)
  2263. {
  2264. foreach (var item in list)
  2265. {
  2266. if (!string.IsNullOrEmpty(item))
  2267. {
  2268. var model = this.BaseRepository("CollegeMIS").FindEntity<StuEnrollEntity>(a => a.StuId == item);
  2269. if (model != null)
  2270. {
  2271. model.EnrollType = enrollType;
  2272. this.BaseRepository("CollegeMIS").Update(model);
  2273. }
  2274. }
  2275. }
  2276. }
  2277. }
  2278. catch (Exception ex)
  2279. {
  2280. if (ex is ExceptionEx)
  2281. {
  2282. throw;
  2283. }
  2284. else
  2285. {
  2286. throw ExceptionEx.ThrowServiceException(ex);
  2287. }
  2288. }
  2289. }
  2290. /// <summary>
  2291. /// 招生统计
  2292. /// </summary>
  2293. /// <param name="queryJson"></param>
  2294. /// <returns></returns>
  2295. public DataTable GetTJList(string queryJson)
  2296. {
  2297. try
  2298. {
  2299. var strSql = new StringBuilder();
  2300. strSql.Append("select empno,count(1) as num from stuenroll t where IsAdmission=1");
  2301. var queryParam = queryJson.ToJObject();
  2302. // 虚拟参数
  2303. var dp = new DynamicParameters(new { });
  2304. if (!queryParam["StuName"].IsEmpty())
  2305. {
  2306. strSql.Append($" AND t.StuName Like '%{queryParam["StuName"]}%' ");
  2307. }
  2308. if (!queryParam["IDCard"].IsEmpty())
  2309. {
  2310. strSql.Append($" AND t.IDCard Like '%{queryParam["IDCard"]}%' ");
  2311. }
  2312. if (!queryParam["StuMobile"].IsEmpty())
  2313. {
  2314. strSql.Append($" AND t.StuMobile Like '%{queryParam["StuMobile"]}%' ");
  2315. }
  2316. if (!queryParam["Year"].IsEmpty())
  2317. {
  2318. strSql.Append($" AND charindex(t.Year,('{queryParam["Year"]}'))>0 ");
  2319. }
  2320. if (!queryParam["City"].IsEmpty())
  2321. {
  2322. strSql.Append($" AND charindex(t.City,('{queryParam["City"]}'))>0 ");
  2323. }
  2324. if (!queryParam["County"].IsEmpty())
  2325. {
  2326. strSql.Append($" AND charindex(t.County,('{queryParam["County"]}'))>0 ");
  2327. }
  2328. if (!queryParam["MajorNo"].IsEmpty())
  2329. {
  2330. strSql.Append($" AND charindex(t.MajorNo,('{queryParam["MajorNo"]}'))>0 ");
  2331. }
  2332. if (!queryParam["EmpNo"].IsEmpty())
  2333. {
  2334. strSql.Append($" AND charindex(t.EmpNo,('{queryParam["EmpNo"]}'))>0 ");
  2335. }
  2336. //sql条件
  2337. if (!queryParam["SqlParameter"].IsEmpty())
  2338. {
  2339. strSql.Append(queryParam["SqlParameter"].ToString());
  2340. }
  2341. strSql.Append(" group by empno");
  2342. return this.BaseRepository("CollegeMIS").FindTable(strSql.ToString());
  2343. }
  2344. catch (Exception ex)
  2345. {
  2346. if (ex is ExceptionEx)
  2347. {
  2348. throw;
  2349. }
  2350. else
  2351. {
  2352. throw ExceptionEx.ThrowServiceException(ex);
  2353. }
  2354. }
  2355. }
  2356. public void SyncDept()
  2357. {
  2358. try
  2359. {
  2360. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  2361. var majorList = this.BaseRepository("CollegeMIS").FindList<CdMajorEntity>().ToList();
  2362. foreach (var item in data)
  2363. {
  2364. var deptNo = majorList.FirstOrDefault(a => a.MajorNo == item.MajorNo)?.DeptNo;
  2365. item.DeptNo = deptNo;
  2366. this.BaseRepository("CollegeMIS").Update(item);
  2367. }
  2368. }
  2369. catch (Exception ex)
  2370. {
  2371. if (ex is ExceptionEx)
  2372. {
  2373. throw;
  2374. }
  2375. else
  2376. {
  2377. throw ExceptionEx.ThrowServiceException(ex);
  2378. }
  2379. }
  2380. }
  2381. public void SyncMajor()
  2382. {
  2383. try
  2384. {
  2385. var data = this.BaseRepository("CollegeMIS").FindList<StuEnrollEntity>().ToList();
  2386. var classList = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>().ToList();
  2387. foreach (var item in data)
  2388. {
  2389. var majorNo = classList.FirstOrDefault(a => a.ClassNo == item.ClassNo)?.MajorNo;
  2390. item.MajorNo = majorNo;
  2391. this.BaseRepository("CollegeMIS").Update(item);
  2392. }
  2393. }
  2394. catch (Exception ex)
  2395. {
  2396. if (ex is ExceptionEx)
  2397. {
  2398. throw;
  2399. }
  2400. else
  2401. {
  2402. throw ExceptionEx.ThrowServiceException(ex);
  2403. }
  2404. }
  2405. }
  2406. /// <summary>
  2407. /// 签订安全自律协议
  2408. /// </summary>
  2409. /// <param name="stuId"></param>
  2410. /// <param name="status"></param>
  2411. /// <returns></returns>
  2412. public (bool, string) Sign(string stuId, bool status)
  2413. {
  2414. try
  2415. {
  2416. var resultbool = false;
  2417. var result = "";
  2418. if (!string.IsNullOrEmpty(stuId))
  2419. {
  2420. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  2421. if (data.Any())
  2422. {
  2423. foreach (var item in data)
  2424. {
  2425. item.SecurityAgreement = status;
  2426. this.BaseRepository("CollegeMis").Update(item);
  2427. }
  2428. resultbool = true;
  2429. result = "操作成功";
  2430. }
  2431. }
  2432. else
  2433. {
  2434. result = "错误";
  2435. }
  2436. return (resultbool, result);
  2437. }
  2438. catch (Exception ex)
  2439. {
  2440. if (ex is ExceptionEx)
  2441. {
  2442. throw;
  2443. }
  2444. else
  2445. {
  2446. throw ExceptionEx.ThrowServiceException(ex);
  2447. }
  2448. }
  2449. }
  2450. /// <summary>
  2451. /// 报到
  2452. /// </summary>
  2453. /// <param name="stuId"></param>
  2454. /// <param name="status"></param>
  2455. /// <returns></returns>
  2456. public (bool, string) Report(string stuId, bool status)
  2457. {
  2458. try
  2459. {
  2460. var resultbool = false;
  2461. var result = "";
  2462. if (!string.IsNullOrEmpty(stuId))
  2463. {
  2464. var data = JsonConvert.DeserializeObject<List<StuEnrollEntity>>(stuId);
  2465. if (data.Any())
  2466. {
  2467. foreach (var item in data)
  2468. {
  2469. item.IsReport = status;
  2470. item.Status = 1;
  2471. item.SecurityAgreement = status;
  2472. this.BaseRepository("CollegeMis").Update(item);
  2473. }
  2474. resultbool = true;
  2475. result = "操作成功";
  2476. }
  2477. }
  2478. else
  2479. {
  2480. result = "错误";
  2481. }
  2482. return (resultbool, result);
  2483. }
  2484. catch (Exception ex)
  2485. {
  2486. if (ex is ExceptionEx)
  2487. {
  2488. throw;
  2489. }
  2490. else
  2491. {
  2492. throw ExceptionEx.ThrowServiceException(ex);
  2493. }
  2494. }
  2495. }
  2496. /// <summary>
  2497. /// 报名审核
  2498. /// <param name="keyValue">主键</param>
  2499. /// <summary>
  2500. /// <returns></returns>
  2501. public void UpdateEnrollStatus(string keyValue, int EnrollStatus)
  2502. {
  2503. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  2504. try
  2505. {
  2506. var enrollList = db.FindList<StuEnrollEntity>(x => x.StuId == keyValue).ToList();
  2507. string sql = $"update StuEnroll set EnrollStatus='{EnrollStatus}' where stuid in ('{keyValue}')";
  2508. db.ExecuteBySql(sql);
  2509. //审核通过 添加新生成绩表
  2510. if (EnrollStatus == 2)
  2511. {
  2512. //新生成绩表
  2513. var list = db.FindList<StuEnrollScoreEntity>();
  2514. foreach (var enrollData in enrollList)
  2515. {
  2516. if (list.Where(x => x.YearNo == enrollData.Year && x.StuId == enrollData.StuId).Count() <= 0)
  2517. {
  2518. //新生成绩表不存在当前新生 添加
  2519. var subNos = enrollData.SubjectNo.Split(',').ToList();
  2520. foreach (var subno in subNos)
  2521. {
  2522. StuEnrollScoreEntity model = new StuEnrollScoreEntity();
  2523. model.Create();
  2524. model.YearNo = enrollData.Year;
  2525. model.MajorId = enrollData.MajorNo;
  2526. model.StuId = enrollData.StuId;
  2527. model.SubjectId = subno;
  2528. model.Score = 0;
  2529. db.Insert(model);
  2530. }
  2531. }
  2532. }
  2533. }
  2534. else
  2535. {
  2536. //删除新生成绩表
  2537. foreach (var enrollData in enrollList)
  2538. {
  2539. var scoreList = db.FindList<StuEnrollScoreEntity>(x => x.StuId == enrollData.StuId);
  2540. foreach (var item in scoreList)
  2541. {
  2542. db.Delete(item);
  2543. }
  2544. }
  2545. }
  2546. db.Commit();
  2547. }
  2548. catch (Exception ex)
  2549. {
  2550. db.Rollback();
  2551. if (ex is ExceptionEx)
  2552. {
  2553. throw;
  2554. }
  2555. else
  2556. {
  2557. throw ExceptionEx.ThrowServiceException(ex);
  2558. }
  2559. }
  2560. }
  2561. /// <summary>
  2562. /// 录取
  2563. /// <param name="keyValue">主键</param>
  2564. /// <summary>
  2565. /// <returns></returns>
  2566. public void Admission(string keyValue, int IsAdmission)
  2567. {
  2568. try
  2569. {
  2570. string sql = $"update StuEnroll set IsAdmission='{IsAdmission}' where stuid='{keyValue}'";
  2571. this.BaseRepository("CollegeMIS").ExecuteBySql(sql);
  2572. }
  2573. catch (Exception ex)
  2574. {
  2575. if (ex is ExceptionEx)
  2576. {
  2577. throw;
  2578. }
  2579. else
  2580. {
  2581. throw ExceptionEx.ThrowServiceException(ex);
  2582. }
  2583. }
  2584. }
  2585. #endregion 提交数据
  2586. }
  2587. }