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.
 
 
 
 
 
 

1318 lines
46 KiB

  1. using Learun.Application.Base.SystemModule;
  2. using Learun.Application.TwoDevelopment.EducationalAdministration;
  3. using Learun.Application.TwoDevelopment.LogisticsManagement;
  4. using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement;
  5. using Learun.Util;
  6. using Newtonsoft.Json;
  7. using NPOI.HSSF.UserModel;
  8. using NPOI.SS.UserModel;
  9. using NPOI.XSSF.UserModel;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.IO;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Web;
  17. using System.Web.Mvc;
  18. namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
  19. {
  20. /// <summary>
  21. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  22. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  23. /// 创 建:超级管理员
  24. /// 日 期:2019-08-08 17:21
  25. /// 描 述:新生信息管理
  26. /// </summary>
  27. public class StuInfoFreshController : MvcControllerBase
  28. {
  29. private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL();
  30. private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
  31. private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL();
  32. private FinaChargesStandardIBLL finaChargesStandardIBLL = new FinaChargesStandardBLL();
  33. private AccommodationIBLL accommodationIBLL = new AccommodationBLL();
  34. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  35. private CdDeptIBLL cdDeptIBLL = new CdDeptBLL();
  36. #region 视图功能
  37. /// <summary>
  38. /// 主页面
  39. /// <summary>
  40. /// <returns></returns>
  41. [HttpGet]
  42. public ActionResult Index()
  43. {
  44. return View();
  45. }
  46. /// <summary>
  47. ///
  48. /// </summary>
  49. /// <returns></returns>
  50. [HttpGet]
  51. public ActionResult Indexbank()
  52. {
  53. return View("Index");
  54. }
  55. [HttpGet]
  56. public ActionResult IndexDC()
  57. {
  58. return View();
  59. }
  60. [HttpGet]
  61. public ActionResult SchoolUniform()
  62. {
  63. return View();
  64. }
  65. [HttpGet]
  66. public ActionResult StatusView()
  67. {
  68. return View();
  69. }
  70. [HttpGet]
  71. public ActionResult PrintSignFlow(string Id)
  72. {
  73. if (!string.IsNullOrEmpty(Id))
  74. {
  75. var vwinfo = stuInfoFreshIBLL.GetStuInfoFreshEntity(Id);
  76. vwinfo.MajorName = cdMajorIBLL.GetCdMajorEntityByMajorNo(vwinfo.MajorNo).MajorName;
  77. return View(vwinfo);
  78. }
  79. else
  80. {
  81. return View();
  82. }
  83. }
  84. /// <summary>
  85. /// 根据区域统计
  86. /// <summary>
  87. /// <returns></returns>
  88. [HttpGet]
  89. public ActionResult StatisticsArea()
  90. {
  91. return View();
  92. }
  93. /// <summary>
  94. /// 表单页
  95. /// <summary>
  96. /// <returns></returns>
  97. [HttpGet]
  98. public ActionResult Form()
  99. {
  100. var url = Config.GetValue("defaultheadimg");
  101. ViewBag.Url = url;
  102. return View();
  103. }
  104. [HttpGet]
  105. public ActionResult FormDC()
  106. {
  107. var url = Config.GetValue("defaultheadimg");
  108. ViewBag.Url = url;
  109. return View();
  110. }
  111. /// <summary>
  112. /// 表单查看页
  113. /// <summary>
  114. /// <returns></returns>
  115. [HttpGet]
  116. public ActionResult FormView()
  117. {
  118. var url = Config.GetValue("defaultheadimg");
  119. ViewBag.Url = url;
  120. return View();
  121. }
  122. /// <summary>
  123. /// 表单【学子在线】
  124. /// <summary>
  125. /// <returns></returns>
  126. [HttpGet]
  127. public ActionResult FormOfStudent()
  128. {
  129. var url = Config.GetValue("defaultheadimg");
  130. ViewBag.Url = url;
  131. return View();
  132. }
  133. /// <summary>
  134. /// 新生报到管理页面
  135. /// <summary>
  136. /// <returns></returns>
  137. [HttpGet]
  138. public ActionResult RegisterIndex()
  139. {
  140. return View();
  141. }
  142. /// <summary>
  143. /// 新生档案管理页面
  144. /// <summary>
  145. /// <returns></returns>
  146. [HttpGet]
  147. public ActionResult CollectFileIndex()
  148. {
  149. return View();
  150. }
  151. /// <summary>
  152. /// 新生领取用品页面
  153. /// <summary>
  154. /// <returns></returns>
  155. [HttpGet]
  156. public ActionResult GetKeyIndex()
  157. {
  158. return View();
  159. }
  160. /// <summary>
  161. /// 新生缴费管理页面
  162. /// <summary>
  163. /// <returns></returns>
  164. [HttpGet]
  165. public ActionResult PayFeeIndex()
  166. {
  167. return View();
  168. }
  169. /// <summary>
  170. /// 新生缴费管理表单页
  171. /// <summary>
  172. /// <returns></returns>
  173. [HttpGet]
  174. public ActionResult PayFeeForm()
  175. {
  176. return View();
  177. }
  178. /// <summary>
  179. /// 助学贷款表单页
  180. /// <summary>
  181. /// <returns></returns>
  182. [HttpGet]
  183. public ActionResult LoanForm()
  184. {
  185. return View();
  186. }
  187. /// <summary>
  188. /// 现场缴费表单页
  189. /// <summary>
  190. /// <returns></returns>
  191. [HttpGet]
  192. public ActionResult OnsitePayForm()
  193. {
  194. return View();
  195. }
  196. /// <summary>
  197. /// 主页面【学子在线-新生信息完善】
  198. /// <summary>
  199. /// <returns></returns>
  200. [HttpGet]
  201. public ActionResult IndexOfStudent()
  202. {
  203. return View();
  204. }
  205. /// <summary>
  206. /// 分配班级
  207. /// <summary>
  208. /// <returns></returns>
  209. [HttpGet]
  210. public ActionResult AllocationClass()
  211. {
  212. return View();
  213. }
  214. [HttpGet]
  215. public ActionResult AllocationClassDC()
  216. {
  217. return View();
  218. }
  219. /// <summary>
  220. /// 分配宿舍
  221. /// <summary>
  222. /// <returns></returns>
  223. [HttpGet]
  224. public ActionResult AllocationDormitory()
  225. {
  226. return View();
  227. }
  228. /// <summary>
  229. /// 分配床位
  230. /// <summary>
  231. /// <returns></returns>
  232. [HttpGet]
  233. public ActionResult AllocationBed()
  234. {
  235. return View();
  236. }
  237. /// <summary>
  238. /// 导入床位页
  239. /// <summary>
  240. /// <returns></returns>
  241. [HttpGet]
  242. public ActionResult ImportBedForm()
  243. {
  244. return View();
  245. }
  246. /// <summary>
  247. /// 导出学生宿页舍
  248. /// <summary>
  249. /// <returns></returns>
  250. [HttpGet]
  251. public ActionResult ExportBedForm()
  252. {
  253. return View();
  254. }
  255. /// <summary>
  256. /// 新生信息统计
  257. /// <summary>
  258. /// <returns></returns>
  259. [HttpGet]
  260. public ActionResult StatisticIndex()
  261. {
  262. var academic = Common.GetSemesterAndYear();
  263. ViewBag.Grade = academic.AcademicYearShort.Substring(0, 2);
  264. return View();
  265. }
  266. /// <summary>
  267. /// 新生信息班级统计
  268. /// <summary>
  269. /// <returns></returns>
  270. [HttpGet]
  271. public ActionResult StatisticClassIndex()
  272. {
  273. var academic = Common.GetSemesterAndYear();
  274. ViewBag.Grade = academic.AcademicYearShort.Substring(0, 2);
  275. return View();
  276. }
  277. #endregion
  278. #region 获取数据
  279. [HttpPost]
  280. [AjaxOnly]
  281. public void SynchronousList()
  282. {
  283. stuInfoFreshIBLL.SynchronousList();
  284. }
  285. /// <summary>
  286. /// 获取列表数据
  287. /// <summary>
  288. /// <returns></returns>
  289. [HttpGet]
  290. [AjaxOnly]
  291. public ActionResult GetList(string queryJson)
  292. {
  293. var data = stuInfoFreshIBLL.GetList(queryJson);
  294. return Success(data);
  295. }
  296. /// <summary>
  297. /// 获取列表分页数据
  298. /// <param name="pagination">分页参数</param>
  299. /// <summary>
  300. /// <returns></returns>
  301. [HttpGet]
  302. [AjaxOnly]
  303. public ActionResult GetPageList(string pagination, string queryJson)
  304. {
  305. Pagination paginationobj = pagination.ToObject<Pagination>();
  306. var data = stuInfoFreshIBLL.GetPageList(paginationobj, queryJson);
  307. var jsonData = new
  308. {
  309. rows = data,
  310. total = paginationobj.total,
  311. page = paginationobj.page,
  312. records = paginationobj.records
  313. };
  314. return Success(jsonData);
  315. }
  316. /// <summary>
  317. /// 获取表单数据
  318. /// <summary>
  319. /// <returns></returns>
  320. [HttpGet]
  321. [AjaxOnly]
  322. public ActionResult GetFormData(string keyValue)
  323. {
  324. var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue);
  325. //获取头像地址
  326. var url = Config.GetValue("defaultheadimg");
  327. if (StuInfoFreshData.IsPhoto == true && !string.IsNullOrEmpty(StuInfoFreshData.Photo))
  328. {
  329. var annexesFileEntity = annexesFileIBLL.GetEntity(StuInfoFreshData.Photo);
  330. if (annexesFileEntity != null)
  331. {
  332. url = "/" + annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
  333. }
  334. }
  335. var StuInfoFreshEmergePeopleData = stuInfoFreshIBLL.GetStuInfoFreshEmergePeopleList(StuInfoFreshData.ID);
  336. var StuInfoFreshFamilyData = stuInfoFreshIBLL.GetStuInfoFreshFamilyList(StuInfoFreshData.ID);
  337. var jsonData = new
  338. {
  339. StuInfoFresh = StuInfoFreshData,
  340. StuInfoFreshEmergePeople = StuInfoFreshEmergePeopleData,
  341. StuInfoFreshFamily = StuInfoFreshFamilyData,
  342. Url = url
  343. };
  344. return Success(jsonData);
  345. }
  346. /// <summary>
  347. /// 获取分配宿舍列表
  348. /// </summary>
  349. /// <param name="pagination"></param>
  350. /// <param name="queryJson"></param>
  351. /// <returns></returns>
  352. [HttpGet]
  353. [AjaxOnly]
  354. public ActionResult GetDormitorys(string pagination, string queryJson)
  355. {
  356. Pagination paginationobj = pagination.ToObject<Pagination>();
  357. var data = stuInfoFreshIBLL.GetDormitorys(paginationobj, queryJson);
  358. var jsonData = new
  359. {
  360. rows = data,
  361. total = paginationobj.total,
  362. page = paginationobj.page,
  363. records = paginationobj.records
  364. };
  365. return Success(jsonData);
  366. }
  367. /// <summary>
  368. /// 获取分配宿舍列表
  369. /// </summary>
  370. /// <param name="pagination"></param>
  371. /// <param name="queryJson"></param>
  372. /// <returns></returns>
  373. [HttpGet]
  374. [AjaxOnly]
  375. public ActionResult GetDormitorys2(string pagination, string queryJson)
  376. {
  377. Pagination paginationobj = pagination.ToObject<Pagination>();
  378. var data = stuInfoFreshIBLL.GetDormitorys2(paginationobj, queryJson);
  379. var jsonData = new
  380. {
  381. rows = data,
  382. total = paginationobj.total,
  383. page = paginationobj.page,
  384. records = paginationobj.records
  385. };
  386. return Success(jsonData);
  387. }
  388. /// <summary>
  389. /// 获取分配宿舍左侧树形数据
  390. /// <summary>
  391. /// <returns></returns>
  392. [HttpGet]
  393. [AjaxOnly]
  394. public ActionResult GetDormitoryTree()
  395. {
  396. var data = stuInfoFreshIBLL.GetTree().OrderBy(x => x.value);
  397. return Success(data);
  398. }
  399. /// <summary>
  400. /// 获取分配床位左侧树形数据
  401. /// <summary>
  402. /// <returns></returns>
  403. [HttpGet]
  404. [AjaxOnly]
  405. public ActionResult GetBedTree(string classNo, string gender)
  406. {
  407. var data = stuInfoFreshIBLL.GetBedTree(classNo, gender).OrderBy(x => x.text);
  408. return Success(data);
  409. }
  410. #endregion
  411. #region 提交数据
  412. /// <summary>
  413. /// 删除实体数据
  414. /// <param name="keyValue">主键</param>
  415. /// <summary>
  416. /// <returns></returns>
  417. [HttpPost]
  418. [AjaxOnly]
  419. public ActionResult DeleteForm(string keyValue)
  420. {
  421. stuInfoFreshIBLL.DeleteEntity(keyValue);
  422. return Success("删除成功!");
  423. }
  424. /// <summary>
  425. /// 保存实体数据(新增、修改)
  426. /// <param name="keyValue">主键</param>
  427. /// <summary>
  428. /// <returns></returns>
  429. [HttpPost]
  430. [ValidateAntiForgeryToken]
  431. [AjaxOnly]
  432. public ActionResult SaveForm(string keyValue, string strEntity, string strstuInfoFreshEmergePeopleList, string strstuInfoFreshFamilyList)
  433. {
  434. StuInfoFreshEntity entity = strEntity.ToObject<StuInfoFreshEntity>();
  435. if (!string.IsNullOrEmpty(entity.Photo))
  436. {
  437. entity.IsPhoto = true;
  438. }
  439. else
  440. {
  441. entity.IsPhoto = false;
  442. }
  443. List<StuInfoFreshEmergePeopleEntity> stuInfoFreshEmergePeopleList = strstuInfoFreshEmergePeopleList.ToObject<List<StuInfoFreshEmergePeopleEntity>>();
  444. List<StuInfoFreshFamilyEntity> stuInfoFreshFamilyList = strstuInfoFreshFamilyList.ToObject<List<StuInfoFreshFamilyEntity>>();
  445. stuInfoFreshIBLL.SaveEntity(keyValue, entity, stuInfoFreshEmergePeopleList, stuInfoFreshFamilyList);
  446. return Success("保存成功!");
  447. }
  448. /// <summary>
  449. /// 保存实体数据(新增、修改)
  450. /// <param name="keyValue">主键</param>
  451. /// <summary>
  452. /// <returns></returns>
  453. [HttpPost]
  454. [ValidateAntiForgeryToken]
  455. [AjaxOnly]
  456. public ActionResult SaveLoanForm(string keyValue, string strEntity)
  457. {
  458. StuInfoFreshEntity entity = strEntity.ToObject<StuInfoFreshEntity>();
  459. stuInfoFreshIBLL.SaveEntity(keyValue, entity);
  460. return Success("保存成功!");
  461. }
  462. #endregion
  463. #region 扩展数据
  464. /// <summary>
  465. /// 拍照
  466. /// </summary>
  467. /// <param name="stuId"></param>
  468. /// <param name="base64url"></param>
  469. /// <returns></returns>
  470. [HttpPost]
  471. [AjaxOnly]
  472. public ActionResult DoPhoto(string base64url)
  473. {
  474. var loginuser = LoginUserInfo.Get();
  475. //头像处理
  476. var folderId = Guid.NewGuid().ToString();
  477. string filePath = Config.GetValue("AnnexesFile");
  478. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  479. string FileEextension = ".png";
  480. string fileGuid = Guid.NewGuid().ToString();
  481. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, loginuser.account, uploadDate, fileGuid, FileEextension);
  482. //创建文件夹
  483. string path = Path.GetDirectoryName(virtualPath);
  484. Directory.CreateDirectory(path);
  485. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  486. if (!System.IO.File.Exists(virtualPath))
  487. {
  488. byte[] bytes = Convert.FromBase64String(base64url.Replace("data:image/png;base64,", ""));
  489. FileInfo file = new FileInfo(virtualPath);
  490. FileStream fs = file.Create();
  491. fs.Write(bytes, 0, bytes.Length);
  492. fs.Close();
  493. //文件信息写入数据库
  494. fileAnnexesEntity.F_Id = fileGuid;
  495. fileAnnexesEntity.F_FileName = "userphoto.png";
  496. fileAnnexesEntity.F_FilePath = virtualPath;
  497. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  498. fileAnnexesEntity.F_FileExtensions = FileEextension;
  499. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  500. fileAnnexesEntity.F_CreateUserId = loginuser.userId;
  501. fileAnnexesEntity.F_CreateUserName = loginuser.realName;
  502. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  503. }
  504. var data = new
  505. {
  506. Url = virtualPath,
  507. AnnexesFileId = fileGuid
  508. };
  509. return Success(data);
  510. }
  511. /// <summary>
  512. ///确认报到、取消报到
  513. /// </summary>
  514. /// <returns></returns>
  515. [HttpPost]
  516. [AjaxOnly]
  517. public ActionResult IsRegister(string keyValue, string status)
  518. {
  519. stuInfoFreshIBLL.IsRegister(keyValue, status);
  520. return Success("操作成功");
  521. }
  522. /// <summary>
  523. ///收取学生档案
  524. /// </summary>
  525. /// <returns></returns>
  526. [HttpPost]
  527. [AjaxOnly]
  528. public ActionResult IsCollectFile(string keyValue, string status)
  529. {
  530. stuInfoFreshIBLL.IsCollectFile(keyValue, status);
  531. return Success("操作成功");
  532. }
  533. /// <summary>
  534. ///领取钥匙
  535. /// </summary>
  536. /// <returns></returns>
  537. [HttpPost]
  538. [AjaxOnly]
  539. public ActionResult IsGetKey(string keyValue, string status)
  540. {
  541. stuInfoFreshIBLL.IsGetKey(keyValue, status);
  542. return Success("操作成功");
  543. }
  544. /// <summary>
  545. ///领取校园卡
  546. /// </summary>
  547. /// <returns></returns>
  548. [HttpPost]
  549. [AjaxOnly]
  550. public ActionResult IsGetCard(string keyValue, string status)
  551. {
  552. stuInfoFreshIBLL.IsGetCard(keyValue, status);
  553. return Success("操作成功");
  554. }
  555. /// <summary>
  556. ///领取军训服装
  557. /// </summary>
  558. /// <returns></returns>
  559. [HttpPost]
  560. [AjaxOnly]
  561. public ActionResult IsGetMiliClothes(string keyValue, string status)
  562. {
  563. stuInfoFreshIBLL.IsGetMiliClothes(keyValue, status);
  564. return Success("操作成功");
  565. }
  566. /// <summary>
  567. ///领取床上用品
  568. /// </summary>
  569. /// <returns></returns>
  570. [HttpPost]
  571. [AjaxOnly]
  572. public ActionResult IsGetBedding(string keyValue, string status)
  573. {
  574. stuInfoFreshIBLL.IsGetBedding(keyValue, status);
  575. return Success("操作成功");
  576. }
  577. /// <summary>
  578. ///缴费
  579. /// </summary>
  580. /// <returns></returns>
  581. [HttpPost]
  582. [AjaxOnly]
  583. public ActionResult IsPayFee(string keyValue, string status)
  584. {
  585. stuInfoFreshIBLL.IsPayFee(keyValue, status);
  586. return Success("操作成功");
  587. }
  588. /// <summary>
  589. ///其他费用缴费
  590. /// </summary>
  591. /// <returns></returns>
  592. [HttpPost]
  593. [AjaxOnly]
  594. public ActionResult IsOtherPayFee(string keyValue, string status)
  595. {
  596. stuInfoFreshIBLL.IsOtherPayFee(keyValue, status);
  597. return Success("操作成功");
  598. }
  599. /// <summary>
  600. ///审核助学贷款
  601. /// </summary>
  602. /// <returns></returns>
  603. [HttpPost]
  604. [AjaxOnly]
  605. public ActionResult DoCheckLoan(string keyValue, string status)
  606. {
  607. stuInfoFreshIBLL.DoCheckLoan(keyValue, status);
  608. return Success("操作成功");
  609. }
  610. /// <summary>
  611. /// 获取新生缴费明细
  612. /// <summary>
  613. /// <returns></returns>
  614. [HttpGet]
  615. [AjaxOnly]
  616. public ActionResult GetPayFeeDetail(string keyValue)
  617. {
  618. var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue);
  619. var FinaChargesStandardList = new List<FinaChargesStandardEntity>();
  620. if (!string.IsNullOrEmpty(StuInfoFreshData.ClassNo) && !string.IsNullOrEmpty(StuInfoFreshData.MajorNo))
  621. {
  622. var ClassInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(StuInfoFreshData.ClassNo);
  623. if (ClassInfoEntity != null)
  624. {
  625. var academicAndYear = Common.GetSemesterAndYear();
  626. FinaChargesStandardList = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNoOfNotAll(StuInfoFreshData.MajorNo, academicAndYear.AcademicYearShort, academicAndYear.Semester, ClassInfoEntity.Grade).ToList();
  627. }
  628. }
  629. var PayFeeTotal = FinaChargesStandardList.Select(x => x.Standard).Sum();
  630. var jsonData = new
  631. {
  632. FinaChargesStandardList = FinaChargesStandardList,
  633. PayFeeTotal = PayFeeTotal
  634. };
  635. return Success(jsonData);
  636. }
  637. /// <summary>
  638. /// 分配班级
  639. /// </summary>
  640. /// <param name="classNo"></param>
  641. /// <param name="dataJson"></param>
  642. /// <returns></returns>
  643. [HttpPost]
  644. [AjaxOnly]
  645. public ActionResult DoAllocationClass(string classNo, string dataJson)
  646. {
  647. var StuInfoFreshList = JsonConvert.DeserializeObject<List<StuInfoFreshEntity>>(dataJson);
  648. var ClassInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(classNo);
  649. if (ClassInfoEntity == null)
  650. {
  651. return Fail("分配的班级不存在!");
  652. }
  653. //获取当前班级已有人数
  654. var hasList = stuInfoFreshIBLL.GetStuInfoFreshListByClassNo(classNo);
  655. var hasLength = hasList.Count();
  656. var tempLength = hasLength;
  657. if (StuInfoFreshList.Any())
  658. {
  659. foreach (var item in StuInfoFreshList)
  660. {
  661. tempLength++;
  662. item.ClassNo = classNo;
  663. item.DeptNo = ClassInfoEntity.DeptNo;
  664. item.MajorNo = ClassInfoEntity.MajorNo;
  665. item.Grade = ClassInfoEntity.Grade;
  666. item.StuNo = string.Format("{0}{1}", classNo, tempLength < 10 ? "0" + tempLength : tempLength.ToString());
  667. }
  668. }
  669. stuInfoFreshIBLL.DoAllocationClass(StuInfoFreshList);
  670. return Success("分配成功!");
  671. }
  672. /// <summary>
  673. /// 分配宿舍
  674. /// </summary>
  675. /// <param name="classNo"></param>
  676. /// <param name="dataJson"></param>
  677. /// <returns></returns>
  678. [HttpPost]
  679. [AjaxOnly]
  680. public ActionResult DoAllocationDormitory(string classNo, string dataJson)
  681. {
  682. var acc_DormitoryBuildEntities = JsonConvert.DeserializeObject<List<Acc_DormitoryBuildEntity>>(dataJson);
  683. foreach (var entity in acc_DormitoryBuildEntities)
  684. {
  685. //预分床位数量是否合理
  686. if (entity.PlanBedNum < 1)
  687. {
  688. return Fail("预分床位数量至少为1位!");
  689. }
  690. if (entity.PlanBedNum > entity.RemainBedNum)
  691. {
  692. return Fail("预分床位数量不能超出可分配床位数量!");
  693. }
  694. entity.PlanClassNo = classNo;
  695. }
  696. stuInfoFreshIBLL.DoAllocationDormitory(acc_DormitoryBuildEntities);
  697. return Success("分配成功!");
  698. }
  699. /// <summary>
  700. /// 取消分配宿舍
  701. /// </summary>
  702. /// <param name="classNo"></param>
  703. /// <param name="dataJson"></param>
  704. /// <returns></returns>
  705. [HttpPost]
  706. [AjaxOnly]
  707. public ActionResult CancelAllocationDormitory(string classNo, string dataJson)
  708. {
  709. var acc_DormitoryBuildEntities = JsonConvert.DeserializeObject<List<Acc_DormitoryBuildEntity>>(dataJson);
  710. foreach (var entity in acc_DormitoryBuildEntities)
  711. {
  712. //取消已分配床位数量是否合理
  713. if (entity.CancelUseBedNum < 1)
  714. {
  715. return Fail("取消已分配床位数量至少为1位!");
  716. }
  717. if (entity.CancelUseBedNum > entity.UseBedNum)
  718. {
  719. return Fail("取消已分配床位数量不能超出已分配床位数量!");
  720. }
  721. entity.PlanClassNo = classNo;
  722. }
  723. stuInfoFreshIBLL.CancelAllocationDormitory(acc_DormitoryBuildEntities);
  724. return Success("取消分配成功!");
  725. }
  726. /// <summary>
  727. /// 分配床位
  728. /// </summary>
  729. /// <param name="dormitoryNo"></param>
  730. /// <param name="stuId"></param>
  731. /// <param name="dormitoryName"></param>
  732. /// <returns></returns>
  733. [HttpPost]
  734. [AjaxOnly]
  735. public ActionResult DoAllocationBed(string dormitoryNo, string keyValue)
  736. {
  737. stuInfoFreshIBLL.DoAllocationBed(dormitoryNo, keyValue);
  738. return Success("分配成功!");
  739. }
  740. /// <summary>
  741. /// 自动分配床位
  742. /// </summary>
  743. /// <param name="dormitoryNo"></param>
  744. /// <param name="stuId"></param>
  745. /// <param name="dormitoryName"></param>
  746. /// <returns></returns>
  747. [HttpPost]
  748. [AjaxOnly]
  749. public ActionResult DoAllocationBedOfAuto(string classNo)
  750. {
  751. stuInfoFreshIBLL.DoAllocationBedOfAuto(classNo);
  752. return Success("分配成功!");
  753. }
  754. [HttpGet]
  755. [AjaxOnly]
  756. public ActionResult ConfirmDormitory()
  757. {
  758. stuInfoFreshIBLL.ConfirmDormitory();
  759. return Success("操作成功!");
  760. }
  761. [HttpGet]
  762. [AjaxOnly]
  763. public ActionResult ConfirmDormitoryTwo()
  764. {
  765. stuInfoFreshIBLL.ConfirmDormitoryTwo();
  766. return Success("操作成功!");
  767. }
  768. [HttpPost]
  769. [AjaxOnly]
  770. public ActionResult GetUniform(string keyValue, bool Status)
  771. {
  772. stuInfoFreshIBLL.GetUniform(keyValue, Status);
  773. return Success("操作成功");
  774. }
  775. [HttpPost]
  776. [AjaxOnly]
  777. public ActionResult PayUniform(string keyValue, bool Status)
  778. {
  779. stuInfoFreshIBLL.PayUniform(keyValue, Status);
  780. return Success("操作成功");
  781. }
  782. /// <summary>
  783. /// 导入学籍信息
  784. /// </summary>
  785. /// <param name="dormitoryNo"></param>
  786. /// <param name="stuId"></param>
  787. /// <param name="dormitoryName"></param>
  788. /// <returns></returns>
  789. [HttpPost]
  790. [AjaxOnly]
  791. public ActionResult ImportStuInfoBasic()
  792. {
  793. stuInfoFreshIBLL.ImportStuInfoBasic();
  794. return Success("生成学籍信息成功!");
  795. }
  796. /// <summary>
  797. /// 导入床位
  798. /// </summary>
  799. /// <returns></returns>
  800. public ActionResult ImportBed(HttpPostedFileBase filedata)
  801. {
  802. if (filedata == null || filedata.FileName == null || filedata.ContentLength == 0)
  803. {
  804. if (Request.Files.Count > 0)
  805. {
  806. filedata = Request.Files[0];
  807. }
  808. }
  809. if (filedata == null)
  810. {
  811. return Fail("未获取到文件");
  812. }
  813. var pathoffirst = Config.GetValue("AnnexesFile");
  814. var pathofsecond = "/DormitoryBuildImportFile";
  815. var pathofthird = DateTime.Now.ToString("yyyyMMdd");
  816. var filename = filedata.FileName;
  817. var exten = Path.GetExtension(filename);
  818. var fileguid = Guid.NewGuid().ToString();
  819. var pathoffull = string.Format("{0}/{1}/{2}/{3}{4}", pathoffirst, pathofsecond, pathofthird, fileguid, exten);
  820. var pathofdown = string.Format("{0}/{1}/{2}{3}", pathofsecond, pathofthird, fileguid, exten);
  821. var directory = Path.GetDirectoryName(pathoffull);
  822. if (!Directory.Exists(directory))
  823. {
  824. Directory.CreateDirectory(directory);
  825. }
  826. //保存文件
  827. filedata.SaveAs(pathoffull);
  828. //读取文件
  829. var filePath = pathoffull;
  830. var strMsg = string.Empty;
  831. IWorkbook wk = null;
  832. string extension = System.IO.Path.GetExtension(filePath);
  833. try
  834. {
  835. FileStream fs = System.IO.File.OpenRead(filePath);
  836. if (extension.Equals(".xls"))
  837. {
  838. wk = new HSSFWorkbook(fs);
  839. }
  840. else
  841. {
  842. wk = new XSSFWorkbook(fs);
  843. }
  844. fs.Close();
  845. //读取当前表数据
  846. ISheet sheet = wk.GetSheetAt(0);
  847. IRow row = sheet.GetRow(0);
  848. int offset = 0;
  849. //导入床位成功数量
  850. int bedSuccNum = 0;
  851. var stuinfofreshlist = stuInfoFreshIBLL.GetList("{}");
  852. var accommodationList = accommodationIBLL.GetList();
  853. for (int i = 1; i <= sheet.LastRowNum; i++)
  854. {
  855. row = sheet.GetRow(i);
  856. if (row != null)
  857. {
  858. //姓名0、学号1、班级2、宿舍楼3、单元4、楼层5、房间6、床位7
  859. var stuInfoFreshEntity = stuinfofreshlist.FirstOrDefault(m => m.StuNo == row.GetCell(1).ToString());
  860. if (stuInfoFreshEntity == null)
  861. {
  862. continue;
  863. }
  864. var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassName(row.GetCell(2).ToString());
  865. if (classInfoEntity == null)
  866. {
  867. continue;
  868. }
  869. if (accommodationList.Any())
  870. {
  871. var build = accommodationList.FirstOrDefault(x => x.BuildType == "1" && x.Name == row.GetCell(3).ToString());
  872. if (build != null)
  873. {
  874. var unit = accommodationList.FirstOrDefault(x => x.BuildType == "2" && x.ParentID == build.ID && x.Name == row.GetCell(4).ToString());
  875. if (unit != null)
  876. {
  877. var floor = accommodationList.FirstOrDefault(x => x.BuildType == "3" && x.ParentID == unit.ID && x.Name == row.GetCell(5).ToString());
  878. if (floor != null)
  879. {
  880. var room = accommodationList.FirstOrDefault(x => x.BuildType == "4" && x.ParentID == floor.ID && x.Name == row.GetCell(6).ToString());
  881. if (room != null)
  882. {
  883. var bed = accommodationList.FirstOrDefault(x => x.BuildType == "5" && x.ParentID == room.ID && x.Name == row.GetCell(7).ToString());
  884. if (bed != null)
  885. {
  886. //分配床位
  887. stuInfoFreshIBLL.DoAllocationBed(bed.ID, stuInfoFreshEntity.ID);
  888. bedSuccNum++;
  889. //分配宿舍
  890. var alist = new List<Acc_DormitoryBuildEntity>();
  891. var accommodationEntity = new Acc_DormitoryBuildEntity();
  892. accommodationEntity.ID = room.ID;
  893. accommodationEntity.PlanBedNum = 1;
  894. accommodationEntity.PlanClassNo = classInfoEntity.ClassNo;
  895. accommodationEntity.bedId = bed.ID;
  896. alist.Add(accommodationEntity);
  897. stuInfoFreshIBLL.ImportDormitory(alist);
  898. }
  899. }
  900. }
  901. }
  902. }
  903. }
  904. }
  905. }
  906. strMsg = "导入床位成功" + bedSuccNum + "个!";
  907. }
  908. catch (Exception e)
  909. {
  910. return Fail("导入床位失败!" + strMsg);
  911. }
  912. return Success("导入床位成功!" + strMsg);
  913. }
  914. /// <summary>
  915. /// 导出学生宿舍信息
  916. /// </summary>
  917. /// <returns></returns>
  918. public FileResult ExportBed(string queryJson)
  919. {
  920. var fileHead = "学生宿舍信息";
  921. var postData = JsonConvert.DeserializeObject<StuInfoFreshEntity>(queryJson);
  922. if (!string.IsNullOrEmpty(postData.ClassNo))
  923. {
  924. var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(postData.ClassNo);
  925. fileHead = classInfoEntity?.ClassName + fileHead;
  926. }
  927. else if (!string.IsNullOrEmpty(postData.MajorNo))
  928. {
  929. var majorEntity = cdMajorIBLL.GetCdMajorEntityByMajorNo(postData.MajorNo);
  930. fileHead = majorEntity?.MajorName + fileHead;
  931. }
  932. else if (!string.IsNullOrEmpty(postData.DeptNo))
  933. {
  934. var deptEntity = cdDeptIBLL.GetCdDeptEntityByNo(postData.DeptNo);
  935. fileHead = deptEntity?.DeptName + fileHead;
  936. }
  937. FileStreamResult result = null;
  938. HSSFWorkbook book = new HSSFWorkbook();
  939. ISheet sheet = book.CreateSheet("Sheet0");
  940. for (int i = 0; i <= 9; i++)
  941. {
  942. sheet.SetColumnWidth(i, 256 * 15);
  943. }
  944. IRow headrow = sheet.CreateRow(0);
  945. headrow.CreateCell(0).SetCellValue(fileHead);
  946. sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
  947. IRow cellrow = sheet.CreateRow(1);
  948. cellrow.CreateCell(0).SetCellValue("姓名");
  949. cellrow.CreateCell(1).SetCellValue("学号");
  950. cellrow.CreateCell(2).SetCellValue("系");
  951. cellrow.CreateCell(3).SetCellValue("专业");
  952. cellrow.CreateCell(4).SetCellValue("班级");
  953. cellrow.CreateCell(5).SetCellValue("宿舍楼");
  954. cellrow.CreateCell(6).SetCellValue("单元");
  955. cellrow.CreateCell(7).SetCellValue("楼层");
  956. cellrow.CreateCell(8).SetCellValue("房间");
  957. cellrow.CreateCell(9).SetCellValue("床位");
  958. //获取数据源
  959. var data = stuInfoFreshIBLL.GetList(queryJson).ToList();
  960. foreach (var item in data)
  961. {
  962. var i = data.IndexOf(item);
  963. IRow row = sheet.CreateRow(2 + i);
  964. row.CreateCell(0).SetCellValue(item.StuName);
  965. row.CreateCell(1).SetCellValue(item.StuNo);
  966. row.CreateCell(2).SetCellValue(item.DeptName);
  967. row.CreateCell(3).SetCellValue(item.MajorName);
  968. row.CreateCell(4).SetCellValue(item.ClassName);
  969. row.CreateCell(5).SetCellValue(item.Build);
  970. row.CreateCell(6).SetCellValue(item.Unit);
  971. row.CreateCell(7).SetCellValue(item.floor);
  972. row.CreateCell(8).SetCellValue(item.Room);
  973. row.CreateCell(9).SetCellValue(item.Bed);
  974. }
  975. var fileguid = Guid.NewGuid().ToString();
  976. var path = Server.MapPath("~/Resource/DormitoryBuildExportFile/" + DateTime.Now.ToString("yyyyMMdd") + "/");
  977. var pathoffull = path + fileguid + ".xls";
  978. if (!Directory.Exists(path))
  979. {
  980. Directory.CreateDirectory(path);
  981. }
  982. FileStream fswrite = new FileStream(pathoffull, FileMode.OpenOrCreate, FileAccess.Write);
  983. book.Write(fswrite);
  984. fswrite.Close();
  985. FileStream fsread = new FileStream(pathoffull, FileMode.OpenOrCreate, FileAccess.Read);
  986. result = File(fsread, "application/ms-excel", fileHead + ".xls");
  987. return result;
  988. }
  989. /// <summary>
  990. /// 删除宿舍信息
  991. /// </summary>
  992. /// <param name="dormitoryNo"></param>
  993. /// <param name="stuId"></param>
  994. /// <param name="dormitoryName"></param>
  995. /// <returns></returns>
  996. [HttpPost]
  997. [AjaxOnly]
  998. public ActionResult DeleteBed(string keyValue)
  999. {
  1000. stuInfoFreshIBLL.DeleteBed(keyValue);
  1001. return Success("删除成功!");
  1002. }
  1003. /// <summary>
  1004. /// 年级下拉框信息【新生信息统计】
  1005. /// </summary>
  1006. /// <returns></returns>
  1007. [HttpGet]
  1008. [AjaxOnly]
  1009. public ActionResult GetGradeData()
  1010. {
  1011. var data = WebHelper.GenerateNearByYear2();
  1012. return Success(data);
  1013. }
  1014. /// <summary>
  1015. /// 获取列表数据
  1016. /// <summary>
  1017. /// <returns></returns>
  1018. [HttpGet]
  1019. [AjaxOnly]
  1020. public ActionResult GetStatisticList(string queryJson)
  1021. {
  1022. var data = stuInfoFreshIBLL.GetList2(queryJson);
  1023. var list = data.Where(x => !string.IsNullOrEmpty(x.MajorNo)).GroupBy(x => x.MajorNo).Select(x => new StatisticModel
  1024. {
  1025. MajorNo = x.Key,
  1026. MajorName = x.FirstOrDefault()?.MajorName,
  1027. Grade = x.FirstOrDefault()?.Grade,
  1028. TotalNum = x.Count(),
  1029. InfoNum = x.Count(y => y.IsStudentEdit == true),
  1030. RegisterNum = x.Count(y => y.RegisterStatus == "1"),
  1031. PayFeeNum = x.Count(y => y.PayFeeStatus == "1" || y.OnsitePayFeeStatus == "1"),
  1032. GetKeyNum = x.Count(y => y.GetKeyStatus == "1"),
  1033. GetCardNum = x.Count(y => y.GetCardStatus == "1"),
  1034. CollectFileNum = x.Count(y => y.CollectFileStatus == "1"),
  1035. LoanNum = x.Count(y => y.StudentLoanStatus == "1"),
  1036. GetMiliClothesNum = x.Count(y => y.GetMiliClothesStatus == "1"),
  1037. GetBeddingNum = x.Count(y => y.GetBeddingStatus == "1")
  1038. }).OrderBy(x => x.MajorNo);
  1039. //var aa = new StatisticModel
  1040. //{
  1041. // MajorNo = "全校",
  1042. // MajorName = "全校",
  1043. // Grade = list.FirstOrDefault()?.Grade,
  1044. // TotalNum = list.Select(x => x.TotalNum).Sum(),
  1045. // InfoNum = list.Select(x => x.InfoNum).Sum(),
  1046. // RegisterNum = list.Select(x => x.RegisterNum).Sum(),
  1047. // PayFeeNum = list.Select(x => x.PayFeeNum).Sum(),
  1048. // GetKeyNum = list.Select(x => x.GetKeyNum).Sum(),
  1049. //};
  1050. //var allList = new List<StatisticModel>();
  1051. //allList.Add(aa);
  1052. //allList.AddRange(list);
  1053. return Success(list);
  1054. }
  1055. /// <summary>
  1056. /// 获取列表数据
  1057. /// <summary>
  1058. /// <returns></returns>
  1059. [HttpGet]
  1060. [AjaxOnly]
  1061. public ActionResult GetStatisticListOfClass(string queryJson)
  1062. {
  1063. var data = stuInfoFreshIBLL.GetList2(queryJson);
  1064. var list = data.Where(x => !string.IsNullOrEmpty(x.ClassNo) && !string.IsNullOrEmpty(x.MajorNo)).GroupBy(x => new { x.MajorNo, x.ClassNo }).Select(x => new StatisticModel
  1065. {
  1066. ClassNo = x.Key.ClassNo,
  1067. ClassName = x.FirstOrDefault()?.ClassName,
  1068. Grade = x.FirstOrDefault()?.Grade,
  1069. MajorNo = x.Key.MajorNo,
  1070. MajorName = x.FirstOrDefault()?.MajorName,
  1071. TotalNum = x.Count(),
  1072. InfoNum = x.Count(y => y.IsStudentEdit == true),
  1073. RegisterNum = x.Count(y => y.RegisterStatus == "1"),
  1074. PayFeeNum = x.Count(y => y.PayFeeStatus == "1" || y.OnsitePayFeeStatus == "1"),
  1075. GetKeyNum = x.Count(y => y.GetKeyStatus == "1"),
  1076. GetCardNum = x.Count(y => y.GetCardStatus == "1"),
  1077. CollectFileNum = x.Count(y => y.CollectFileStatus == "1"),
  1078. LoanNum = x.Count(y => y.StudentLoanStatus == "1"),
  1079. GetMiliClothesNum = x.Count(y => y.GetMiliClothesStatus == "1"),
  1080. GetBeddingNum = x.Count(y => y.GetBeddingStatus == "1")
  1081. }).OrderBy(x => x.MajorNo).ThenBy(x => x.ClassNo);
  1082. return Success(list);
  1083. }
  1084. public class StatisticModel
  1085. {
  1086. public string MajorNo { get; set; }
  1087. public string MajorName { get; set; }
  1088. public string ClassNo { get; set; }
  1089. public string ClassName { get; set; }
  1090. public string Grade { get; set; }
  1091. /// <summary>
  1092. /// 总人数
  1093. /// </summary>
  1094. public int TotalNum { get; set; }
  1095. /// <summary>
  1096. /// 完善个人信息人数
  1097. /// </summary>
  1098. public int InfoNum { get; set; }
  1099. /// <summary>
  1100. /// 报到人数
  1101. /// </summary>
  1102. public int RegisterNum { get; set; }
  1103. /// <summary>
  1104. /// 缴费人数
  1105. /// </summary>
  1106. public int PayFeeNum { get; set; }
  1107. /// <summary>
  1108. /// 领钥匙人数
  1109. /// </summary>
  1110. public int GetKeyNum { get; set; }
  1111. /// <summary>
  1112. /// 已领取校园卡人数
  1113. /// </summary>
  1114. public int GetCardNum { get; set; }
  1115. /// <summary>
  1116. /// 已收取档案人数
  1117. /// </summary>
  1118. public int CollectFileNum { get; set; }
  1119. /// <summary>
  1120. /// 贷款人数
  1121. /// </summary>
  1122. public int LoanNum { get; set; }
  1123. /// <summary>
  1124. /// 已领取军训服装人数
  1125. /// </summary>
  1126. public int GetMiliClothesNum { get; set; }
  1127. /// <summary>
  1128. /// 已领取床上用品人数
  1129. /// </summary>
  1130. public int GetBeddingNum { get; set; }
  1131. }
  1132. /// <summary>
  1133. /// 获取列表数据
  1134. /// <summary>
  1135. /// <returns></returns>
  1136. [HttpGet]
  1137. [AjaxOnly]
  1138. public ActionResult GetStatisticArea(string queryJson)
  1139. {
  1140. var data = stuInfoFreshIBLL.GetList(queryJson);
  1141. var list = data.GroupBy(x => x.ProvinceNo).Select(x => new
  1142. {
  1143. ProvinceNo = x.Key,
  1144. TotalNum = x.Count(),
  1145. RegisterNum = x.Count(y => y.RegisterStatus == "1"),
  1146. BoyNum = x.Count(y => y.GenderNo == "1"),
  1147. GirlNum = x.Count(y => y.GenderNo == "0"),
  1148. }).OrderByDescending(a => a.TotalNum).ToList();
  1149. var item = new
  1150. {
  1151. ProvinceNo = "总计",
  1152. TotalNum = data.Count(),
  1153. RegisterNum = data.Count(y => y.RegisterStatus == "1"),
  1154. BoyNum = data.Count(y => y.GenderNo == "1"),
  1155. GirlNum = data.Count(y => y.GenderNo == "0"),
  1156. };
  1157. var zhounei = data.Where(a => a.ProvinceNo.Contains("5121"));
  1158. var item1 = new
  1159. {
  1160. ProvinceNo = "州内",
  1161. TotalNum = zhounei.Count(),
  1162. RegisterNum = zhounei.Count(y => y.RegisterStatus == "1"),
  1163. BoyNum = zhounei.Count(y => y.GenderNo == "1"),
  1164. GirlNum = zhounei.Count(y => y.GenderNo == "0"),
  1165. };
  1166. var zhouwai = data.Where(a => !a.ProvinceNo.Contains("5121"));
  1167. var item2 = new
  1168. {
  1169. ProvinceNo = "州外",
  1170. TotalNum = zhouwai.Count(),
  1171. RegisterNum = zhouwai.Count(y => y.RegisterStatus == "1"),
  1172. BoyNum = zhouwai.Count(y => y.GenderNo == "1"),
  1173. GirlNum = zhouwai.Count(y => y.GenderNo == "0"),
  1174. };
  1175. list.Add(item);
  1176. list.Add(item1);
  1177. list.Add(item2);
  1178. // var jsonData = new
  1179. // {
  1180. // rows = list,
  1181. // total = list.Count(),
  1182. // page = 1,
  1183. // records = list.Count();
  1184. //};
  1185. return Success(list);
  1186. }
  1187. #endregion
  1188. #region 上传图片
  1189. [HttpPost]
  1190. [AjaxOnly]
  1191. public ActionResult IsPhoto(string stuId, string base64url)
  1192. {
  1193. var loginuser = LoginUserInfo.Get();
  1194. //头像处理
  1195. var folderId = Guid.NewGuid().ToString();
  1196. string filePath = Config.GetValue("AnnexesFile");
  1197. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  1198. string FileEextension = ".png";
  1199. string fileGuid = Guid.NewGuid().ToString();
  1200. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, loginuser.account, uploadDate, fileGuid, FileEextension);
  1201. //创建文件夹
  1202. string path = Path.GetDirectoryName(virtualPath);
  1203. Directory.CreateDirectory(path);
  1204. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  1205. if (!System.IO.File.Exists(virtualPath))
  1206. {
  1207. byte[] bytes = Convert.FromBase64String(base64url.Replace("data:image/png;base64,", ""));
  1208. FileInfo file = new FileInfo(virtualPath);
  1209. FileStream fs = file.Create();
  1210. fs.Write(bytes, 0, bytes.Length);
  1211. fs.Close();
  1212. //文件信息写入数据库
  1213. fileAnnexesEntity.F_Id = fileGuid;
  1214. fileAnnexesEntity.F_FileName = "userphoto.png";
  1215. fileAnnexesEntity.F_FilePath = virtualPath;
  1216. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  1217. fileAnnexesEntity.F_FileExtensions = FileEextension;
  1218. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  1219. fileAnnexesEntity.F_CreateUserId = loginuser.userId;
  1220. fileAnnexesEntity.F_CreateUserName = loginuser.realName;
  1221. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  1222. }
  1223. var result = stuInfoFreshIBLL.IsPhoto(stuId, true, fileGuid);
  1224. if (result.Item1)
  1225. {
  1226. return Success(result.Item2);
  1227. }
  1228. else
  1229. {
  1230. return Fail(result.Item2);
  1231. }
  1232. }
  1233. #endregion
  1234. }
  1235. }