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.
 
 
 
 
 
 

611 lines
17 KiB

  1. using Learun.Util;
  2. using System.Data;
  3. using Learun.Application.TwoDevelopment.LogisticsManagement;
  4. using System.Web.Mvc;
  5. using System.Collections.Generic;
  6. using System.Web.Helpers;
  7. using Newtonsoft.Json;
  8. using Newtonsoft.Json.Linq;
  9. using System;
  10. using System.Linq;
  11. using System.IO;
  12. using Learun.Application.Base.SystemModule;
  13. namespace Learun.Application.Web.Areas.LogisticsManagement.Controllers
  14. {
  15. /// <summary>
  16. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  17. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  18. /// 创 建:超级管理员
  19. /// 日 期:2019-04-26 15:02
  20. /// 描 述:学生宿舍管理
  21. /// </summary>
  22. public class AccommodationController : MvcControllerBase
  23. {
  24. private AccommodationIBLL accommodationIBLL = new AccommodationBLL();
  25. private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
  26. #region 视图功能
  27. /// <summary>
  28. /// 主页面
  29. /// <summary>
  30. /// <returns></returns>
  31. [HttpGet]
  32. public ActionResult Index()
  33. {
  34. return View();
  35. }
  36. /// <summary>
  37. /// 分配宿舍
  38. /// <summary>
  39. /// <returns></returns>
  40. [HttpGet]
  41. public ActionResult IndexDistribution()
  42. {
  43. return View();
  44. }
  45. /// <summary>
  46. /// 带参数的表单页
  47. /// <summary>
  48. /// <returns></returns>
  49. [HttpGet]
  50. public ActionResult Form(string ParentID = null, string ParentName = null, string keyValue = null)
  51. {
  52. ViewBag.ParentID = ParentID;
  53. ViewBag.ParentName = ParentName;
  54. ViewBag.BuildType = accommodationIBLL.GetBuildType(ParentID);
  55. if (!string.IsNullOrEmpty(keyValue))
  56. {
  57. ViewBag.BuildType = accommodationIBLL.GetParentBuildType(keyValue);
  58. }
  59. return View();
  60. }
  61. /// <summary>
  62. /// 宿舍楼
  63. /// </summary>
  64. /// <returns></returns>
  65. [HttpGet]
  66. public ActionResult Floor()
  67. {
  68. return View();
  69. }
  70. /// <summary>
  71. /// 单元
  72. /// </summary>
  73. /// <returns></returns>
  74. [HttpGet]
  75. public ActionResult Unit(string ID)
  76. {
  77. ViewBag.ParentID = ID;
  78. return View();
  79. }
  80. /// <summary>
  81. /// 楼层
  82. /// </summary>
  83. /// <returns></returns>
  84. [HttpGet]
  85. public ActionResult Corridor(string ID)
  86. {
  87. ViewBag.ParentID = ID;
  88. return View();
  89. }
  90. /// <summary>
  91. /// 房间
  92. /// </summary>
  93. /// <returns></returns>
  94. [HttpGet]
  95. public ActionResult Dormitory(string ID)
  96. {
  97. ViewBag.ParentID = ID;
  98. return View();
  99. }
  100. /// <summary>
  101. /// 床位
  102. /// </summary>
  103. /// <returns></returns>
  104. [HttpGet]
  105. public ActionResult Room(string ID)
  106. {
  107. ViewBag.ParentID = ID;
  108. return View();
  109. }
  110. /// <summary>
  111. /// 批量添加单元、楼层、房间、床位
  112. /// </summary>
  113. /// <param name="ParentID"></param>
  114. /// <returns></returns>
  115. [HttpGet]
  116. public ActionResult DormitoryAdd(string ParentID)
  117. {
  118. return View();
  119. }
  120. /// <summary>
  121. /// 自动分配宿舍
  122. /// </summary>
  123. /// <returns></returns>
  124. [HttpGet]
  125. public ActionResult Allocation()
  126. {
  127. return View();
  128. }
  129. /// <summary>
  130. /// 分配系
  131. /// </summary>
  132. /// <returns></returns>
  133. [HttpGet]
  134. public ActionResult FormDept()
  135. {
  136. return View();
  137. }
  138. /// <summary>
  139. /// 分配专业和班级
  140. /// </summary>
  141. /// <returns></returns>
  142. [HttpGet]
  143. public ActionResult FormClass()
  144. {
  145. return View();
  146. }
  147. /// <summary>
  148. /// 分配宿舍
  149. /// </summary>
  150. /// <returns></returns>
  151. [HttpGet]
  152. public ActionResult FormRoom()
  153. {
  154. return View();
  155. }
  156. /// <summary>
  157. /// 床位管理
  158. /// </summary>
  159. /// <returns></returns>
  160. [HttpGet]
  161. public ActionResult IndexBed()
  162. {
  163. return View();
  164. }
  165. /// <summary>
  166. /// 床位管理
  167. /// </summary>
  168. /// <returns></returns>
  169. [HttpGet]
  170. public ActionResult FormBed()
  171. {
  172. return View();
  173. }
  174. /// <summary>
  175. /// 分类管理
  176. /// </summary>
  177. /// <returns></returns>
  178. [HttpGet]
  179. public ActionResult FormClassify()
  180. {
  181. return View();
  182. }
  183. /// <summary>
  184. /// 分类管理
  185. /// </summary>
  186. /// <returns></returns>
  187. [HttpGet]
  188. public ActionResult IndexClassify()
  189. {
  190. return View();
  191. }
  192. /// <summary>
  193. /// 分类管理
  194. /// </summary>
  195. /// <returns></returns>
  196. [HttpGet]
  197. public ActionResult ClearForm()
  198. {
  199. return View();
  200. }
  201. /// <summary>
  202. /// 导入宿舍
  203. /// </summary>
  204. /// <returns></returns>
  205. [HttpGet]
  206. public ActionResult IndexImport()
  207. {
  208. return View();
  209. }
  210. #endregion
  211. #region 获取数据
  212. /// <summary>
  213. /// 获取页面显示列表数据
  214. /// <summary>
  215. /// <param name="queryJson">查询参数</param>
  216. /// <returns></returns>
  217. [HttpGet]
  218. [AjaxOnly]
  219. public ActionResult GetPageList(string pagination, string queryJson)
  220. {
  221. Pagination paginationobj = pagination.ToObject<Pagination>();
  222. var data = accommodationIBLL.GetPageList(paginationobj, queryJson);
  223. var jsonData = new
  224. {
  225. rows = data,
  226. total = paginationobj.total,
  227. page = paginationobj.page,
  228. records = paginationobj.records
  229. };
  230. return Success(jsonData);
  231. }
  232. /// <summary>
  233. /// 获取床位数据
  234. /// <summary>
  235. /// <param name="RoomId">查询参数</param>
  236. /// <returns></returns>
  237. [HttpGet]
  238. [AjaxOnly]
  239. public ActionResult GetBedListByRoomId(string RoomId)
  240. {
  241. var data = accommodationIBLL.GetBedListByRoomId(RoomId).OrderBy(x => x.DNo);
  242. return Success(data);
  243. }
  244. /// <summary>
  245. /// 获取分类数据
  246. /// <summary>
  247. /// <param name="queryJson"></param>
  248. /// <returns></returns>
  249. [HttpGet]
  250. [AjaxOnly]
  251. public ActionResult GetClassifyList(string pagination, string queryJson)
  252. {
  253. Pagination paginationobj = pagination.ToObject<Pagination>();
  254. var data = accommodationIBLL.GetClassifyList(paginationobj, queryJson).OrderBy(x => x.DNo);
  255. //var jsonData = new
  256. //{
  257. // rows = data,
  258. // total = paginationobj.total,
  259. // page = paginationobj.page,
  260. // records = paginationobj.records
  261. //};
  262. return Success(data);
  263. }
  264. /// <summary>
  265. /// 获取宿舍楼数据
  266. /// </summary>
  267. /// <returns></returns>
  268. [HttpGet]
  269. [AjaxOnly]
  270. public ActionResult GetDormitoryList()
  271. {
  272. var data = accommodationIBLL.GetDormitoryList();
  273. return Success(data);
  274. }
  275. /// <summary>
  276. /// 获取单元数据
  277. /// </summary>
  278. /// <param name="ParentID"></param>
  279. /// <returns></returns>
  280. [HttpGet]
  281. [AjaxOnly]
  282. public ActionResult GetUnitList(string ParentID)
  283. {
  284. var data = accommodationIBLL.GetUnitList(ParentID);
  285. return Success(data);
  286. }
  287. /// <summary>
  288. /// 获取楼层数据
  289. /// </summary>
  290. /// <param name="ParentID"></param>
  291. /// <returns></returns>
  292. [HttpGet]
  293. [AjaxOnly]
  294. public ActionResult GetFloorList(string ParentID)
  295. {
  296. var data = accommodationIBLL.GetFloorList(ParentID);
  297. return Success(data);
  298. }
  299. /// <summary>
  300. /// 获取房间数据
  301. /// </summary>
  302. /// <param name="ParentID"></param>
  303. /// <returns></returns>
  304. [HttpGet]
  305. [AjaxOnly]
  306. public ActionResult GetRoomList(string ParentID)
  307. {
  308. var data = accommodationIBLL.GetRoomList(ParentID);
  309. return Success(data);
  310. }
  311. public ActionResult GetBedList(string ParentID)
  312. {
  313. var data = accommodationIBLL.GetBedList(ParentID);
  314. return Success(data);
  315. }
  316. /// <summary>
  317. /// 获取表单数据
  318. /// <summary>
  319. /// <returns></returns>
  320. [HttpGet]
  321. [AjaxOnly]
  322. public ActionResult GetFormData(string keyValue)
  323. {
  324. var Acc_DormitoryBuildData = accommodationIBLL.GetAcc_DormitoryBuildEntity(keyValue);
  325. var jsonData = new
  326. {
  327. Acc_DormitoryBuild = Acc_DormitoryBuildData,
  328. };
  329. return Success(jsonData);
  330. }
  331. /// <summary>
  332. /// 获取左侧树形数据
  333. /// <summary>
  334. /// <returns></returns>
  335. [HttpGet]
  336. [AjaxOnly]
  337. public ActionResult GetTree()
  338. {
  339. var data = accommodationIBLL.GetTree();
  340. return Success(data);
  341. }
  342. /// <summary>
  343. /// 获取左侧树形数据
  344. /// <summary>
  345. /// <returns></returns>
  346. [HttpGet]
  347. [AjaxOnly]
  348. public ActionResult GetTreeNew()
  349. {
  350. var data = accommodationIBLL.GetTreeNew();
  351. return Success(data);
  352. }
  353. /// <summary>
  354. /// 获取上级树形数据
  355. /// <summary>
  356. /// <returns></returns>
  357. [HttpGet]
  358. [AjaxOnly]
  359. public ActionResult GetClassifyTree()
  360. {
  361. var data = accommodationIBLL.GetClassifyTree();
  362. return Success(data);
  363. }
  364. #endregion
  365. #region 提交数据
  366. /// <summary>
  367. /// 删除实体数据
  368. /// <param name="keyValue">主键</param>
  369. /// <summary>
  370. /// <returns></returns>
  371. [HttpPost]
  372. [AjaxOnly]
  373. public ActionResult DeleteForm(string keyValue)
  374. {
  375. accommodationIBLL.DeleteEntity(keyValue);
  376. return Success("删除成功!");
  377. }
  378. /// <summary>
  379. /// 删除
  380. /// <param name="keyValue">主键</param>
  381. /// <summary>
  382. /// <returns></returns>
  383. [HttpPost]
  384. [AjaxOnly]
  385. public ActionResult DeleteBed(string keyValue, string ParentID)
  386. {
  387. accommodationIBLL.DeleteBed(keyValue, ParentID);
  388. return Success("删除成功!");
  389. }
  390. /// <summary>
  391. /// 保存实体数据(新增、修改)
  392. /// <param name="keyValue">主键</param>
  393. /// <summary>
  394. /// <returns></returns>
  395. [HttpPost]
  396. [ValidateAntiForgeryToken]
  397. [AjaxOnly]
  398. public ActionResult SaveForm(string keyValue, string strEntity)
  399. {
  400. Acc_DormitoryBuildEntity entity = strEntity.ToObject<Acc_DormitoryBuildEntity>();
  401. accommodationIBLL.SaveEntity(keyValue, entity);
  402. return Success("保存成功!");
  403. }
  404. /// <summary>
  405. /// 保存实体数据(新增、修改)
  406. /// <param name="keyValue">主键</param>
  407. /// <summary>
  408. /// <returns></returns>
  409. [HttpPost]
  410. [ValidateAntiForgeryToken]
  411. [AjaxOnly]
  412. public ActionResult SaveBedForm(string keyValue, string ParentID, string strEntity)
  413. {
  414. Acc_DormitoryBuildEntity entity = strEntity.ToObject<Acc_DormitoryBuildEntity>();
  415. accommodationIBLL.SaveBedEntity(keyValue, ParentID, entity);
  416. return Success("保存成功!");
  417. }
  418. /// <summary>
  419. /// 寝室分配系
  420. /// <param name="keyValue">主键</param>
  421. /// <summary>
  422. /// <returns></returns>
  423. [HttpPost]
  424. [ValidateAntiForgeryToken]
  425. [AjaxOnly]
  426. public ActionResult SaveDeptClass(string keyValue, string strEntity, int type)
  427. {
  428. Acc_DormitoryBuildEntity entity = strEntity.ToObject<Acc_DormitoryBuildEntity>();
  429. accommodationIBLL.SaveDeptClass(keyValue, entity, type);
  430. return Success("保存成功!");
  431. }
  432. /// <summary>
  433. /// 寝室分配床位
  434. /// <summary>
  435. /// <returns></returns>
  436. [HttpPost]
  437. [ValidateAntiForgeryToken]
  438. [AjaxOnly]
  439. public ActionResult SaveRoom(string RoomId, List<Acc_DormitoryBuildEntity> list)
  440. {
  441. //List<Acc_DormitoryBuildEntity> list = strEntity.ToObject<List<Acc_DormitoryBuildEntity>>();
  442. string res = accommodationIBLL.SaveRoom(RoomId, list);
  443. if (!string.IsNullOrEmpty(res))
  444. {
  445. return Fail(res);
  446. }
  447. return Success("保存成功!");
  448. }
  449. /// <summary>
  450. /// 学生宿舍的单元、楼层、房间、床位添加
  451. /// </summary>
  452. /// <param name="keyValue">主键</param>
  453. /// <param name="strEntity">参数 (单元、楼层、房间、床位)数量</param>
  454. /// <returns></returns>
  455. [HttpPost]
  456. [ValidateAntiForgeryToken]
  457. [AjaxOnly]
  458. public ActionResult DormitoryAdd(string keyValue, string strEntity)
  459. {
  460. JObject jsonEntity = JObject.Parse(strEntity);
  461. var elementNum = int.Parse(jsonEntity["ElementNum"].ToString());
  462. var floorNum = int.Parse(jsonEntity["FloorNum"].ToString());
  463. var roomNum = int.Parse(jsonEntity["RoomNum"].ToString());
  464. var bedNum = int.Parse(jsonEntity["BedNum"].ToString());
  465. accommodationIBLL.DormitoryAdd(keyValue, elementNum, floorNum, roomNum, bedNum);
  466. return Success("添加成功");
  467. }
  468. /// <summary>
  469. /// 自动分配学生宿舍
  470. /// </summary>
  471. /// <returns></returns>
  472. public ActionResult Automatic(string strEntity)
  473. {
  474. JObject jsonEntity = JObject.Parse(strEntity);
  475. bool noNation = jsonEntity["noNation"].ToString() == "1" ? true : false;
  476. bool noPlace = jsonEntity["noPlace"].ToString() == "1" ? true : false;
  477. accommodationIBLL.Automatic_allocation_accommodation(noNation, noPlace);
  478. return Success("分配成功");
  479. }
  480. /// <summary>
  481. /// 同步宿舍信息数据
  482. /// </summary>
  483. /// <returns></returns>
  484. public ActionResult SyncData()
  485. {
  486. accommodationIBLL.SyncData();
  487. return Success("同步成功");
  488. }
  489. /// <summary>
  490. /// 按条件清空
  491. /// </summary>
  492. /// <returns></returns>
  493. public ActionResult StudentClear(string Grade)
  494. {
  495. accommodationIBLL.ClearEntity(Grade);
  496. return Success("清空成功");
  497. }
  498. /// <summary>
  499. /// 宿舍信息导入模板
  500. /// </summary>
  501. /// <returns></returns>
  502. public ActionResult DownTemplate()
  503. {
  504. FileStreamResult result = null;
  505. try
  506. {
  507. var path = Server.MapPath("~/Content/excel/");
  508. var pathoffull = path + "AccommodationImport.xls";
  509. FileStream fsread = fsread = new FileStream(pathoffull, FileMode.OpenOrCreate, FileAccess.ReadWrite);
  510. result = File(fsread, "application/ms-excel", "宿舍信息导入.xls");
  511. return result;
  512. }
  513. catch (Exception ex)
  514. {
  515. return null;
  516. }
  517. }
  518. /// <summary>
  519. /// 宿舍信息excel文件导入
  520. /// </summary>
  521. /// <param name="templateId"></param>
  522. /// <param name="Filedata"></param>
  523. /// <returns></returns>
  524. [HttpPost]
  525. [ValidateAntiForgeryToken]
  526. public ActionResult ExecuteImportExcel(string fileGuid, int chunks)
  527. {
  528. string path = annexesFileIBLL.SaveAnnexes(fileGuid, fileGuid, chunks, LoginUserInfo.Get());
  529. if (!string.IsNullOrEmpty(path))
  530. {
  531. DataTable dt = ExcelHelper.ExcelImport(path);
  532. var res = accommodationIBLL.ExecuteImportExcel(dt, fileGuid);
  533. var data = new
  534. {
  535. Success = res.snum,
  536. Fail = res.failDt.Rows.Count
  537. };
  538. return Success(data);
  539. }
  540. else
  541. {
  542. return Fail("导入数据失败!");
  543. }
  544. }
  545. #endregion
  546. }
  547. }