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.
 
 
 
 
 
 

1543 lines
62 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. using Learun.Application.Base.AuthorizeModule;
  10. using Learun.Application.Organization;
  11. using System.Reflection;
  12. using Learun.Application.Base.SystemModule;
  13. using Learun.Application.TwoDevelopment.LogisticsManagement;
  14. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  15. {
  16. /// <summary>
  17. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  18. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  19. /// 创 建:超级管理员
  20. /// 日 期:2019-02-21 16:53
  21. /// 描 述:学生学籍
  22. /// </summary>
  23. public class StuInfoBasicService : RepositoryFactory
  24. {
  25. #region 获取数据
  26. /// <summary>
  27. /// 获取页面显示列表数据
  28. /// <summary>
  29. /// <param name="queryJson">查询参数</param>
  30. /// <returns></returns>
  31. public IEnumerable<StuInfoBasicEntity> GetPageList(Pagination pagination, string queryJson)
  32. {
  33. try
  34. {
  35. var strSql = new StringBuilder();
  36. strSql.Append("SELECT t.* ");
  37. strSql.Append(" FROM StuInfoBasic t ");
  38. strSql.Append(" WHERE 1=1 ");
  39. var queryParam = queryJson.ToJObject();
  40. // 虚拟参数
  41. var dp = new DynamicParameters(new { });
  42. if (!queryParam["StuNo"].IsEmpty())
  43. {
  44. dp.Add("StuNo", "%" + queryParam["StuNo"].ToString() + "%", DbType.String);
  45. strSql.Append(" AND t.StuNo Like @StuNo ");
  46. }
  47. if (!queryParam["StuName"].IsEmpty())
  48. {
  49. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  50. strSql.Append(" AND t.StuName Like @StuName ");
  51. }
  52. if (!queryParam["DeptNo"].IsEmpty())
  53. {
  54. dp.Add("DeptNo", "" + queryParam["DeptNo"].ToString() + "", DbType.String);
  55. strSql.Append(" AND t.DeptNo=@DeptNo ");
  56. }
  57. if (!queryParam["MajorNo"].IsEmpty())
  58. {
  59. dp.Add("MajorNo", "" + queryParam["MajorNo"].ToString() + "", DbType.String);
  60. strSql.Append(" AND t.MajorNo=@MajorNo ");
  61. }
  62. if (!queryParam["ClassNo"].IsEmpty())
  63. {
  64. dp.Add("ClassNo", "" + queryParam["ClassNo"].ToString() + "", DbType.String);
  65. strSql.Append(" AND t.ClassNo=@ClassNo ");
  66. }
  67. if (!queryParam["Grade"].IsEmpty())
  68. {
  69. dp.Add("Grade", "" + queryParam["Grade"].ToString() + "", DbType.String);
  70. strSql.Append(" AND t.Grade=@Grade ");
  71. }
  72. if (!queryParam["GenderNo"].IsEmpty())
  73. {
  74. dp.Add("GenderNo", "" + queryParam["GenderNo"].ToString() + "", DbType.String);
  75. strSql.Append(" AND t.GenderNo=@GenderNo ");
  76. }
  77. if (!queryParam["IdentityCardNo"].IsEmpty())
  78. {
  79. dp.Add("IdentityCardNo", "%" + queryParam["IdentityCardNo"].ToString() + "%", DbType.String);
  80. strSql.Append(" AND t.IdentityCardNo Like @IdentityCardNo ");
  81. }
  82. if (!queryParam["NationalityNo"].IsEmpty())
  83. {
  84. dp.Add("NationalityNo", "" + queryParam["NationalityNo"].ToString() + "", DbType.String);
  85. strSql.Append(" AND t.NationalityNo = @NationalityNo ");
  86. }
  87. if (!queryParam["FinishSchoolMark"].IsEmpty())
  88. {
  89. dp.Add("FinishSchoolMark", "" + queryParam["FinishSchoolMark"].ToString() + "", DbType.String);
  90. if (queryParam["FinishSchoolMark"].ToString() == "0")
  91. {
  92. strSql.Append(" AND (t.FinishSchoolMark is null or t.FinishSchoolMark='0') ");
  93. }
  94. else
  95. {
  96. strSql.Append(" AND t.FinishSchoolMark=@FinishSchoolMark ");
  97. }
  98. }
  99. if (!queryParam["Remark"].IsEmpty())
  100. {
  101. dp.Add("Remark", "%" + queryParam["Remark"].ToString() + "%", DbType.String);
  102. strSql.Append(" AND t.Remark Like @Remark ");
  103. }
  104. if (!queryParam["CheckMark"].IsEmpty())
  105. {
  106. dp.Add("CheckMark", "" + queryParam["CheckMark"].ToString() + "", DbType.String);
  107. if (queryParam["CheckMark"].ToString() == "1")
  108. {
  109. strSql.Append(" AND t.CheckMark=@CheckMark ");
  110. }
  111. else
  112. {
  113. strSql.Append(" AND (t.CheckMark is null or t.CheckMark='0') ");
  114. }
  115. }
  116. if (!queryParam["StuCode"].IsEmpty())
  117. {
  118. dp.Add("StuCode", "%" + queryParam["StuCode"].ToString() + "%", DbType.String);
  119. strSql.Append(" AND t.StuCode Like @StuCode ");
  120. }
  121. if (!queryParam["PartyFaceNo"].IsEmpty())
  122. {
  123. dp.Add("PartyFaceNo", "" + queryParam["PartyFaceNo"].ToString() + "", DbType.String);
  124. strSql.Append(" AND t.PartyFaceNo = @PartyFaceNo ");
  125. }
  126. if (!queryParam["EduSystem"].IsEmpty())
  127. {
  128. dp.Add("EduSystem", "" + queryParam["EduSystem"].ToString() + "", DbType.String);
  129. strSql.Append(" AND t.EduSystem = @EduSystem ");
  130. }
  131. if (!queryParam["HealthStatus"].IsEmpty())
  132. {
  133. dp.Add("HealthStatus", "" + queryParam["HealthStatus"].ToString() + "", DbType.String);
  134. strSql.Append(" AND t.HealthStatus = @HealthStatus ");
  135. }
  136. if (!queryParam["StudyModality"].IsEmpty())
  137. {
  138. dp.Add("StudyModality", "" + queryParam["StudyModality"].ToString() + "", DbType.String);
  139. strSql.Append(" AND t.StudyModality = @StudyModality ");
  140. }
  141. if (!queryParam["Photo"].IsEmpty())
  142. {
  143. dp.Add("Photo", "" + queryParam["Photo"].ToString() + "", DbType.String);
  144. if (queryParam["Photo"].ToString() == "1")
  145. {
  146. strSql.Append(" AND t.Photo is not null ");
  147. }
  148. else
  149. {
  150. strSql.Append(" AND t.Photo is null ");
  151. }
  152. }
  153. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(strSql.ToString(), dp, pagination);
  154. }
  155. catch (Exception ex)
  156. {
  157. if (ex is ExceptionEx)
  158. {
  159. throw;
  160. }
  161. else
  162. {
  163. throw ExceptionEx.ThrowServiceException(ex);
  164. }
  165. }
  166. }
  167. internal List<string> GetSaveClassStudents(string account)
  168. {
  169. try
  170. {
  171. var classNO = this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(a => a.StuNo == account).ClassNo;
  172. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(a => a.ClassNo == classNO).Select(a => a.StuNo).ToList();
  173. }
  174. catch (Exception ex)
  175. {
  176. if (ex is ExceptionEx)
  177. {
  178. throw;
  179. }
  180. else
  181. {
  182. throw ExceptionEx.ThrowServiceException(ex);
  183. }
  184. }
  185. }
  186. internal bool GetAny()
  187. {
  188. try
  189. {
  190. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>().ToList().Count > 0 ? true : false;
  191. }
  192. catch (Exception ex)
  193. {
  194. if (ex is ExceptionEx)
  195. {
  196. throw;
  197. }
  198. else
  199. {
  200. throw ExceptionEx.ThrowServiceException(ex);
  201. }
  202. }
  203. }
  204. internal StuInfoBasicEntity GetStuInfoBasicEntityByStuNo(string enCode)
  205. {
  206. try
  207. {
  208. var data = this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(a => a.StuNo == enCode);
  209. if (data != null && (data.Photo != null && data.Photo != ""))
  210. {
  211. var url = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == data.Photo)?.F_FilePath;
  212. if (!string.IsNullOrEmpty(url))
  213. {
  214. url = "/" + url.Substring(url.IndexOf("Resource"));
  215. data.Photo = url;
  216. }
  217. }
  218. return data;
  219. }
  220. catch (Exception ex)
  221. {
  222. if (ex is ExceptionEx)
  223. {
  224. throw;
  225. }
  226. else
  227. {
  228. throw ExceptionEx.ThrowServiceException(ex);
  229. }
  230. }
  231. }
  232. public StuInfoBasicEntity GetStuInfoBasicEntityByStuName(string name)
  233. {
  234. try
  235. {
  236. return this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(a => a.StuName == name);
  237. }
  238. catch (Exception ex)
  239. {
  240. if (ex is ExceptionEx)
  241. {
  242. throw;
  243. }
  244. else
  245. {
  246. throw ExceptionEx.ThrowServiceException(ex);
  247. }
  248. }
  249. }
  250. public StuInfoBasicEntity GetStuInfoBasicEntityByStuNoOrStuName(string stuno, string stuname)
  251. {
  252. try
  253. {
  254. string sql = "select * from StuInfoBasic where 1=1";
  255. if (!string.IsNullOrEmpty(stuno))
  256. {
  257. sql += $" and stuno='{stuno}'";
  258. }
  259. if (!string.IsNullOrEmpty(stuname))
  260. {
  261. sql += $" and stuname='{stuname}'";
  262. }
  263. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(sql).FirstOrDefault();
  264. }
  265. catch (Exception ex)
  266. {
  267. if (ex is ExceptionEx)
  268. {
  269. throw;
  270. }
  271. else
  272. {
  273. throw ExceptionEx.ThrowServiceException(ex);
  274. }
  275. }
  276. }
  277. /// <summary>
  278. /// 获取StuInfoBasic表实体数据
  279. /// <param name="keyValue">主键</param>
  280. /// <summary>
  281. /// <returns></returns>
  282. public StuInfoBasicEntity GetStuInfoBasicEntity(string keyValue)
  283. {
  284. try
  285. {
  286. return this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(keyValue);
  287. }
  288. catch (Exception ex)
  289. {
  290. if (ex is ExceptionEx)
  291. {
  292. throw;
  293. }
  294. else
  295. {
  296. throw ExceptionEx.ThrowServiceException(ex);
  297. }
  298. }
  299. }
  300. /// <summary>
  301. /// 获取准许毕业的学生的专业
  302. /// <summary>
  303. /// <returns></returns>
  304. public List<CdMajorEntity> GetMajorInfoWithGraduation()
  305. {
  306. try
  307. {
  308. var stuInfo = this.BaseRepository("CollegeMIS")
  309. .FindList<StuInfoBasicEntity>(a => a.FinishSchoolMark == "1").ToList();
  310. var majorNoList = stuInfo.GroupBy(a => a.MajorNo).Select(a => a.Key).ToList();
  311. var majorList = this.BaseRepository("CollegeMIS")
  312. .FindList<CdMajorEntity>(a => majorNoList.Contains(a.MajorNo)).ToList();
  313. return majorList;
  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. /// <summary>
  328. /// 获取StuInfoBasic表实体数据
  329. /// <param name="keyValue">主键</param>
  330. /// <summary>
  331. /// <returns></returns>
  332. public void CreateGraduateNoByMajor(string CityCode, string SchoolCode, string MajorList)
  333. {
  334. try
  335. {
  336. var year = DateTime.Now.Year.ToString().Substring(2, 2);
  337. var firstStr = year + CityCode + SchoolCode;
  338. //获取最大的序号
  339. var DiplomaNoList = this.BaseRepository("CollegeMIS")
  340. .FindList<StuInfoBasicEntity>(a => a.DiplomaNo.Contains(firstStr)).Select(a => a.DiplomaNo.Substring(a.DiplomaNo.Length - 4, 4).ToInt()).ToList();
  341. var orderNo = 1;
  342. if (DiplomaNoList.Count() > 0)
  343. {
  344. var MaxDiplomaNo = DiplomaNoList.Max(a => a);
  345. orderNo = MaxDiplomaNo + 1;
  346. }
  347. var ListMajorNo = MajorList.Split(',').ToList();
  348. foreach (var MajorNo in ListMajorNo)
  349. {
  350. var stuList = this.BaseRepository("CollegeMIS")
  351. .FindList<StuInfoBasicEntity>(a => a.MajorNo == MajorNo)
  352. .Where(a => a.DiplomaNo == null || a.DiplomaNo == "");
  353. if (stuList.Count() > 0)
  354. {
  355. foreach (var stuInfo in stuList)
  356. {
  357. stuInfo.DiplomaNo = firstStr + orderNo.ToString().PadLeft(4, '0');
  358. this.BaseRepository("CollegeMIS").Update(stuInfo);
  359. orderNo++;
  360. }
  361. }
  362. }
  363. }
  364. catch (Exception ex)
  365. {
  366. if (ex is ExceptionEx)
  367. {
  368. throw;
  369. }
  370. else
  371. {
  372. throw ExceptionEx.ThrowServiceException(ex);
  373. }
  374. }
  375. }
  376. /// <summary>
  377. /// 获取StuInfoBasic表实体数据
  378. /// <param name="keyValue">主键</param>
  379. /// <summary>
  380. /// <returns></returns>
  381. public void DoCreateGraduateNo()
  382. {
  383. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  384. try
  385. {
  386. //年份
  387. var year = DateTime.Now.Year.ToString().Substring(2, 2);
  388. //学校编码十位
  389. var schoolCode = "3642000004";
  390. //顺序号四位
  391. var numberCode = 1;
  392. //获取最大的序号
  393. var DiplomaNoList = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(x => x.DiplomaNo.Contains(year + schoolCode)).Select(x => x.DiplomaNo).ToList();
  394. if (DiplomaNoList.Any())
  395. {
  396. numberCode = DiplomaNoList.Max(x => x).Substring(12, 4).ToInt() + 1;
  397. }
  398. //获取所有要毕业的学生按年级查询出来,再按学号进行由小到大排序,
  399. var stuList = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(x => (x.FinishSchoolMark == "1" || x.FinishSchoolMark == "2") && (x.DiplomaNo == null || x.DiplomaNo == "")).OrderBy(x => x.Grade).ThenBy(x => x.StuNo);
  400. foreach (var item in stuList)
  401. {
  402. item.DiplomaNo = year + schoolCode + numberCode.ToString().PadLeft(4, '0');
  403. db.Update(item);
  404. numberCode++;
  405. }
  406. db.Commit();
  407. }
  408. catch (Exception ex)
  409. {
  410. db.Rollback();
  411. if (ex is ExceptionEx)
  412. {
  413. throw;
  414. }
  415. else
  416. {
  417. throw ExceptionEx.ThrowServiceException(ex);
  418. }
  419. }
  420. }
  421. /// <summary>
  422. /// 获取StuInfoBasic表实体数据
  423. /// <param name="keyValue">主键</param>
  424. /// <summary>
  425. /// <returns></returns>
  426. public StuInfoBasicEntity GetStuNoByAccount(string keyValue)
  427. {
  428. try
  429. {
  430. return this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(a => a.StuNo == keyValue);
  431. }
  432. catch (Exception ex)
  433. {
  434. if (ex is ExceptionEx)
  435. {
  436. throw;
  437. }
  438. else
  439. {
  440. throw ExceptionEx.ThrowServiceException(ex);
  441. }
  442. }
  443. }
  444. /// <summary>
  445. /// 获取树形数据
  446. /// </summary>
  447. /// <returns></returns>
  448. public DataTable GetSqlTree()
  449. {
  450. try
  451. {
  452. var ClassDiredctorNo = LoginUserInfo.Get().account;
  453. string sql = " SELECT * FROM dbo.ClassInfo where CheckMark=1 ";
  454. if (ClassDiredctorNo.ToUpper() != "SYSTEM")
  455. {
  456. sql += $" and ClassDiredctorNo='{ClassDiredctorNo}' or ClassTutorNo='{ClassDiredctorNo}'";
  457. }
  458. return this.BaseRepository("CollegeMIS").FindTable(sql);
  459. }
  460. catch (Exception ex)
  461. {
  462. if (ex is ExceptionEx)
  463. {
  464. throw;
  465. }
  466. else
  467. {
  468. throw ExceptionEx.ThrowServiceException(ex);
  469. }
  470. }
  471. }
  472. #endregion
  473. #region 提交数据
  474. /// <summary>
  475. /// 审核全部
  476. /// </summary>
  477. public void CheckAll()
  478. {
  479. try
  480. {
  481. this.BaseRepository("CollegeMIS").ExecuteBySql("update StuInfoBasic set CheckMark=1");
  482. }
  483. catch (Exception ex)
  484. {
  485. if (ex is ExceptionEx)
  486. {
  487. throw;
  488. }
  489. else
  490. {
  491. throw ExceptionEx.ThrowServiceException(ex);
  492. }
  493. }
  494. }
  495. /// <summary>
  496. /// 准许毕业操作
  497. /// </summary>
  498. public void AllowGraduate(string stuNo, string status)
  499. {
  500. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  501. try
  502. {
  503. var list = stuNo.Split(',').ToList().Select(a => "'" + a + "'");
  504. var stulist = string.Join(",", list);
  505. if (status == "1")//准许毕业
  506. {
  507. //判断离校手续是否全办完,若满足则修改毕业状态为已毕业和毕业时间,若不满足则修改毕业状态为准许毕业;
  508. foreach (var item in stuNo.Split(','))
  509. {
  510. var itementity = db.FindEntity<StuInfoBasicEntity>(x => x.StuNo == item);
  511. if (itementity.ReturnBooksStatus == "1" && itementity.EmployAgreeStatus == "1" && itementity.FeeSettleStatus == "1" && itementity.CheckOutStatus == "1" && itementity.CardDeregistrateStatus == "1" && itementity.DiplomaReceiveStatus == "1" && itementity.FileTransferStatus == "1")
  512. {
  513. db.ExecuteBySql($"UPDATE dbo.StuInfoBasic SET FinishSchoolMark ='2',FinishSchoolDate='" + DateTime.Now + "' WHERE StuNo='" + item + "' ");
  514. }
  515. else
  516. {
  517. db.ExecuteBySql($"UPDATE dbo.StuInfoBasic SET FinishSchoolMark ='{status}',FinishSchoolDate=null WHERE StuNo='" + item + "' ");
  518. }
  519. }
  520. }
  521. else//不准毕业
  522. {
  523. //毕业状态修改为不准毕业,毕业时间为空;
  524. db.ExecuteBySql($"UPDATE dbo.StuInfoBasic SET FinishSchoolMark ='{status}',FinishSchoolDate=null WHERE StuNo in({stulist})");
  525. }
  526. db.Commit();
  527. }
  528. catch (Exception ex)
  529. {
  530. db.Rollback();
  531. if (ex is ExceptionEx)
  532. {
  533. throw;
  534. }
  535. else
  536. {
  537. throw ExceptionEx.ThrowServiceException(ex);
  538. }
  539. }
  540. }
  541. public void SynPhoto()
  542. {
  543. try
  544. {
  545. var stuList = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>()
  546. .ToList();
  547. var url = AppDomain.CurrentDomain.BaseDirectory;
  548. foreach (var stuInfo in stuList)
  549. {
  550. //判断要上传的照片在本地服务器中是否存在
  551. var photoPath = $"{url}/Resource/UserPhoto/{stuInfo.IdentityCardNo}.jpg";
  552. if (System.IO.File.Exists(photoPath))
  553. {
  554. //学籍表中照片字段不为空
  555. if (!string.IsNullOrEmpty(stuInfo.Photo))
  556. {
  557. var annex = this.BaseRepository()
  558. .FindEntity<AnnexesFileEntity>(a => a.F_FolderId == stuInfo.Photo);
  559. if (annex == null)
  560. {
  561. var annexEntity = new AnnexesFileEntity()
  562. {
  563. F_Id = Guid.NewGuid().ToString(),
  564. F_FileName = stuInfo.IdentityCardNo + ".jpg",
  565. F_FilePath = $"{url}/Resource/UserPhoto/{stuInfo.IdentityCardNo}.jpg",
  566. F_FolderId = stuInfo.Photo
  567. };
  568. this.BaseRepository().Insert(annexEntity);
  569. }
  570. else
  571. {
  572. annex.F_FileName = stuInfo.IdentityCardNo + ".jpg";
  573. annex.F_FilePath = $"{url}/Resource/UserPhoto/{stuInfo.IdentityCardNo}.jpg";
  574. this.BaseRepository().Update(annex);
  575. }
  576. }
  577. else
  578. {
  579. stuInfo.Photo = Guid.NewGuid().ToString();
  580. var annexEntity = new AnnexesFileEntity()
  581. {
  582. F_Id = Guid.NewGuid().ToString(),
  583. F_FileName = stuInfo.IdentityCardNo + ".jpg",
  584. F_FilePath = $"{url}/Resource/UserPhoto/{stuInfo.IdentityCardNo}.jpg",
  585. F_FolderId = stuInfo.Photo
  586. };
  587. annexEntity.Create();
  588. this.BaseRepository("CollegeMIS").Update(stuInfo);
  589. this.BaseRepository().Insert(annexEntity);
  590. }
  591. }
  592. }
  593. }
  594. catch (Exception ex)
  595. {
  596. if (ex is ExceptionEx)
  597. {
  598. throw;
  599. }
  600. else
  601. {
  602. throw ExceptionEx.ThrowServiceException(ex);
  603. }
  604. }
  605. }
  606. /// <summary>
  607. /// 删除实体数据
  608. /// <param name="keyValue">主键</param>
  609. /// <summary>
  610. /// <returns></returns>
  611. public void DeleteEntity(string keyValue)
  612. {
  613. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  614. try
  615. {
  616. //单个删除
  617. //this.BaseRepository("CollegeMIS").Delete<StuInfoBasicEntity>(t => t.StuId == keyValue);
  618. //多个删除
  619. var keyValueArr = keyValue.Split(',');
  620. foreach (var item in keyValueArr)
  621. {
  622. db.Delete<StuInfoBasicEntity>(t => t.StuId == item);
  623. }
  624. db.Commit();
  625. }
  626. catch (Exception ex)
  627. {
  628. db.Rollback();
  629. if (ex is ExceptionEx)
  630. {
  631. throw;
  632. }
  633. else
  634. {
  635. throw ExceptionEx.ThrowServiceException(ex);
  636. }
  637. }
  638. }
  639. /// <summary>
  640. /// 领取毕业证
  641. /// <param name="keyValue">主键</param>
  642. /// <summary>
  643. /// <returns></returns>
  644. public void GetCard(string keyValue, string status, StuInfoBasicEntity entity)
  645. {
  646. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  647. try
  648. {
  649. if (status == "1")//领取
  650. {
  651. var now = DateTime.Now;
  652. var keyValueArr = keyValue.Split(',');
  653. foreach (var item in keyValueArr)
  654. {
  655. var sql = $"UPDATE StuInfoBasic SET DiplomaReceiveStatus='{status}',DiplomaReceiveDate='{now}',DiplomaReceiveSign='{entity.DiplomaReceiveSign}',DiplomaReceiveIdcard='{entity.DiplomaReceiveIdcard}',DiplomaReceiveRemark='{entity.DiplomaReceiveRemark}' WHERE StuId='{item}'";
  656. db.ExecuteBySql(sql);
  657. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  658. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  659. db.ExecuteBySql(sql2);
  660. }
  661. }
  662. else
  663. {
  664. var keyValueArr = keyValue.Split(',');
  665. foreach (var item in keyValueArr)
  666. {
  667. var sql = $"UPDATE StuInfoBasic SET DiplomaReceiveStatus='{status}',DiplomaReceiveDate=null,DiplomaReceiveSign=null,DiplomaReceiveIdcard=null,DiplomaReceiveRemark=null WHERE StuId='{item}'";
  668. db.ExecuteBySql(sql);
  669. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  670. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  671. db.ExecuteBySql(sql2);
  672. }
  673. }
  674. db.Commit();
  675. }
  676. catch (Exception ex)
  677. {
  678. db.Rollback();
  679. if (ex is ExceptionEx)
  680. {
  681. throw;
  682. }
  683. else
  684. {
  685. throw ExceptionEx.ThrowServiceException(ex);
  686. }
  687. }
  688. }
  689. /// <summary>
  690. /// 图书资料归还
  691. /// <param name="keyValue">主键</param>
  692. /// <summary>
  693. /// <returns></returns>
  694. public void IsReturnBooks(string keyValue, string status)
  695. {
  696. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  697. try
  698. {
  699. if (status == "1")//归还
  700. {
  701. var now = DateTime.Now;
  702. var keyValueArr = keyValue.Split(',');
  703. foreach (var item in keyValueArr)
  704. {
  705. var sql = $"UPDATE StuInfoBasic SET ReturnBooksStatus='{status}',ReturnBooksDate='{now}' WHERE StuId='{item}'";
  706. db.ExecuteBySql(sql);
  707. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  708. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  709. db.ExecuteBySql(sql2);
  710. }
  711. }
  712. else
  713. {
  714. var keyValueArr = keyValue.Split(',');
  715. foreach (var item in keyValueArr)
  716. {
  717. var sql = $"UPDATE StuInfoBasic SET ReturnBooksStatus='{status}',ReturnBooksDate=null WHERE StuId='{item}'";
  718. db.ExecuteBySql(sql);
  719. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  720. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  721. db.ExecuteBySql(sql2);
  722. }
  723. }
  724. db.Commit();
  725. }
  726. catch (Exception ex)
  727. {
  728. db.Rollback();
  729. if (ex is ExceptionEx)
  730. {
  731. throw;
  732. }
  733. else
  734. {
  735. throw ExceptionEx.ThrowServiceException(ex);
  736. }
  737. }
  738. }
  739. /// <summary>
  740. /// 就业协议备案
  741. /// <param name="keyValue">主键</param>
  742. /// <summary>
  743. /// <returns></returns>
  744. public void IsEmployAgree(string keyValue, string status)
  745. {
  746. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  747. try
  748. {
  749. if (status == "1")//备案
  750. {
  751. var now = DateTime.Now;
  752. var keyValueArr = keyValue.Split(',');
  753. foreach (var item in keyValueArr)
  754. {
  755. var sql = $"UPDATE StuInfoBasic SET EmployAgreeStatus='{status}',EmployAgreeDate='{now}' WHERE StuId='{item}'";
  756. db.ExecuteBySql(sql);
  757. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  758. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  759. db.ExecuteBySql(sql2);
  760. }
  761. }
  762. else
  763. {
  764. var keyValueArr = keyValue.Split(',');
  765. foreach (var item in keyValueArr)
  766. {
  767. var sql = $"UPDATE StuInfoBasic SET EmployAgreeStatus='{status}',EmployAgreeDate=null WHERE StuId='{item}'";
  768. db.ExecuteBySql(sql);
  769. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  770. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  771. db.ExecuteBySql(sql2);
  772. }
  773. }
  774. db.Commit();
  775. }
  776. catch (Exception ex)
  777. {
  778. db.Rollback();
  779. if (ex is ExceptionEx)
  780. {
  781. throw;
  782. }
  783. else
  784. {
  785. throw ExceptionEx.ThrowServiceException(ex);
  786. }
  787. }
  788. }
  789. /// <summary>
  790. /// 学杂费结算
  791. /// <param name="keyValue">主键</param>
  792. /// <summary>
  793. /// <returns></returns>
  794. public void IsFeeSettle(string keyValue, string status)
  795. {
  796. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  797. try
  798. {
  799. if (status == "1")//结算
  800. {
  801. var now = DateTime.Now;
  802. var keyValueArr = keyValue.Split(',');
  803. foreach (var item in keyValueArr)
  804. {
  805. var sql = $"UPDATE StuInfoBasic SET FeeSettleStatus='{status}',FeeSettleDate='{now}' WHERE StuId='{item}'";
  806. db.ExecuteBySql(sql);
  807. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  808. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  809. db.ExecuteBySql(sql2);
  810. }
  811. }
  812. else
  813. {
  814. var keyValueArr = keyValue.Split(',');
  815. foreach (var item in keyValueArr)
  816. {
  817. var sql = $"UPDATE StuInfoBasic SET FeeSettleStatus='{status}',FeeSettleDate=null WHERE StuId='{item}'";
  818. db.ExecuteBySql(sql);
  819. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  820. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  821. db.ExecuteBySql(sql2);
  822. }
  823. }
  824. db.Commit();
  825. }
  826. catch (Exception ex)
  827. {
  828. db.Rollback();
  829. if (ex is ExceptionEx)
  830. {
  831. throw;
  832. }
  833. else
  834. {
  835. throw ExceptionEx.ThrowServiceException(ex);
  836. }
  837. }
  838. }
  839. /// <summary>
  840. /// 办理退住手续
  841. /// <param name="keyValue">主键</param>
  842. /// <summary>
  843. /// <returns></returns>
  844. public void IsCheckOut(string keyValue, string status)
  845. {
  846. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  847. try
  848. {
  849. if (status == "1")//办理
  850. {
  851. var now = DateTime.Now;
  852. var keyValueArr = keyValue.Split(',');
  853. foreach (var item in keyValueArr)
  854. {
  855. var sql = $"UPDATE StuInfoBasic SET CheckOutStatus='{status}',CheckOutDate='{now}' WHERE StuId='{item}'";
  856. db.ExecuteBySql(sql);
  857. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  858. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  859. db.ExecuteBySql(sql2);
  860. }
  861. }
  862. else
  863. {
  864. var keyValueArr = keyValue.Split(',');
  865. foreach (var item in keyValueArr)
  866. {
  867. var sql = $"UPDATE StuInfoBasic SET CheckOutStatus='{status}',CheckOutDate=null WHERE StuId='{item}'";
  868. db.ExecuteBySql(sql);
  869. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  870. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  871. db.ExecuteBySql(sql2);
  872. }
  873. }
  874. db.Commit();
  875. }
  876. catch (Exception ex)
  877. {
  878. db.Rollback();
  879. if (ex is ExceptionEx)
  880. {
  881. throw;
  882. }
  883. else
  884. {
  885. throw ExceptionEx.ThrowServiceException(ex);
  886. }
  887. }
  888. }
  889. /// <summary>
  890. /// 校园卡注销
  891. /// <param name="keyValue">主键</param>
  892. /// <summary>
  893. /// <returns></returns>
  894. public void IsCardDeregistrate(string keyValue, string status)
  895. {
  896. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  897. try
  898. {
  899. if (status == "1")//注销
  900. {
  901. var now = DateTime.Now;
  902. var keyValueArr = keyValue.Split(',');
  903. foreach (var item in keyValueArr)
  904. {
  905. var sql = $"UPDATE StuInfoBasic SET CardDeregistrateStatus='{status}',CardDeregistrateDate='{now}' WHERE StuId='{item}'";
  906. db.ExecuteBySql(sql);
  907. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  908. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus='1' and TissueStatus='1' ";
  909. db.ExecuteBySql(sql2);
  910. }
  911. }
  912. else
  913. {
  914. var keyValueArr = keyValue.Split(',');
  915. foreach (var item in keyValueArr)
  916. {
  917. var sql = $"UPDATE StuInfoBasic SET CardDeregistrateStatus='{status}',CardDeregistrateDate=null WHERE StuId='{item}'";
  918. db.ExecuteBySql(sql);
  919. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  920. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  921. db.ExecuteBySql(sql2);
  922. }
  923. }
  924. db.Commit();
  925. }
  926. catch (Exception ex)
  927. {
  928. db.Rollback();
  929. if (ex is ExceptionEx)
  930. {
  931. throw;
  932. }
  933. else
  934. {
  935. throw ExceptionEx.ThrowServiceException(ex);
  936. }
  937. }
  938. }
  939. /// <summary>
  940. /// 档案与组织关系转出
  941. /// <param name="keyValue">主键</param>
  942. /// <summary>
  943. /// <returns></returns>
  944. public void IsFileTransfer(string keyValue, string status, string fort)
  945. {
  946. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  947. try
  948. {
  949. if (status == "1")//转出
  950. {
  951. var now = DateTime.Now;
  952. var keyValueArr = keyValue.Split(',');
  953. foreach (var item in keyValueArr)
  954. {
  955. if (fort == "0")
  956. {
  957. //档案
  958. var sql = $"UPDATE StuInfoBasic SET FileTransferStatus='{status}',FileTransferDate='{now}' WHERE StuId='{item}'";
  959. db.ExecuteBySql(sql);
  960. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  961. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and TissueStatus='1'";
  962. db.ExecuteBySql(sql2);
  963. }
  964. else
  965. {
  966. //组织
  967. var sql1 = $"UPDATE StuInfoBasic SET TissueStatus='{status}',TissueDate='{now}' WHERE StuId='{item}'";
  968. db.ExecuteBySql(sql1);
  969. //判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  970. var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' and FileTransferStatus= '1'";
  971. db.ExecuteBySql(sql2);
  972. }
  973. ////判断离校手续是否全办完 且 毕业状态为准许毕业,若同时满足则修改毕业状态为已毕业和毕业时间;
  974. //var sql2 = $"update StuInfoBasic set FinishSchoolMark='2',FinishSchoolDate='{now}' where StuId='{item}' and FinishSchoolMark='1' and ReturnBooksStatus='1' and EmployAgreeStatus='1' and FeeSettleStatus='1' and CheckOutStatus='1' and CardDeregistrateStatus='1' and DiplomaReceiveStatus='1' ";
  975. //db.ExecuteBySql(sql2);
  976. }
  977. }
  978. else
  979. {
  980. var keyValueArr = keyValue.Split(',');
  981. foreach (var item in keyValueArr)
  982. {
  983. if (fort == "0")
  984. {
  985. var sql = $"UPDATE StuInfoBasic SET FileTransferStatus='{status}',FileTransferDate=null WHERE StuId='{item}'";
  986. db.ExecuteBySql(sql);
  987. }
  988. else
  989. {
  990. var sql1 = $"UPDATE StuInfoBasic SET TissueStatus='{status}',TissueDate=null WHERE StuId='{item}'";
  991. db.ExecuteBySql(sql1);
  992. }
  993. //判断毕业状态是否为已毕业,若是,则毕业状态修改为准许毕业,毕业时间为空;
  994. var sql2 = $"UPDATE StuInfoBasic SET FinishSchoolMark='1',FinishSchoolDate=null WHERE StuId='{item}' and FinishSchoolMark='2' ";
  995. db.ExecuteBySql(sql2);
  996. }
  997. }
  998. db.Commit();
  999. }
  1000. catch (Exception ex)
  1001. {
  1002. db.Rollback();
  1003. if (ex is ExceptionEx)
  1004. {
  1005. throw;
  1006. }
  1007. else
  1008. {
  1009. throw ExceptionEx.ThrowServiceException(ex);
  1010. }
  1011. }
  1012. }
  1013. /// <summary>
  1014. /// 毕业生归档
  1015. /// <summary>
  1016. /// <returns></returns>
  1017. public void StuStore()
  1018. {
  1019. /*
  1020. 1.毕业生归档必须在6-8月份进行; <br>
  1021. 2.归档后的学生信息如:操行、奖惩、成绩、毕业证书等只有通过毕业生信息管理才能查询或打印;<br>
  1022. 3.毕业学生的账户将自动取消;<br>
  1023. 4.学生所占的床位也将自动退掉;<br>
  1024. 5.学生所在的班级置为已毕业班级;<br>
  1025. 6.归档操作后不可撤消,请谨慎操作!
  1026. */
  1027. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  1028. var adb = this.BaseRepository().BeginTrans();
  1029. try
  1030. {
  1031. //归档前提为毕业标志为2(已毕业)的学生
  1032. var stuInfos = db.FindList<StuInfoBasicEntity>(a => a.FinishSchoolMark == "2");
  1033. foreach (var item in stuInfos)
  1034. {
  1035. //var StuInfoType = typeof(StuInfoBasicEntity);
  1036. //var PropertyInfoStuInfo = StuInfoType.GetProperties();
  1037. //var GraduateEntity = new StuInfoGraduateEntity();
  1038. //var typegraduate = typeof(StuInfoGraduateEntity);
  1039. //var PropertyInfoGraduate = typegraduate.GetProperties();
  1040. //foreach (var itemStuInfo in PropertyInfoStuInfo)
  1041. //{
  1042. // var objStuInfoType = itemStuInfo.GetValue(StuInfoType);
  1043. // foreach (var itemGraduate in PropertyInfoGraduate)
  1044. // {
  1045. // if (itemGraduate.Name == itemStuInfo.Name)
  1046. // {
  1047. // itemGraduate.SetValue(GraduateEntity, objStuInfoType, null);
  1048. // }
  1049. // }
  1050. //}
  1051. var accountInfo = adb.FindEntity<UserEntity>(a => a.F_Account == item.StuNo);
  1052. if (accountInfo != null)
  1053. {
  1054. //删除账户
  1055. adb.Delete(accountInfo);
  1056. }
  1057. //清空宿舍信息
  1058. var dormitory = db.FindEntity<Acc_DormitoryBuildEntity>(a => a.StudentID == item.StuNo);
  1059. if (dormitory != null)
  1060. {
  1061. dormitory.StudentID = "";
  1062. dormitory.StuName = "";
  1063. db.Update(dormitory);
  1064. //宿舍上一级房间,入住人数-1
  1065. var room = db.FindEntity<Acc_DormitoryBuildEntity>(x => x.ID == dormitory.ParentID);
  1066. if (room != null)
  1067. {
  1068. if (room.CheckInStu.HasValue && room.CheckInStu.Value > 0)
  1069. {
  1070. room.CheckInStu--;
  1071. db.Update(room);
  1072. }
  1073. }
  1074. }
  1075. //班级置为已毕业班级
  1076. var classInfo = db.FindEntity<ClassInfoEntity>(x => x.ClassNo == item.ClassNo);
  1077. if (classInfo != null && classInfo.ClassStatus != "1")
  1078. {
  1079. classInfo.ClassStatus = "1";
  1080. db.Update(classInfo);
  1081. }
  1082. //删除学籍表信息
  1083. db.Delete(item);
  1084. //增加学生毕业表信息
  1085. var addSql = $"insert into StuInfoGraduate select * from StuInfoBasic where StuId='{item.StuId}'";
  1086. db.ExecuteBySql(addSql);
  1087. //db.Insert(GraduateEntity);
  1088. }
  1089. db.Commit();
  1090. adb.Commit();
  1091. }
  1092. catch (Exception ex)
  1093. {
  1094. db.Rollback();
  1095. adb.Rollback();
  1096. if (ex is ExceptionEx)
  1097. {
  1098. throw;
  1099. }
  1100. else
  1101. {
  1102. throw ExceptionEx.ThrowServiceException(ex);
  1103. }
  1104. }
  1105. }
  1106. /// <summary>
  1107. /// 保存实体数据(新增、修改)
  1108. /// <param name="keyValue">主键</param>
  1109. /// <summary>
  1110. /// <returns></returns>
  1111. public void SaveEntity(string keyValue, StuInfoBasicEntity entity)
  1112. {
  1113. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  1114. try
  1115. {
  1116. UserIBLL userIBLL = new UserBLL();
  1117. var loginUser = LoginUserInfo.Get();
  1118. if (!string.IsNullOrEmpty(keyValue))
  1119. {
  1120. entity.Modify(keyValue);
  1121. var oldEntity = this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(keyValue);
  1122. List<StuInfoBasic_ChangeLogEntity> list = new List<StuInfoBasic_ChangeLogEntity>();
  1123. var tableInfos = this.BaseRepository("CollegeMIS").FindTable(@"SELECT t.[name] AS 表名,c.[name] AS 字段名,cast(ep.[value]
  1124. as varchar(100)) AS [字段说明]
  1125. FROM sys.tables AS t
  1126. INNER JOIN sys.columns
  1127. AS c ON t.object_id = c.object_id
  1128. LEFT JOIN sys.extended_properties AS ep
  1129. ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE ep.class =1
  1130. AND t.name='StuInfoBasic'");
  1131. PropertyInfo[] properties = oldEntity.GetType().GetProperties();
  1132. foreach (System.Reflection.PropertyInfo item in properties)
  1133. {
  1134. string name = item.Name;
  1135. object oldValue = item.GetValue(oldEntity);
  1136. object newValue = item.GetValue(entity);
  1137. if (oldValue == null || newValue == null)
  1138. {
  1139. continue;
  1140. }
  1141. if (!oldValue.Equals(newValue))
  1142. {
  1143. var columnName = "";
  1144. foreach (DataRow rows in tableInfos.Rows)
  1145. {
  1146. if (rows["字段名"].ToString() == item.Name)
  1147. {
  1148. columnName = rows["字段说明"].ToString();
  1149. }
  1150. }
  1151. var changeEntity = new StuInfoBasic_ChangeLogEntity
  1152. {
  1153. StuID = keyValue,
  1154. BeforeChange = oldValue.ToString(),
  1155. AfterChange = newValue.ToString(),
  1156. FieldName = columnName,
  1157. UpdateBy = loginUser.userId,
  1158. UpdateTime = DateTime.Now,
  1159. StuChangeType = "09",
  1160. StuChangeRemark = "点击学籍信息管理-修改按钮进行操作"
  1161. };
  1162. changeEntity.Create();
  1163. list.Add(changeEntity);
  1164. }
  1165. }
  1166. if (list.Count > 0)
  1167. {
  1168. db.Insert(list);
  1169. }
  1170. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == entity.Photo);
  1171. var url = "";
  1172. if (annexesFileEntity != null)
  1173. {
  1174. url = annexesFileEntity.F_FilePath;
  1175. url = "/" + url.Substring(url.IndexOf("Resource"), url.Length - url.IndexOf("Resource"));
  1176. }
  1177. var baseUser = userIBLL.GetEntityByAccount(entity.StuNo);
  1178. if (baseUser != null)
  1179. {
  1180. baseUser.F_HeadIcon = url;
  1181. userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
  1182. }
  1183. db.Update(entity);
  1184. }
  1185. else
  1186. {
  1187. entity.Create();
  1188. if (entity.IsTran == "0")//转入/进
  1189. {
  1190. //学籍异动日志表
  1191. var changeEntity = new StuInfoBasic_ChangeLogEntity
  1192. {
  1193. StuID = entity.StuId,
  1194. BeforeChange = null,
  1195. AfterChange = entity.StuId,
  1196. FieldName = "学籍表主键",
  1197. UpdateBy = loginUser.userId,
  1198. UpdateTime = DateTime.Now,
  1199. StuChangeType = "04",
  1200. StuChangeRemark = "点击学籍信息管理-异动转入按钮进行操作"
  1201. };
  1202. changeEntity.Create();
  1203. db.Insert(changeEntity);
  1204. }
  1205. db.Insert(entity);
  1206. }
  1207. db.Commit();
  1208. }
  1209. catch (Exception ex)
  1210. {
  1211. db.Rollback();
  1212. if (ex is ExceptionEx)
  1213. {
  1214. throw;
  1215. }
  1216. else
  1217. {
  1218. throw ExceptionEx.ThrowServiceException(ex);
  1219. }
  1220. }
  1221. }
  1222. #endregion
  1223. public class TableInfo
  1224. {
  1225. public string TableName { get; set; }
  1226. public string ColumnName { get; set; }
  1227. public string ColumnDescription { get; set; }
  1228. }
  1229. public void GenerateAccout()
  1230. {
  1231. UserRelationIBLL userRelationIBLL = new UserRelationBLL();
  1232. UserIBLL userIBLL = new UserBLL();
  1233. try
  1234. {
  1235. var stuInfoBasicEntities = BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(m => m.CheckMark != "0");
  1236. var alluserlist = userIBLL.GetAllList().Where(m => m.F_Description == "学生");
  1237. var roleId = Config.GetValue("GenerateStudentsRoleId");
  1238. var defaultpwd = Config.GetValue("defaultpwd");
  1239. //读取默认密码配置中已启用的密码
  1240. var Sys_DefaultPwdConfigEntity = this.BaseRepository().FindEntity<Sys_DefaultPwdConfigEntity>(x => x.IsEnabled == true);
  1241. if (Sys_DefaultPwdConfigEntity != null)
  1242. {
  1243. defaultpwd = Sys_DefaultPwdConfigEntity.Pwd;
  1244. }
  1245. var studentList = new List<UserEntity>();
  1246. foreach (var tEntity in stuInfoBasicEntities)
  1247. {
  1248. if (alluserlist.Count(m => m.F_Account == tEntity.StuNo) > 0)
  1249. {
  1250. continue;
  1251. }
  1252. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == tEntity.Photo);
  1253. var url = "";
  1254. if (annexesFileEntity != null)
  1255. {
  1256. url = annexesFileEntity.F_FilePath;
  1257. url = "/" + url.Substring(url.IndexOf("Resource"));
  1258. }
  1259. UserEntity userbase = new UserEntity();
  1260. userbase.F_Account = tEntity.StuNo;
  1261. userbase.F_RealName = tEntity.StuName;
  1262. userbase.F_EnCode = tEntity.StuNo;
  1263. userbase.F_Password = Md5Helper.Encrypt(defaultpwd, 32).ToLower();
  1264. userbase.F_HeadIcon = string.IsNullOrEmpty(url) ? Config.GetValue("defaultheadimg") : url;
  1265. userbase.F_Gender = tEntity.GenderNo.HasValue ? Convert.ToInt32(tEntity.GenderNo.Value) : 1;
  1266. userbase.F_DeleteMark = 0;
  1267. userbase.F_EnabledMark = 1;
  1268. userbase.F_Mobile = tEntity.mobile;
  1269. userbase.F_Description = "学生";
  1270. userbase.F_CompanyId = tEntity.F_SchoolId;
  1271. userbase.F_DepartmentId = tEntity.DeptNo;
  1272. userbase.F_IdentityCardNo = tEntity.IdentityCardNo;
  1273. userIBLL.SaveEntity(null, userbase);
  1274. studentList.Add(userbase);
  1275. }
  1276. if (studentList.Any())
  1277. {
  1278. string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
  1279. userRelationIBLL.SaveEntityList2(roleId, 1, s);
  1280. }
  1281. }
  1282. catch (Exception ex)
  1283. {
  1284. if (ex is ExceptionEx)
  1285. {
  1286. throw;
  1287. }
  1288. else
  1289. {
  1290. throw ExceptionEx.ThrowServiceException(ex);
  1291. }
  1292. }
  1293. }
  1294. public void UpdateAccount()
  1295. {
  1296. try
  1297. {
  1298. UserIBLL userIBLL = new UserBLL();
  1299. var teacherList = this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>();
  1300. var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "学生");
  1301. foreach (var baseTeacher in baseTeacherList)
  1302. {
  1303. var num = 0;
  1304. var teacher = teacherList.FirstOrDefault(a => a.StuNo == baseTeacher.F_Account);
  1305. if (teacher != null)
  1306. {
  1307. if (baseTeacher.F_RealName != teacher.StuName)
  1308. {
  1309. baseTeacher.F_RealName = teacher.StuName;
  1310. num++;
  1311. }
  1312. if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
  1313. {
  1314. baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
  1315. num++;
  1316. }
  1317. if (baseTeacher.F_Mobile != teacher.mobile)
  1318. {
  1319. baseTeacher.F_Mobile = teacher.mobile;
  1320. num++;
  1321. }
  1322. if (baseTeacher.F_CompanyId != teacher.F_SchoolId)
  1323. {
  1324. baseTeacher.F_CompanyId = teacher.F_SchoolId;
  1325. num++;
  1326. }
  1327. if (baseTeacher.F_DepartmentId != teacher.DeptNo)
  1328. {
  1329. baseTeacher.F_DepartmentId = teacher.DeptNo;
  1330. num++;
  1331. }
  1332. if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
  1333. {
  1334. baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
  1335. num++;
  1336. }
  1337. if (num > 0)
  1338. {
  1339. userIBLL.UpdateEntity(baseTeacher);
  1340. }
  1341. }
  1342. }
  1343. }
  1344. catch (Exception ex)
  1345. {
  1346. if (ex is ExceptionEx)
  1347. {
  1348. throw;
  1349. }
  1350. else
  1351. {
  1352. throw ExceptionEx.ThrowServiceException(ex);
  1353. }
  1354. }
  1355. }
  1356. public void UpdateState(string keyValue, string state)
  1357. {
  1358. var db = this.BaseRepository().BeginTrans();
  1359. try
  1360. {
  1361. var keyValueArr = keyValue.Split(',');
  1362. foreach (var item in keyValueArr)
  1363. {
  1364. var StuNo = this.BaseRepository("CollegeMIS").FindEntity<StuInfoBasicEntity>(item).StuNo;
  1365. if (!StuNo.IsEmpty())
  1366. {
  1367. if (state == "1")
  1368. {
  1369. db.ExecuteBySql("update LR_Base_User set F_EnabledMark=1 where F_EnCode='" + StuNo + "'");
  1370. }
  1371. else
  1372. {
  1373. db.ExecuteBySql("update LR_Base_User set F_EnabledMark=0 where F_EnCode='" + StuNo + "'");
  1374. }
  1375. }
  1376. }
  1377. db.Commit();
  1378. }
  1379. catch (Exception ex)
  1380. {
  1381. db.Rollback();
  1382. if (ex is ExceptionEx)
  1383. {
  1384. throw;
  1385. }
  1386. else
  1387. {
  1388. throw ExceptionEx.ThrowServiceException(ex);
  1389. }
  1390. }
  1391. }
  1392. public IEnumerable<StuInfoBasicEntity> GetAllList()
  1393. {
  1394. try
  1395. {
  1396. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(m => m.CheckMark == "1");
  1397. }
  1398. catch (Exception ex)
  1399. {
  1400. if (ex is ExceptionEx)
  1401. {
  1402. throw;
  1403. }
  1404. else
  1405. {
  1406. throw ExceptionEx.ThrowServiceException(ex);
  1407. }
  1408. }
  1409. }
  1410. /// <summary>
  1411. /// 班级不看学籍异动
  1412. /// </summary>
  1413. /// <param name="ChangeType"></param>
  1414. /// <returns></returns>
  1415. public IEnumerable<StuInfoBasicEntity> GetAllList(string ChangeType)
  1416. {
  1417. try
  1418. {
  1419. StringBuilder sb = new StringBuilder();
  1420. sb.Append(@"select * from StuInfoBasic
  1421. where stuNo not in (select Stuno from StuInfoBasicChange where StuChangeType in ('02', '05', '06'))");
  1422. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(sb.ToString());
  1423. }
  1424. catch (Exception ex)
  1425. {
  1426. if (ex is ExceptionEx)
  1427. {
  1428. throw;
  1429. }
  1430. else
  1431. {
  1432. throw ExceptionEx.ThrowServiceException(ex);
  1433. }
  1434. }
  1435. }
  1436. public IEnumerable<StuInfoBasicEntity> GetStuInfoByClassNo(string classNo)
  1437. {
  1438. try
  1439. {
  1440. return this.BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(m => m.CheckMark == "1" && m.ClassNo == classNo);
  1441. }
  1442. catch (Exception ex)
  1443. {
  1444. if (ex is ExceptionEx)
  1445. {
  1446. throw;
  1447. }
  1448. else
  1449. {
  1450. throw ExceptionEx.ThrowServiceException(ex);
  1451. }
  1452. }
  1453. }
  1454. }
  1455. }