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