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.

StuInfoBasicController.cs 17 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  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. #endregion
  147. #region 获取数据
  148. /// <summary>
  149. /// 生成帐号
  150. /// </summary>
  151. /// <returns></returns>
  152. [HttpPost]
  153. [AjaxOnly]
  154. public ActionResult Generate()
  155. {
  156. stuInfoBasicIBLL.GenerateAccout();
  157. return Success("生成成功!");
  158. }
  159. [HttpPost]
  160. [AjaxOnly]
  161. public ActionResult UpdateAccount()
  162. {
  163. stuInfoBasicIBLL.UpdateAccount();
  164. return Success("更新成功!");
  165. }
  166. /// <summary>
  167. /// 获取页面显示列表数据
  168. /// <summary>
  169. /// <param name="queryJson">查询参数</param>
  170. /// <returns></returns>
  171. [HttpGet]
  172. [AjaxOnly]
  173. public ActionResult GetPageList(string pagination, string queryJson)
  174. {
  175. Pagination paginationobj = pagination.ToObject<Pagination>();
  176. var data = stuInfoBasicIBLL.GetPageList(paginationobj, queryJson);
  177. var jsonData = new
  178. {
  179. rows = data,
  180. total = paginationobj.total,
  181. page = paginationobj.page,
  182. records = paginationobj.records
  183. };
  184. return Success(jsonData);
  185. }
  186. /// <summary>
  187. /// 获取页面显示列表数据
  188. /// <summary>
  189. /// <returns></returns>
  190. [HttpGet]
  191. [AjaxOnly]
  192. public ActionResult GetAllList()
  193. {
  194. var data = stuInfoBasicIBLL.GetAllList();
  195. return Success(data);
  196. }
  197. /// <summary>
  198. /// 获取表单数据
  199. /// <summary>
  200. /// <returns></returns>
  201. [HttpGet]
  202. [AjaxOnly]
  203. public ActionResult GetFormData(string keyValue)
  204. {
  205. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  206. var jsonData = new
  207. {
  208. StuInfoBasic = StuInfoBasicData,
  209. };
  210. return Success(jsonData);
  211. }
  212. /// <summary>
  213. /// 获取毕业学生的专业
  214. /// </summary>
  215. /// <returns></returns>
  216. [HttpGet]
  217. [AjaxOnly]
  218. public ActionResult GetMajorInfoWithGraduation()
  219. {
  220. var data = stuInfoBasicIBLL.GetMajorInfoWithGraduation();
  221. return Success(data);
  222. }
  223. /// <summary>
  224. /// 根据帐号获取学生的信息
  225. /// </summary>
  226. /// <param name="Account"></param>
  227. /// <returns></returns>
  228. [HttpGet]
  229. [AjaxOnly]
  230. public ActionResult GetStuInfo(string Account)
  231. {
  232. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(Account);
  233. if (stuInfo != null)
  234. {
  235. return JsonResult(stuInfo);
  236. }
  237. else
  238. {
  239. return Fail("学生不存在");
  240. }
  241. }
  242. /// <summary>
  243. /// 根据帐号获取学生的信息
  244. /// </summary>
  245. /// <param name="ClassNo">班级码</param>
  246. /// <returns></returns>
  247. [HttpGet]
  248. [AjaxOnly]
  249. public ActionResult GetStuInfoByClassNo(string ClassNo)
  250. {
  251. var stuInfo = stuInfoBasicIBLL.GetStuInfoByClassNo(ClassNo);
  252. return Success(stuInfo);
  253. }
  254. /// <summary>
  255. /// 根据帐号获取学生的信息
  256. /// </summary>
  257. /// <param name="Account"></param>
  258. /// <returns></returns>
  259. [HttpGet]
  260. [AjaxOnly]
  261. public ActionResult GetStuInfoBasicEntityByStuName(string name)
  262. {
  263. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuName(name);
  264. return Success(stuInfo);
  265. }
  266. /// <summary>
  267. /// 获取左侧树形数据
  268. /// <summary>
  269. /// <returns></returns>
  270. [HttpGet]
  271. [AjaxOnly]
  272. public ActionResult GetTree()
  273. {
  274. var data = stuInfoBasicIBLL.GetTree();
  275. return Success(data);
  276. }
  277. #endregion
  278. #region 提交数据
  279. /// <summary>
  280. /// 领取毕业证
  281. /// </summary>
  282. /// <param name="keyValue">学生id</param>
  283. /// <returns></returns>
  284. [HttpPost]
  285. [AjaxOnly]
  286. public ActionResult GetCard(string keyValue)
  287. {
  288. stuInfoBasicIBLL.GetCard(keyValue);
  289. return Success("领取成功");
  290. }
  291. /// <summary>
  292. /// 学生毕业归档
  293. /// </summary>
  294. /// <param name="keyValue">学生id</param>
  295. /// <returns></returns>
  296. [HttpPost]
  297. [AjaxOnly]
  298. public ActionResult StuStore()
  299. {
  300. stuInfoBasicIBLL.StuStore();
  301. return Success("操作成功");
  302. }
  303. /// <summary>
  304. /// 删除实体数据
  305. /// <param name="keyValue">主键</param>
  306. /// <summary>
  307. /// <returns></returns>
  308. [HttpPost]
  309. [AjaxOnly]
  310. public ActionResult DeleteForm(string keyValue)
  311. {
  312. stuInfoBasicIBLL.DeleteEntity(keyValue);
  313. return Success("删除成功!");
  314. }
  315. /// <summary>
  316. /// 保存实体数据(新增、修改)
  317. /// <param name="keyValue">主键</param>
  318. /// <summary>
  319. /// <returns></returns>
  320. [HttpPost]
  321. [ValidateAntiForgeryToken]
  322. [AjaxOnly]
  323. public ActionResult SaveForm(string keyValue, string strEntity)
  324. {
  325. StuInfoBasicEntity entity = strEntity.ToObject<StuInfoBasicEntity>();
  326. entity.SyncFlag = false;
  327. var model = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(entity.StuNo);
  328. if (string.IsNullOrEmpty(keyValue))
  329. {
  330. if (model != null)
  331. {
  332. return Fail("学号已存在!");
  333. }
  334. }
  335. else
  336. {
  337. if (model != null && model.StuId != keyValue)
  338. {
  339. return Fail("学号已存在!");
  340. }
  341. entity.SyncFlag = true;
  342. //判断排课同步数据是否存在:若存在,清除同步数据;
  343. var arrangeLessonSyncList = arrangeLessonSyncIBLL.GetArrangeLessonSyncListByTableId(keyValue);
  344. if (arrangeLessonSyncList.Any())
  345. {
  346. arrangeLessonSyncIBLL.DeleteEntityByTableId(keyValue);
  347. }
  348. else
  349. {
  350. entity.SyncFlag = false;
  351. }
  352. }
  353. stuInfoBasicIBLL.SaveEntity(keyValue, entity);
  354. return Success("保存成功!");
  355. }
  356. [HttpPost]
  357. [AjaxOnly]
  358. public ActionResult CreateGraduateNoByMajor(string CityCode, string SchoolCode, string MajorList)
  359. {
  360. stuInfoBasicIBLL.CreateGraduateNoByMajor(CityCode, SchoolCode, MajorList);
  361. return Success("生成成功");
  362. }
  363. /// <summary>
  364. /// 审核
  365. /// <param name="keyValue">主键</param>
  366. /// <summary>
  367. /// <returns></returns>
  368. [HttpPost]
  369. [AjaxOnly]
  370. public ActionResult Check(string keyValue)
  371. {
  372. var keyValueArr = keyValue.Split(',');
  373. foreach (var item in keyValueArr)
  374. {
  375. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  376. if (StuInfoBasicData != null)
  377. {
  378. StuInfoBasicData.CheckMark = "1";
  379. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  380. }
  381. }
  382. return Success("审核成功!");
  383. }
  384. /// <summary>
  385. /// 取消审核
  386. /// <param name="keyValue">主键</param>
  387. /// <summary>
  388. /// <returns></returns>
  389. [HttpPost]
  390. [AjaxOnly]
  391. public ActionResult UnCheck(string keyValue)
  392. {
  393. var keyValueArr = keyValue.Split(',');
  394. foreach (var item in keyValueArr)
  395. {
  396. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  397. if (StuInfoBasicData != null)
  398. {
  399. StuInfoBasicData.CheckMark = "0";
  400. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  401. }
  402. }
  403. return Success("取消审核成功!");
  404. }
  405. /// <summary>
  406. /// 全部审核
  407. /// <param name="keyValue">主键</param>
  408. /// <summary>
  409. /// <returns></returns>
  410. [HttpPost]
  411. [AjaxOnly]
  412. public ActionResult CheckAll()
  413. {
  414. stuInfoBasicIBLL.CheckAll();
  415. return Success("全部审核成功!");
  416. }
  417. /// <summary>
  418. /// 准许学生毕业操作
  419. /// <param name="keyValue">学号</param>
  420. /// <summary>
  421. /// <returns></returns>
  422. [HttpGet]
  423. [AjaxOnly]
  424. public ActionResult AllowGraduate(string stuNo, string status)
  425. {
  426. stuInfoBasicIBLL.AllowGraduate(stuNo, status);
  427. return Success("操作成功!");
  428. }
  429. [HttpPost]
  430. [AjaxOnly]
  431. public ActionResult IsPhoto(string stuId, string base64url)
  432. {
  433. var loginuser = LoginUserInfo.Get();
  434. //头像处理
  435. var folderId = Guid.NewGuid().ToString();
  436. string filePath = Config.GetValue("AnnexesFile");
  437. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  438. string FileEextension = ".png";
  439. string fileGuid = Guid.NewGuid().ToString();
  440. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, loginuser.account, uploadDate, fileGuid, FileEextension);
  441. //创建文件夹
  442. string path = Path.GetDirectoryName(virtualPath);
  443. Directory.CreateDirectory(path);
  444. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  445. if (!System.IO.File.Exists(virtualPath))
  446. {
  447. byte[] bytes = Convert.FromBase64String(base64url.Replace("data:image/png;base64,", ""));
  448. FileInfo file = new FileInfo(virtualPath);
  449. FileStream fs = file.Create();
  450. fs.Write(bytes, 0, bytes.Length);
  451. fs.Close();
  452. //文件信息写入数据库
  453. fileAnnexesEntity.F_Id = fileGuid;
  454. fileAnnexesEntity.F_FileName = "userphoto.png";
  455. fileAnnexesEntity.F_FilePath = virtualPath;
  456. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  457. fileAnnexesEntity.F_FileExtensions = FileEextension;
  458. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  459. fileAnnexesEntity.F_CreateUserId = loginuser.userId;
  460. fileAnnexesEntity.F_CreateUserName = loginuser.realName;
  461. annexesFileIbll.SaveEntity(folderId, fileAnnexesEntity);
  462. var stuEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(stuId);
  463. stuEntity.Photo = folderId;
  464. stuInfoBasicIBLL.SaveEntity(stuEntity.StuId, stuEntity);
  465. return Success("上传成功");
  466. }
  467. else
  468. {
  469. return Fail("上传失败");
  470. }
  471. }
  472. /// <summary>
  473. /// 同步照片
  474. /// <summary>
  475. /// <returns></returns>
  476. [HttpGet]
  477. [AjaxOnly]
  478. public ActionResult SynPhoto()
  479. {
  480. stuInfoBasicIBLL.SynPhoto();
  481. return Success("同步成功!");
  482. }
  483. [HttpPost]
  484. [AjaxOnly]
  485. public ActionResult SyncDept()
  486. {
  487. stuInfoBasicIBLL.SyncDept();
  488. return Success("同步成功");
  489. }
  490. [HttpPost]
  491. [AjaxOnly]
  492. public ActionResult SyncMajor()
  493. {
  494. stuInfoBasicIBLL.SyncMajor();
  495. return Success("同步成功");
  496. }
  497. #endregion
  498. }
  499. }