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.
 
 
 
 
 
 

900 lines
28 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. 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. /// <summary>
  91. /// 毕业归档-设置毕业时间
  92. /// </summary>
  93. /// <returns></returns>
  94. [HttpGet]
  95. public ActionResult FinishSchoolDateForm()
  96. {
  97. return View();
  98. }
  99. [HttpGet]
  100. public ActionResult CreateGraduateNoForm()
  101. {
  102. return View();
  103. }
  104. /// <summary>
  105. /// 异动转入
  106. /// </summary>
  107. /// <returns></returns>
  108. public ActionResult FormTran()
  109. {
  110. return View();
  111. }
  112. /// <summary>
  113. /// 学生列表【班级信息管理】
  114. /// <summary>
  115. /// <returns></returns>
  116. [HttpGet]
  117. public ActionResult IndexInClass()
  118. {
  119. return View();
  120. }
  121. /// <summary>
  122. /// 打印方向表
  123. /// </summary>
  124. /// <returns></returns>
  125. public ActionResult DirectionPrint()
  126. {
  127. return View();
  128. }
  129. /// <summary>
  130. /// 打印
  131. /// <summary>
  132. /// <returns></returns>
  133. [HttpGet]
  134. public ActionResult Print(string keyValue)
  135. {
  136. var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  137. if (stuInfoBasicEntity == null)
  138. {
  139. return View(new StuInfoBasicEntity());
  140. }
  141. //头像
  142. stuInfoBasicEntity.Photo = annexesFileIbll.GetEntityByFolderId(stuInfoBasicEntity.Photo)?.F_FilePath;
  143. if (!string.IsNullOrEmpty(stuInfoBasicEntity.Photo))
  144. {
  145. stuInfoBasicEntity.Photo = stuInfoBasicEntity.Photo.Substring(stuInfoBasicEntity.Photo.IndexOf("Resource") - 1);
  146. }
  147. //奖罚情况
  148. stuInfoBasicEntity.StuEncourgementList = stuEncourgementIBLL.GetEncourgementListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList();
  149. stuInfoBasicEntity.StuPunishmentList = stuPunishmentIBLL.GetPunishmentListByStuNo(stuInfoBasicEntity.StuNo).OrderBy(x => x.AcademicYearNo).ThenBy(x => x.Semester).ToList();
  150. //学习成绩
  151. stuInfoBasicEntity.StuScoreClassOneList = stuScoreIBLL.GetAllScoreListByStuNo(stuInfoBasicEntity.StuNo)
  152. .Where(x => x.AcademicYearNo != null && x.Semester != null && x.Score != null)
  153. .GroupBy(x => new { x.AcademicYearNo, x.Semester })
  154. .Select(x => new StuScoreClassOne()
  155. {
  156. AcademicYearNo = x.Key.AcademicYearNo,
  157. Semester = x.Key.Semester,
  158. StuScoreList = x.Select(y => new StuScoreEntity()
  159. {
  160. LessonNo = y.LessonNo,
  161. LessonName = y.LessonName,
  162. Score = y.Score
  163. }).OrderBy(xx => xx.LessonNo).ToList()
  164. }).OrderBy(xx => xx.AcademicYearNo).ThenBy(xx => xx.Semester).ToList();
  165. return View(stuInfoBasicEntity);
  166. }
  167. /// <summary>
  168. /// 打印
  169. /// <summary>
  170. /// <returns></returns>
  171. [HttpGet]
  172. public ActionResult Printxjk(string keyValue)
  173. {
  174. var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  175. ViewBag.PrintDate = DateTime.Now.ToDate();
  176. if (stuInfoBasicEntity == null)
  177. {
  178. return View(new StuInfoBasicEntity());
  179. }
  180. //头像
  181. stuInfoBasicEntity.Photo = annexesFileIbll.GetEntityByFolderId(stuInfoBasicEntity.Photo)?.F_FilePath;
  182. if (!string.IsNullOrEmpty(stuInfoBasicEntity.Photo))
  183. {
  184. stuInfoBasicEntity.Photo = stuInfoBasicEntity.Photo.Substring(stuInfoBasicEntity.Photo.IndexOf("Resource") - 1);
  185. }
  186. //学习成绩
  187. stuInfoBasicEntity.StuScoreClassOneList = stuScoreIBLL.GetAllScoreListByStuNo(stuInfoBasicEntity.StuNo)
  188. .Where(x => x.AcademicYearNo != null && x.Semester != null && x.Score != null)
  189. .GroupBy(x => new { x.AcademicYearNo, x.Semester })
  190. .Select(x => new StuScoreClassOne()
  191. {
  192. AcademicYearNo = x.Key.AcademicYearNo,
  193. Semester = x.Key.Semester,
  194. StuScoreList = x.Select(y => new StuScoreEntity()
  195. {
  196. LessonNo = y.LessonNo,
  197. LessonName = y.LessonName,
  198. Score = y.Score
  199. }).OrderBy(xx => xx.LessonNo).ToList()
  200. }).OrderBy(xx => xx.AcademicYearNo).ThenBy(xx => xx.Semester).ToList();
  201. return View(stuInfoBasicEntity);
  202. }
  203. /// <summary>
  204. /// 离校手续-图书资料归还
  205. /// </summary>
  206. /// <returns></returns>
  207. [HttpGet]
  208. public ActionResult GraduateReturnBooks()
  209. {
  210. return View();
  211. }
  212. /// <summary>
  213. /// 离校手续-就业协议备案
  214. /// </summary>
  215. /// <returns></returns>
  216. [HttpGet]
  217. public ActionResult GraduateEmployAgree()
  218. {
  219. return View();
  220. }
  221. /// <summary>
  222. /// 离校手续-学杂费结算
  223. /// </summary>
  224. /// <returns></returns>
  225. [HttpGet]
  226. public ActionResult GraduateFeeSettle()
  227. {
  228. return View();
  229. }
  230. /// <summary>
  231. /// 离校手续-办理退住手续
  232. /// </summary>
  233. /// <returns></returns>
  234. [HttpGet]
  235. public ActionResult GraduateCheckOut()
  236. {
  237. return View();
  238. }
  239. /// <summary>
  240. /// 离校手续-校园卡注销
  241. /// </summary>
  242. /// <returns></returns>
  243. [HttpGet]
  244. public ActionResult GraduateCardDeregistrate()
  245. {
  246. return View();
  247. }
  248. /// <summary>
  249. /// 离校手续-毕业证领取
  250. /// </summary>
  251. /// <returns></returns>
  252. [HttpGet]
  253. public ActionResult GraduateDiplomaReceive()
  254. {
  255. return View();
  256. }
  257. /// <summary>
  258. /// 离校手续-档案与组织关系转出
  259. /// </summary>
  260. /// <returns></returns>
  261. [HttpGet]
  262. public ActionResult GraduateFileTransfer()
  263. {
  264. return View();
  265. }
  266. /// <summary>
  267. /// 毕业证领取表单
  268. /// </summary>
  269. /// <returns></returns>
  270. public ActionResult GraduateDiplomaReceiveForm()
  271. {
  272. return View();
  273. }
  274. /// <summary>
  275. /// 导入页面
  276. /// <summary>
  277. /// <returns></returns>
  278. [HttpGet]
  279. public ActionResult ImportForm()
  280. {
  281. return View();
  282. }
  283. /// <summary>
  284. /// 压缩包同步照片页面
  285. /// <summary>
  286. /// <returns></returns>
  287. [HttpGet]
  288. public ActionResult SynPhotoForm()
  289. {
  290. return View();
  291. }
  292. #endregion
  293. #region 获取数据
  294. /// <summary>
  295. /// 生成帐号
  296. /// </summary>
  297. /// <returns></returns>
  298. [HttpPost]
  299. [AjaxOnly]
  300. public ActionResult Generate()
  301. {
  302. stuInfoBasicIBLL.GenerateAccout();
  303. return Success("生成成功!");
  304. }
  305. [HttpPost]
  306. [AjaxOnly]
  307. public ActionResult UpdateAccount()
  308. {
  309. stuInfoBasicIBLL.UpdateAccount();
  310. return Success("更新成功!");
  311. }
  312. /// <summary>
  313. /// 获取页面显示列表数据
  314. /// <summary>
  315. /// <param name="queryJson">查询参数</param>
  316. /// <returns></returns>
  317. [HttpGet]
  318. [AjaxOnly]
  319. public ActionResult GetPageList(string pagination, string queryJson)
  320. {
  321. Pagination paginationobj = pagination.ToObject<Pagination>();
  322. var data = stuInfoBasicIBLL.GetPageList(paginationobj, queryJson);
  323. var jsonData = new
  324. {
  325. rows = data,
  326. total = paginationobj.total,
  327. page = paginationobj.page,
  328. records = paginationobj.records
  329. };
  330. return Success(jsonData);
  331. }
  332. /// <summary>
  333. /// 获取表单数据
  334. /// <summary>
  335. /// <returns></returns>
  336. [HttpGet]
  337. [AjaxOnly]
  338. public ActionResult GetFormData(string keyValue)
  339. {
  340. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(keyValue);
  341. var jsonData = new
  342. {
  343. StuInfoBasic = StuInfoBasicData,
  344. };
  345. return Success(jsonData);
  346. }
  347. /// <summary>
  348. /// 获取毕业学生的专业
  349. /// </summary>
  350. /// <returns></returns>
  351. [HttpGet]
  352. [AjaxOnly]
  353. public ActionResult GetMajorInfoWithGraduation()
  354. {
  355. var data = stuInfoBasicIBLL.GetMajorInfoWithGraduation();
  356. return Success(data);
  357. }
  358. /// <summary>
  359. /// 获取页面显示列表数据
  360. /// <summary>
  361. /// <returns></returns>
  362. [HttpGet]
  363. [AjaxOnly]
  364. public ActionResult GetAllList()
  365. {
  366. var data = stuInfoBasicIBLL.GetAllList();
  367. return Success(data);
  368. }
  369. /// <summary>
  370. /// 根据帐号获取学生的信息
  371. /// </summary>
  372. /// <param name="Account"></param>
  373. /// <returns></returns>
  374. [HttpGet]
  375. [AjaxOnly]
  376. public ActionResult GetStuInfo(string Account)
  377. {
  378. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(Account);
  379. if (stuInfo != null)
  380. {
  381. return JsonResult(stuInfo);
  382. }
  383. else
  384. {
  385. return Fail("学生不存在");
  386. }
  387. }
  388. /// <summary>
  389. /// 根据帐号获取学生的信息
  390. /// </summary>
  391. /// <param name="ClassNo">班级码</param>
  392. /// <returns></returns>
  393. [HttpGet]
  394. [AjaxOnly]
  395. public ActionResult GetStuInfoByClassNo(string ClassNo)
  396. {
  397. var stuInfo = stuInfoBasicIBLL.GetStuInfoByClassNo(ClassNo);
  398. return Success(stuInfo);
  399. }
  400. /// <summary>
  401. /// 根据帐号获取学生的信息
  402. /// </summary>
  403. /// <param name="Account"></param>
  404. /// <returns></returns>
  405. [HttpGet]
  406. [AjaxOnly]
  407. public ActionResult GetStuInfoBasicEntityByStuName(string name)
  408. {
  409. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuName(name);
  410. return Success(stuInfo);
  411. }
  412. /// <summary>
  413. /// 获取左侧树形数据
  414. /// <summary>
  415. /// <returns></returns>
  416. [HttpGet]
  417. [AjaxOnly]
  418. public ActionResult GetTree()
  419. {
  420. var data = stuInfoBasicIBLL.GetTree();
  421. return Success(data);
  422. }
  423. [HttpGet]
  424. public ActionResult Direction()
  425. {
  426. return View();
  427. }
  428. #endregion
  429. #region 提交数据
  430. /// <summary>
  431. /// 领取毕业证
  432. /// </summary>
  433. /// <param name="keyValue">学生id</param>
  434. /// <returns></returns>
  435. [HttpPost]
  436. [AjaxOnly]
  437. public ActionResult GetCard(string keyValue, string status, string strEntity)
  438. {
  439. try
  440. {
  441. if (status == "1")//领取
  442. {
  443. StuInfoBasicEntity entity = strEntity.ToObject<StuInfoBasicEntity>();
  444. stuInfoBasicIBLL.GetCard(keyValue, status, entity);
  445. }
  446. else//取消领取
  447. {
  448. stuInfoBasicIBLL.GetCard(keyValue, status, new StuInfoBasicEntity());
  449. }
  450. return Success("操作成功");
  451. }
  452. catch (Exception ex)
  453. {
  454. if (ex is ArgumentException)
  455. {
  456. return Fail(ex.Message);
  457. }
  458. else
  459. {
  460. throw ExceptionEx.ThrowServiceException(ex);
  461. }
  462. }
  463. }
  464. /// <summary>
  465. /// 图书资料归还
  466. /// </summary>
  467. /// <param name="keyValue">学生id</param>
  468. /// <returns></returns>
  469. [HttpPost]
  470. [AjaxOnly]
  471. public ActionResult IsReturnBooks(string keyValue, string status)
  472. {
  473. stuInfoBasicIBLL.IsReturnBooks(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 IsEmployAgree(string keyValue, string status)
  484. {
  485. stuInfoBasicIBLL.IsEmployAgree(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 IsFeeSettle(string keyValue, string status)
  496. {
  497. stuInfoBasicIBLL.IsFeeSettle(keyValue, status);
  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 IsCheckOut(string keyValue, string status)
  508. {
  509. stuInfoBasicIBLL.IsCheckOut(keyValue, status);
  510. return Success("操作成功");
  511. }
  512. /// <summary>
  513. /// 校园卡注销
  514. /// </summary>
  515. /// <param name="keyValue">学生id</param>
  516. /// <returns></returns>
  517. [HttpPost]
  518. [AjaxOnly]
  519. public ActionResult IsCardDeregistrate(string keyValue, string status)
  520. {
  521. stuInfoBasicIBLL.IsCardDeregistrate(keyValue, status);
  522. return Success("操作成功");
  523. }
  524. /// <summary>
  525. /// 档案与组织关系转出
  526. /// </summary>
  527. /// <param name="keyValue">学生id</param>
  528. /// <returns></returns>
  529. [HttpPost]
  530. [AjaxOnly]
  531. public ActionResult IsFileTransfer(string keyValue, string status, string fort)
  532. {
  533. stuInfoBasicIBLL.IsFileTransfer(keyValue, status, fort);
  534. return Success("操作成功");
  535. }
  536. /// <summary>
  537. /// 学生毕业归档
  538. /// </summary>
  539. /// <param name="keyValue">学生id</param>
  540. /// <returns></returns>
  541. [HttpPost]
  542. [AjaxOnly]
  543. public ActionResult StuStore(string keyValue)
  544. {
  545. stuInfoBasicIBLL.StuStore(keyValue);
  546. return Success("操作成功");
  547. }
  548. /// <summary>
  549. /// 学生毕业归档-设置毕业时间
  550. /// </summary>
  551. /// <param name=""></param>
  552. /// <returns></returns>
  553. [HttpPost]
  554. [AjaxOnly]
  555. public ActionResult SaveFinishSchoolDate(DateTime finishDate)
  556. {
  557. stuInfoBasicIBLL.SaveFinishSchoolDate(finishDate);
  558. return Success("操作成功");
  559. }
  560. /// <summary>
  561. /// 学生毕业流程审核
  562. /// </summary>
  563. /// <param name=""></param>
  564. /// <returns></returns>
  565. [HttpPost]
  566. [AjaxOnly]
  567. public ActionResult StuGraduateCheck(string keyValue)
  568. {
  569. stuInfoBasicIBLL.StuGraduateCheck(keyValue);
  570. return Success("操作成功");
  571. }
  572. /// <summary>
  573. /// 删除实体数据
  574. /// <param name="keyValue">主键</param>
  575. /// <summary>
  576. /// <returns></returns>
  577. [HttpPost]
  578. [AjaxOnly]
  579. public ActionResult DeleteForm(string keyValue)
  580. {
  581. stuInfoBasicIBLL.DeleteEntity(keyValue);
  582. return Success("删除成功!");
  583. }
  584. /// <summary>
  585. /// 保存实体数据(新增、修改)
  586. /// <param name="keyValue">主键</param>
  587. /// <summary>
  588. /// <returns></returns>
  589. [HttpPost]
  590. [ValidateAntiForgeryToken]
  591. [AjaxOnly]
  592. public ActionResult SaveForm(string keyValue, string strEntity)
  593. {
  594. StuInfoBasicEntity entity = strEntity.ToObject<StuInfoBasicEntity>();
  595. entity.SyncFlag = false;
  596. var Card = stuInfoBasicIBLL.GetIdCard(entity.IdentityCardNo);
  597. var model = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(entity.StuNo);
  598. if (string.IsNullOrEmpty(keyValue))
  599. {
  600. if (model != null)
  601. {
  602. return Fail("学生编号已存在!");
  603. }
  604. if (Card != null)
  605. {
  606. return Fail("学生身份证号已存在!");
  607. }
  608. }
  609. else
  610. {
  611. if (model != null && model.StuId != keyValue)
  612. {
  613. return Fail("学生编号已存在!");
  614. }
  615. if (Card != null && Card.StuId != keyValue)
  616. {
  617. return Fail("学生身份证号已存在!");
  618. }
  619. entity.SyncFlag = true;
  620. //判断排课同步数据是否存在:若存在,清除同步数据;
  621. var arrangeLessonSyncList = arrangeLessonSyncIBLL.GetArrangeLessonSyncListByTableId(keyValue);
  622. if (arrangeLessonSyncList.Any())
  623. {
  624. arrangeLessonSyncIBLL.DeleteEntityByTableId(keyValue);
  625. }
  626. else
  627. {
  628. entity.SyncFlag = false;
  629. }
  630. }
  631. stuInfoBasicIBLL.SaveEntity(keyValue, entity);
  632. return Success("保存成功!");
  633. }
  634. [HttpPost]
  635. [AjaxOnly]
  636. public ActionResult CreateGraduateNoByMajor(string CityCode, string SchoolCode, string MajorList)
  637. {
  638. stuInfoBasicIBLL.CreateGraduateNoByMajor(CityCode, SchoolCode, MajorList);
  639. return Success("生成成功");
  640. }
  641. /// <summary>
  642. /// 按学号生成毕业证号
  643. /// </summary>
  644. /// <returns></returns>
  645. [HttpPost]
  646. [AjaxOnly]
  647. public ActionResult DoCreateGraduateNo()
  648. {
  649. stuInfoBasicIBLL.DoCreateGraduateNo();
  650. return Success("生成成功");
  651. }
  652. /// <summary>
  653. /// 审核
  654. /// <param name="keyValue">主键</param>
  655. /// <summary>
  656. /// <returns></returns>
  657. [HttpPost]
  658. [AjaxOnly]
  659. public ActionResult Check(string keyValue)
  660. {
  661. var keyValueArr = keyValue.Split(',');
  662. stuInfoBasicIBLL.UpdateState(keyValue, "1");
  663. foreach (var item in keyValueArr)
  664. {
  665. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  666. if (StuInfoBasicData != null)
  667. {
  668. StuInfoBasicData.CheckMark = "1";
  669. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  670. }
  671. }
  672. return Success("审核成功!");
  673. }
  674. /// <summary>
  675. /// 取消审核
  676. /// <param name="keyValue">主键</param>
  677. /// <summary>
  678. /// <returns></returns>
  679. [HttpPost]
  680. [AjaxOnly]
  681. public ActionResult UnCheck(string keyValue)
  682. {
  683. var keyValueArr = keyValue.Split(',');
  684. stuInfoBasicIBLL.UpdateState(keyValue, "0");
  685. foreach (var item in keyValueArr)
  686. {
  687. var StuInfoBasicData = stuInfoBasicIBLL.GetStuInfoBasicEntity(item);
  688. if (StuInfoBasicData != null)
  689. {
  690. StuInfoBasicData.CheckMark = "0";
  691. stuInfoBasicIBLL.SaveEntity(item, StuInfoBasicData);
  692. }
  693. }
  694. return Success("取消审核成功!");
  695. }
  696. /// <summary>
  697. /// 全部审核
  698. /// <param name="keyValue">主键</param>
  699. /// <summary>
  700. /// <returns></returns>
  701. [HttpPost]
  702. [AjaxOnly]
  703. public ActionResult CheckAll()
  704. {
  705. stuInfoBasicIBLL.CheckAll();
  706. return Success("全部审核成功!");
  707. }
  708. /// <summary>
  709. /// 准许学生毕业操作
  710. /// <param name="keyValue">学号</param>
  711. /// <summary>
  712. /// <returns></returns>
  713. [HttpGet]
  714. [AjaxOnly]
  715. public ActionResult AllowGraduate(string stuNo, string status)
  716. {
  717. try
  718. {
  719. stuInfoBasicIBLL.AllowGraduate(stuNo, status);
  720. return Success("操作成功!");
  721. }
  722. catch (Exception e)
  723. {
  724. if (e is ArgumentException)
  725. {
  726. return Fail(e.Message);
  727. }
  728. else
  729. {
  730. throw;
  731. }
  732. }
  733. }
  734. [HttpPost]
  735. [AjaxOnly]
  736. public ActionResult IsPhoto(string stuId, string base64url)
  737. {
  738. var loginuser = LoginUserInfo.Get();
  739. //头像处理
  740. var folderId = Guid.NewGuid().ToString();
  741. string filePath = Config.GetValue("AnnexesFile");
  742. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  743. string FileEextension = ".png";
  744. string fileGuid = Guid.NewGuid().ToString();
  745. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, loginuser.account, uploadDate, fileGuid, FileEextension);
  746. //创建文件夹
  747. string path = Path.GetDirectoryName(virtualPath);
  748. Directory.CreateDirectory(path);
  749. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  750. if (!System.IO.File.Exists(virtualPath))
  751. {
  752. byte[] bytes = Convert.FromBase64String(base64url.Replace("data:image/png;base64,", ""));
  753. FileInfo file = new FileInfo(virtualPath);
  754. FileStream fs = file.Create();
  755. fs.Write(bytes, 0, bytes.Length);
  756. fs.Close();
  757. //文件信息写入数据库
  758. fileAnnexesEntity.F_Id = fileGuid;
  759. fileAnnexesEntity.F_FileName = "userphoto.png";
  760. fileAnnexesEntity.F_FilePath = virtualPath;
  761. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  762. fileAnnexesEntity.F_FileExtensions = FileEextension;
  763. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  764. fileAnnexesEntity.F_CreateUserId = loginuser.userId;
  765. fileAnnexesEntity.F_CreateUserName = loginuser.realName;
  766. annexesFileIbll.SaveEntity(folderId, fileAnnexesEntity);
  767. var stuEntity = stuInfoBasicIBLL.GetStuInfoBasicEntity(stuId);
  768. stuEntity.Photo = folderId;
  769. stuInfoBasicIBLL.SaveEntity(stuEntity.StuId, stuEntity);
  770. return Success("上传成功");
  771. }
  772. else
  773. {
  774. return Fail("上传失败");
  775. }
  776. }
  777. /// <summary>
  778. /// 同步照片
  779. /// <summary>
  780. /// <returns></returns>
  781. [HttpPost]
  782. [AjaxOnly]
  783. public ActionResult SynPhoto(string folderId)
  784. {
  785. //一、服务器中照片直接同步
  786. //stuInfoBasicIBLL.SynPhoto();
  787. //return Success("同步成功!");
  788. //二、上传压缩文件后同步照片
  789. //找到附件地址-多个,解压到目标文件夹,解压成功后同步照片,否则提示;
  790. var annexFileList = annexesFileIbll.GetList(folderId);
  791. if (annexFileList.Any())
  792. {
  793. var targetPath = Config.GetValue("AnnexesFile") + "/UserPhoto";
  794. foreach (var item in annexFileList)
  795. {
  796. var result = ZipHelper.UnZip(item.F_FilePath, targetPath);
  797. if (!result)
  798. {
  799. return Fail($"{item.F_FileName}文件解压失败,同步中止!");
  800. }
  801. }
  802. stuInfoBasicIBLL.SynPhoto();
  803. }
  804. return Success("同步成功!");
  805. }
  806. /// <summary>
  807. /// 宿舍信息导入模板
  808. /// </summary>
  809. /// <returns></returns>
  810. public ActionResult DownTemplate()
  811. {
  812. FileStreamResult result = null;
  813. try
  814. {
  815. var path = Server.MapPath("~/Content/excel/");
  816. var pathoffull = path + "StuInfoBasicImport.xls";
  817. FileStream fsread = fsread = new FileStream(pathoffull, FileMode.OpenOrCreate, FileAccess.ReadWrite);
  818. result = File(fsread, "application/ms-excel", "学籍信息批量修改.xls");
  819. return result;
  820. }
  821. catch (Exception ex)
  822. {
  823. return null;
  824. }
  825. }
  826. #endregion
  827. }
  828. }