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.
 
 
 
 
 
 

721 lines
22 KiB

  1. using System;
  2. using Learun.Util;
  3. using System.Data;
  4. using Learun.Application.TwoDevelopment.EducationalAdministration;
  5. using System.Web.Mvc;
  6. using System.Collections.Generic;
  7. using System.IO;
  8. using System.Linq;
  9. using Learun.Application.Base.SystemModule;
  10. using static Learun.Application.TwoDevelopment.EducationalAdministration.StuInfoBasicEntity;
  11. namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
  12. {
  13. /// <summary>
  14. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  15. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  16. /// 创 建:超级管理员
  17. /// 日 期:2019-02-21 16:53
  18. /// 描 述:学生学籍
  19. /// </summary>
  20. public class StuInfoBasicController : MvcControllerBase
  21. {
  22. private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
  23. private ArrangeLessonSyncIBLL arrangeLessonSyncIBLL = new ArrangeLessonSyncBLL();
  24. private AnnexesFileIBLL annexesFileIbll = new AnnexesFileBLL();
  25. private StuEncourgementIBLL stuEncourgementIBLL = new StuEncourgementBLL();
  26. private StuPunishmentIBLL stuPunishmentIBLL = new StuPunishmentBLL();
  27. private StuScoreIBLL stuScoreIBLL = new StuScoreBLL();
  28. #region 视图功能
  29. /// <summary>
  30. /// 主页面
  31. /// <summary>
  32. /// <returns></returns>
  33. [HttpGet]
  34. public ActionResult Index()
  35. {
  36. return View();
  37. }
  38. /// <summary>
  39. /// 银行
  40. /// <summary>
  41. /// <returns></returns>
  42. [HttpGet]
  43. public ActionResult IndexBank()
  44. {
  45. return View("Index");
  46. }
  47. /// <summary>
  48. /// 主页面【大厂】
  49. /// <summary>
  50. /// <returns></returns>
  51. [HttpGet]
  52. public ActionResult IndexOfDC()
  53. {
  54. return View();
  55. }
  56. /// <summary>
  57. /// 表单页
  58. /// <summary>
  59. /// <returns></returns>
  60. [HttpGet]
  61. public ActionResult Form()
  62. {
  63. return View();
  64. }
  65. /// <summary>
  66. /// 表单页【大厂】
  67. /// <summary>
  68. /// <returns></returns>
  69. [HttpGet]
  70. public ActionResult FormOfDC()
  71. {
  72. return View();
  73. }
  74. [HttpGet]
  75. public ActionResult FormView()
  76. {
  77. return View();
  78. }
  79. [HttpGet]
  80. public ActionResult MyClass()
  81. {
  82. return View();
  83. }
  84. [HttpGet]
  85. public ActionResult CreateGraduateNo()
  86. {
  87. return View();
  88. }
  89. [HttpGet]
  90. public ActionResult Graduate()
  91. {
  92. return View();
  93. }
  94. [HttpGet]
  95. public ActionResult CreateGraduateNoForm()
  96. {
  97. return View();
  98. }
  99. /// <summary>
  100. /// 学生列表【班级信息管理】
  101. /// <summary>
  102. /// <returns></returns>
  103. [HttpGet]
  104. public ActionResult IndexInClass()
  105. {
  106. return View();
  107. }
  108. /// <summary>
  109. /// 打印
  110. /// <summary>
  111. /// <returns></returns>
  112. [HttpGet]
  113. public ActionResult Print(string keyValue)
  114. {
  115. var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  116. if (stuInfoBasicEntity == null)
  117. {
  118. return View(new StuInfoBasicEntity());
  119. }
  120. //头像
  121. stuInfoBasicEntity.Photo = annexesFileIbll.GetEntityByFolderId(stuInfoBasicEntity.Photo)?.F_FilePath;
  122. if (!string.IsNullOrEmpty(stuInfoBasicEntity.Photo))
  123. {
  124. stuInfoBasicEntity.Photo = stuInfoBasicEntity.Photo.Substring(stuInfoBasicEntity.Photo.IndexOf("Resource") - 1);
  125. }
  126. //奖罚情况
  127. stuInfoBasicEntity.StuEncourgementList = stuEncourgementIBLL.GetEncourgementListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList();
  128. stuInfoBasicEntity.StuPunishmentList = stuPunishmentIBLL.GetPunishmentListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList();
  129. //学习成绩
  130. stuInfoBasicEntity.StuScoreClassOneList = stuScoreIBLL.GetAllScoreListByStuNo(stuInfoBasicEntity.StuNo)
  131. .Where(x => x.AcademicYearNo != null && x.Semester != null && x.Score != null)
  132. .GroupBy(x => new { x.AcademicYearNo, x.Semester })
  133. .Select(x => new StuScoreClassOne()
  134. {
  135. AcademicYearNo = x.Key.AcademicYearNo,
  136. Semester = x.Key.Semester,
  137. StuScoreList = x.Select(y => new StuScoreEntity()
  138. {
  139. LessonNo = y.LessonNo,
  140. LessonName = y.LessonName,
  141. Score = y.Score
  142. }).OrderBy(xx => xx.LessonNo).ToList()
  143. }).OrderBy(xx => xx.AcademicYearNo).ThenBy(xx => xx.Semester).ToList();
  144. return View(stuInfoBasicEntity);
  145. }
  146. /// <summary>
  147. /// 离校手续-图书资料归还
  148. /// </summary>
  149. /// <returns></returns>
  150. [HttpGet]
  151. public ActionResult GraduateReturnBooks()
  152. {
  153. return View();
  154. }
  155. /// <summary>
  156. /// 离校手续-就业协议备案
  157. /// </summary>
  158. /// <returns></returns>
  159. [HttpGet]
  160. public ActionResult GraduateEmployAgree()
  161. {
  162. return View();
  163. }
  164. /// <summary>
  165. /// 离校手续-学杂费结算
  166. /// </summary>
  167. /// <returns></returns>
  168. [HttpGet]
  169. public ActionResult GraduateFeeSettle()
  170. {
  171. return View();
  172. }
  173. /// <summary>
  174. /// 离校手续-办理退住手续
  175. /// </summary>
  176. /// <returns></returns>
  177. [HttpGet]
  178. public ActionResult GraduateCheckOut()
  179. {
  180. return View();
  181. }
  182. /// <summary>
  183. /// 离校手续-校园卡注销
  184. /// </summary>
  185. /// <returns></returns>
  186. [HttpGet]
  187. public ActionResult GraduateCardDeregistrate()
  188. {
  189. return View();
  190. }
  191. /// <summary>
  192. /// 离校手续-毕业证领取
  193. /// </summary>
  194. /// <returns></returns>
  195. [HttpGet]
  196. public ActionResult GraduateDiplomaReceive()
  197. {
  198. return View();
  199. }
  200. /// <summary>
  201. /// 离校手续-档案与组织关系转出
  202. /// </summary>
  203. /// <returns></returns>
  204. [HttpGet]
  205. public ActionResult GraduateFileTransfer()
  206. {
  207. return View();
  208. }
  209. /// <summary>
  210. /// 毕业证领取表单
  211. /// </summary>
  212. /// <returns></returns>
  213. public ActionResult GraduateDiplomaReceiveForm()
  214. {
  215. return View();
  216. }
  217. #endregion
  218. #region 获取数据
  219. /// <summary>
  220. /// 生成帐号
  221. /// </summary>
  222. /// <returns></returns>
  223. [HttpPost]
  224. [AjaxOnly]
  225. public ActionResult Generate()
  226. {
  227. stuInfoBasicIBLL.GenerateAccout();
  228. return Success("生成成功!");
  229. }
  230. [HttpPost]
  231. [AjaxOnly]
  232. public ActionResult UpdateAccount()
  233. {
  234. stuInfoBasicIBLL.UpdateAccount();
  235. return Success("更新成功!");
  236. }
  237. /// <summary>
  238. /// 获取页面显示列表数据
  239. /// <summary>
  240. /// <param name="queryJson">查询参数</param>
  241. /// <returns></returns>
  242. [HttpGet]
  243. [AjaxOnly]
  244. public ActionResult GetPageList(string pagination, string queryJson)
  245. {
  246. Pagination paginationobj = pagination.ToObject<Pagination>();
  247. var data = stuInfoBasicIBLL.GetPageList(paginationobj, queryJson);
  248. var jsonData = new
  249. {
  250. rows = data,
  251. total = paginationobj.total,
  252. page = paginationobj.page,
  253. records = paginationobj.records
  254. };
  255. return Success(jsonData);
  256. }
  257. /// <summary>
  258. /// 获取页面显示列表数据
  259. /// <summary>
  260. /// <returns></returns>
  261. [HttpGet]
  262. [AjaxOnly]
  263. public ActionResult GetAllList()
  264. {
  265. var data = stuInfoBasicIBLL.GetAllList();
  266. return Success(data);
  267. }
  268. /// <summary>
  269. /// 获取表单数据
  270. /// <summary>
  271. /// <returns></returns>
  272. [HttpGet]
  273. [AjaxOnly]
  274. public ActionResult GetFormData(string keyValue)
  275. {
  276. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  277. var jsonData = new
  278. {
  279. StuInfoBasic = StuInfoBasicData,
  280. };
  281. return Success(jsonData);
  282. }
  283. /// <summary>
  284. /// 获取毕业学生的专业
  285. /// </summary>
  286. /// <returns></returns>
  287. [HttpGet]
  288. [AjaxOnly]
  289. public ActionResult GetMajorInfoWithGraduation()
  290. {
  291. var data = stuInfoBasicIBLL.GetMajorInfoWithGraduation();
  292. return Success(data);
  293. }
  294. /// <summary>
  295. /// 根据帐号获取学生的信息
  296. /// </summary>
  297. /// <param name="Account"></param>
  298. /// <returns></returns>
  299. [HttpGet]
  300. [AjaxOnly]
  301. public ActionResult GetStuInfo(string Account)
  302. {
  303. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(Account);
  304. if (stuInfo != null)
  305. {
  306. return JsonResult(stuInfo);
  307. }
  308. else
  309. {
  310. return Fail("学生不存在");
  311. }
  312. }
  313. /// <summary>
  314. /// 根据帐号获取学生的信息
  315. /// </summary>
  316. /// <param name="ClassNo">班级码</param>
  317. /// <returns></returns>
  318. [HttpGet]
  319. [AjaxOnly]
  320. public ActionResult GetStuInfoByClassNo(string ClassNo)
  321. {
  322. var stuInfo = stuInfoBasicIBLL.GetStuInfoByClassNo(ClassNo);
  323. return Success(stuInfo);
  324. }
  325. /// <summary>
  326. /// 根据帐号获取学生的信息
  327. /// </summary>
  328. /// <param name="Account"></param>
  329. /// <returns></returns>
  330. [HttpGet]
  331. [AjaxOnly]
  332. public ActionResult GetStuInfoBasicEntityByStuName(string name)
  333. {
  334. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuName(name);
  335. return Success(stuInfo);
  336. }
  337. /// <summary>
  338. /// 获取左侧树形数据
  339. /// <summary>
  340. /// <returns></returns>
  341. [HttpGet]
  342. [AjaxOnly]
  343. public ActionResult GetTree()
  344. {
  345. var data = stuInfoBasicIBLL.GetTree();
  346. return Success(data);
  347. }
  348. #endregion
  349. #region 提交数据
  350. /// <summary>
  351. /// 领取毕业证
  352. /// </summary>
  353. /// <param name="keyValue">学生id</param>
  354. /// <returns></returns>
  355. [HttpPost]
  356. [AjaxOnly]
  357. public ActionResult GetCard(string keyValue, string status, string strEntity)
  358. {
  359. if (status == "1")//领取
  360. {
  361. StuInfoBasicEntity entity = strEntity.ToObject<StuInfoBasicEntity>();
  362. stuInfoBasicIBLL.GetCard(keyValue, status, entity);
  363. }
  364. else//取消领取
  365. {
  366. stuInfoBasicIBLL.GetCard(keyValue, status, new StuInfoBasicEntity());
  367. }
  368. return Success("操作成功");
  369. }
  370. /// <summary>
  371. /// 图书资料归还
  372. /// </summary>
  373. /// <param name="keyValue">学生id</param>
  374. /// <returns></returns>
  375. [HttpPost]
  376. [AjaxOnly]
  377. public ActionResult IsReturnBooks(string keyValue, string status)
  378. {
  379. stuInfoBasicIBLL.IsReturnBooks(keyValue, status);
  380. return Success("操作成功");
  381. }
  382. /// <summary>
  383. /// 就业协议备案
  384. /// </summary>
  385. /// <param name="keyValue">学生id</param>
  386. /// <returns></returns>
  387. [HttpPost]
  388. [AjaxOnly]
  389. public ActionResult IsEmployAgree(string keyValue, string status)
  390. {
  391. stuInfoBasicIBLL.IsEmployAgree(keyValue, status);
  392. return Success("操作成功");
  393. }
  394. /// <summary>
  395. /// 学杂费结算
  396. /// </summary>
  397. /// <param name="keyValue">学生id</param>
  398. /// <returns></returns>
  399. [HttpPost]
  400. [AjaxOnly]
  401. public ActionResult IsFeeSettle(string keyValue, string status)
  402. {
  403. stuInfoBasicIBLL.IsFeeSettle(keyValue, status);
  404. return Success("操作成功");
  405. }
  406. /// <summary>
  407. /// 办理退住手续
  408. /// </summary>
  409. /// <param name="keyValue">学生id</param>
  410. /// <returns></returns>
  411. [HttpPost]
  412. [AjaxOnly]
  413. public ActionResult IsCheckOut(string keyValue, string status)
  414. {
  415. stuInfoBasicIBLL.IsCheckOut(keyValue, status);
  416. return Success("操作成功");
  417. }
  418. /// <summary>
  419. /// 校园卡注销
  420. /// </summary>
  421. /// <param name="keyValue">学生id</param>
  422. /// <returns></returns>
  423. [HttpPost]
  424. [AjaxOnly]
  425. public ActionResult IsCardDeregistrate(string keyValue, string status)
  426. {
  427. stuInfoBasicIBLL.IsCardDeregistrate(keyValue, status);
  428. return Success("操作成功");
  429. }
  430. /// <summary>
  431. /// 档案与组织关系转出
  432. /// </summary>
  433. /// <param name="keyValue">学生id</param>
  434. /// <returns></returns>
  435. [HttpPost]
  436. [AjaxOnly]
  437. public ActionResult IsFileTransfer(string keyValue, string status, string fort)
  438. {
  439. stuInfoBasicIBLL.IsFileTransfer(keyValue, status, fort);
  440. return Success("操作成功");
  441. }
  442. /// <summary>
  443. /// 学生毕业归档
  444. /// </summary>
  445. /// <param name="keyValue">学生id</param>
  446. /// <returns></returns>
  447. [HttpPost]
  448. [AjaxOnly]
  449. public ActionResult StuStore()
  450. {
  451. stuInfoBasicIBLL.StuStore();
  452. return Success("操作成功");
  453. }
  454. /// <summary>
  455. /// 删除实体数据
  456. /// <param name="keyValue">主键</param>
  457. /// <summary>
  458. /// <returns></returns>
  459. [HttpPost]
  460. [AjaxOnly]
  461. public ActionResult DeleteForm(string keyValue)
  462. {
  463. stuInfoBasicIBLL.DeleteEntity(keyValue);
  464. return Success("删除成功!");
  465. }
  466. /// <summary>
  467. /// 保存实体数据(新增、修改)
  468. /// <param name="keyValue">主键</param>
  469. /// <summary>
  470. /// <returns></returns>
  471. [HttpPost]
  472. [ValidateAntiForgeryToken]
  473. [AjaxOnly]
  474. public ActionResult SaveForm(string keyValue, string strEntity)
  475. {
  476. StuInfoBasicEntity entity = strEntity.ToObject<StuInfoBasicEntity>();
  477. entity.SyncFlag = false;
  478. var model = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(entity.StuNo);
  479. if (string.IsNullOrEmpty(keyValue))
  480. {
  481. if (model != null)
  482. {
  483. return Fail("学号已存在!");
  484. }
  485. }
  486. else
  487. {
  488. if (model != null && model.StuId != keyValue)
  489. {
  490. return Fail("学号已存在!");
  491. }
  492. entity.SyncFlag = true;
  493. //判断排课同步数据是否存在:若存在,清除同步数据;
  494. var arrangeLessonSyncList = arrangeLessonSyncIBLL.GetArrangeLessonSyncListByTableId(keyValue);
  495. if (arrangeLessonSyncList.Any())
  496. {
  497. arrangeLessonSyncIBLL.DeleteEntityByTableId(keyValue);
  498. }
  499. else
  500. {
  501. entity.SyncFlag = false;
  502. }
  503. }
  504. stuInfoBasicIBLL.SaveEntity(keyValue, entity);
  505. return Success("保存成功!");
  506. }
  507. [HttpPost]
  508. [AjaxOnly]
  509. public ActionResult CreateGraduateNoByMajor(string CityCode, string SchoolCode, string MajorList)
  510. {
  511. stuInfoBasicIBLL.CreateGraduateNoByMajor(CityCode, SchoolCode, MajorList);
  512. return Success("生成成功");
  513. }
  514. /// <summary>
  515. /// 按学号生成毕业证号
  516. /// </summary>
  517. /// <returns></returns>
  518. [HttpPost]
  519. [AjaxOnly]
  520. public ActionResult DoCreateGraduateNo()
  521. {
  522. stuInfoBasicIBLL.DoCreateGraduateNo();
  523. return Success("生成成功");
  524. }
  525. /// <summary>
  526. /// 审核
  527. /// <param name="keyValue">主键</param>
  528. /// <summary>
  529. /// <returns></returns>
  530. [HttpPost]
  531. [AjaxOnly]
  532. public ActionResult Check(string keyValue)
  533. {
  534. var keyValueArr = keyValue.Split(',');
  535. foreach (var item in keyValueArr)
  536. {
  537. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  538. if (StuInfoBasicData != null)
  539. {
  540. StuInfoBasicData.CheckMark = "1";
  541. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  542. }
  543. }
  544. return Success("审核成功!");
  545. }
  546. /// <summary>
  547. /// 取消审核
  548. /// <param name="keyValue">主键</param>
  549. /// <summary>
  550. /// <returns></returns>
  551. [HttpPost]
  552. [AjaxOnly]
  553. public ActionResult UnCheck(string keyValue)
  554. {
  555. var keyValueArr = keyValue.Split(',');
  556. foreach (var item in keyValueArr)
  557. {
  558. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  559. if (StuInfoBasicData != null)
  560. {
  561. StuInfoBasicData.CheckMark = "0";
  562. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  563. }
  564. }
  565. return Success("取消审核成功!");
  566. }
  567. /// <summary>
  568. /// 全部审核
  569. /// <param name="keyValue">主键</param>
  570. /// <summary>
  571. /// <returns></returns>
  572. [HttpPost]
  573. [AjaxOnly]
  574. public ActionResult CheckAll()
  575. {
  576. stuInfoBasicIBLL.CheckAll();
  577. return Success("全部审核成功!");
  578. }
  579. /// <summary>
  580. /// 准许学生毕业操作
  581. /// <param name="keyValue">学号</param>
  582. /// <summary>
  583. /// <returns></returns>
  584. [HttpGet]
  585. [AjaxOnly]
  586. public ActionResult AllowGraduate(string stuNo, string status)
  587. {
  588. stuInfoBasicIBLL.AllowGraduate(stuNo, status);
  589. return Success("操作成功!");
  590. }
  591. [HttpPost]
  592. [AjaxOnly]
  593. public ActionResult IsPhoto(string stuId, string base64url)
  594. {
  595. var loginuser = LoginUserInfo.Get();
  596. //头像处理
  597. var folderId = Guid.NewGuid().ToString();
  598. string filePath = Config.GetValue("AnnexesFile");
  599. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  600. string FileEextension = ".png";
  601. string fileGuid = Guid.NewGuid().ToString();
  602. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, loginuser.account, uploadDate, fileGuid, FileEextension);
  603. //创建文件夹
  604. string path = Path.GetDirectoryName(virtualPath);
  605. Directory.CreateDirectory(path);
  606. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  607. if (!System.IO.File.Exists(virtualPath))
  608. {
  609. byte[] bytes = Convert.FromBase64String(base64url.Replace("data:image/png;base64,", ""));
  610. FileInfo file = new FileInfo(virtualPath);
  611. FileStream fs = file.Create();
  612. fs.Write(bytes, 0, bytes.Length);
  613. fs.Close();
  614. //文件信息写入数据库
  615. fileAnnexesEntity.F_Id = fileGuid;
  616. fileAnnexesEntity.F_FileName = "userphoto.png";
  617. fileAnnexesEntity.F_FilePath = virtualPath;
  618. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  619. fileAnnexesEntity.F_FileExtensions = FileEextension;
  620. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  621. fileAnnexesEntity.F_CreateUserId = loginuser.userId;
  622. fileAnnexesEntity.F_CreateUserName = loginuser.realName;
  623. annexesFileIbll.SaveEntity(folderId, fileAnnexesEntity);
  624. var stuEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(stuId);
  625. stuEntity.Photo = folderId;
  626. stuInfoBasicIBLL.SaveEntity(stuEntity.StuId, stuEntity);
  627. return Success("上传成功");
  628. }
  629. else
  630. {
  631. return Fail("上传失败");
  632. }
  633. }
  634. /// <summary>
  635. /// 同步照片
  636. /// <summary>
  637. /// <returns></returns>
  638. [HttpGet]
  639. [AjaxOnly]
  640. public ActionResult SynPhoto()
  641. {
  642. stuInfoBasicIBLL.SynPhoto();
  643. return Success("同步成功!");
  644. }
  645. [HttpPost]
  646. [AjaxOnly]
  647. public ActionResult SyncDept()
  648. {
  649. stuInfoBasicIBLL.SyncDept();
  650. return Success("同步成功");
  651. }
  652. [HttpPost]
  653. [AjaxOnly]
  654. public ActionResult SyncMajor()
  655. {
  656. stuInfoBasicIBLL.SyncMajor();
  657. return Success("同步成功");
  658. }
  659. #endregion
  660. }
  661. }