version_controller.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /**
  2. * 版本控制控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/7/28
  6. * @version
  7. */
  8. import BaseController from "../../common/base/base_controller";
  9. import VersionModel from "../models/version_model";
  10. import STDRationLibMapModel from "../../common/std/std_ration_lib_map_model";
  11. import STDBillLibListsModel from "../../common/std/std_bills_lib_lists_model";
  12. import {default as ProvinceConst, List as ProvinceList} from "../../common/const/province_const";
  13. class VersionController extends BaseController {
  14. /**
  15. * 版本控制页面
  16. *
  17. * @param {object} request
  18. * @param {object} response
  19. * @return {void}
  20. */
  21. async index(request, response) {
  22. let id = request.query.id;
  23. let versionList = [];
  24. let rationList = {};
  25. let selectedVersion = {};
  26. let billList = {};
  27. try {
  28. // 获取标准清单
  29. let stdBillLibListsModel = new STDBillLibListsModel();
  30. billList = await stdBillLibListsModel.getBillList();
  31. // 获取定额库
  32. let stdRationLibMapModel = new STDRationLibMapModel();
  33. rationList = await stdRationLibMapModel.getRationLib();
  34. let versionModel = new VersionModel();
  35. versionList = await versionModel.getVersionList();
  36. if (versionList.length <= 0) {
  37. throw '没有数据';
  38. }
  39. // 循环查找数据
  40. for (let tmp of versionList) {
  41. if (tmp._id.toString() === id) {
  42. selectedVersion = tmp;
  43. break;
  44. }
  45. }
  46. selectedVersion = Object.keys(selectedVersion).length <= 0 ? versionList[0] : selectedVersion;
  47. } catch (error) {
  48. console.log(error);
  49. }
  50. let renderData = {
  51. id: id,
  52. versionList: versionList,
  53. selectedVersion: selectedVersion,
  54. billList: JSON.stringify(billList),
  55. rationList: JSON.stringify(rationList),
  56. province: JSON.stringify(ProvinceList),
  57. layout: 'users/views/layout/layout'
  58. };
  59. response.render('users/views/version/index', renderData);
  60. }
  61. /**
  62. * 新增版本操作
  63. *
  64. * @param {object} request
  65. * @param {object} response
  66. * @return {void}
  67. */
  68. async add(request, response) {
  69. let name = request.body.name;
  70. let standardBillId = request.body.standard_bill_id;
  71. let standardBill = request.body.standard_bill;
  72. let rationLibId = request.body.ration_lib_id;
  73. let rationLib = request.body.ration_lib;
  74. let responseData = {
  75. err: 0,
  76. msg: ''
  77. };
  78. try {
  79. let sessionManager = request.session.managerData;
  80. let insertData = {
  81. name: name,
  82. standard_bill: [{id: standardBillId, name: standardBill}],
  83. ration_lib: [{id: rationLibId, name: rationLib}],
  84. creator: sessionManager.userID
  85. };
  86. let versionModel = new VersionModel();
  87. let result = await versionModel.add(insertData);
  88. if (!result) {
  89. throw '新增版本失败';
  90. }
  91. } catch (error) {
  92. console.log(error);
  93. responseData.err = 1;
  94. responseData.msg = error;
  95. }
  96. response.json(responseData);
  97. }
  98. /**
  99. * 新增标准清单/定额库
  100. *
  101. * @param {object} request
  102. * @param {object} response
  103. * @return {void}
  104. */
  105. async addLib(request, response) {
  106. let responseData = {
  107. err: 0,
  108. msg: ''
  109. };
  110. try {
  111. let versionModel = new VersionModel();
  112. let addResult = await versionModel.addLib(request.body);
  113. if (!addResult) {
  114. throw '新增失败';
  115. }
  116. } catch (error) {
  117. responseData.err = 1;
  118. responseData.msg = error;
  119. }
  120. response.json(responseData);
  121. }
  122. /**
  123. * 删除对应的标准清单/定额库
  124. *
  125. * @param {object} request
  126. * @param {object} response
  127. * @return {void}
  128. */
  129. async deleteLib(request, response) {
  130. let id = request.body.id;
  131. let model = request.body.model;
  132. let deleteId = request.body.delete_id;
  133. let responseData = {
  134. err: 0,
  135. msg: ''
  136. };
  137. try {
  138. let versionModel = new VersionModel();
  139. let result = await versionModel.deleteLib(id, deleteId, model);
  140. if (!result) {
  141. throw '删除失败';
  142. }
  143. } catch (error) {
  144. responseData.err = 1;
  145. responseData.msg = error;
  146. }
  147. response.json(responseData);
  148. }
  149. }
  150. export default VersionController;