compilation_controller.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. /**
  2. * 编办控制控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/7/28
  6. * @compilation
  7. */
  8. import BaseController from "../../common/base/base_controller";
  9. import CompilationModel from "../models/compilation_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 STDGLJLibMapModel from "../../common/std/std_glj_lib_map_model";
  13. import STDFeeRateLibsModel from "../../common/std/std_fee_rate_libs_model";
  14. import {default as EngineeringConst, List as EngineeringList} from "../../common/const/engineering";
  15. import BillsTemplateModel from "../models/bills_template_model";
  16. import {default as BillsFixedFlagConst, List as BillsFixedFlagList} from "../../common/const/bills_fixed.js";
  17. import {default as BillsTypeFlagConst, List as BillsTypeFlagList} from "../../common/const/bills_type.js";
  18. import EngineeringLibModel from "../models/engineering_lib_model";
  19. import STDLabourCoesModel from "../../common/std/std_labour_coes_model";
  20. import STDCalcProgramModel from "../../common/std/std_calc_program_model";
  21. const billsGuidanceFc = require('../../std_billsGuidance_lib/facade/facades');
  22. import mainColFacade from "../../main_col_lib/facade/main_col_facade";
  23. import billTemplateFacade from "../../bills_template_lib/facade/bills_template_facade";
  24. import projectFeatureFacade from "../../project_feature_lib/facade/project_feature_facade";
  25. import basicInfoFacade from "../../basic_info_lib/facade/basic_info_facade";
  26. import engineerInfoFacade from "../../engineer_info_lib/facade/engineer_info_facade";
  27. import engineerFeatureFacade from "../../engineer_feature_lib/facade/engineer_feature_facade";
  28. import materialFacade from "../../material_lib/facade/material_facade";
  29. import quantityFacade from "../../main_quantity_lib/facade/quantity_facade";
  30. import economicFacade from "../../economic_lib/facade/economic_facade";
  31. import overHeightFacade from "../../over_height_lib/facade/over_height_facade";
  32. import {default as category, List as categoryList} from "../../common/const/category_const.js";
  33. let config = require("../../../config/config.js");
  34. const fs = require('fs');
  35. let _ = require('lodash');
  36. class CompilationController extends BaseController {
  37. /**
  38. * 编办管理控制页面
  39. *
  40. * @param {object} request
  41. * @param {object} response
  42. * @return {void}
  43. */
  44. async index(request, response) {
  45. let id = request.query.id;
  46. let compilationList = [];
  47. let selectedCompilation = {};
  48. try {
  49. let compilationModel = new CompilationModel();
  50. compilationList = await compilationModel.getCompilationList();
  51. if (compilationList.length <= 0) {
  52. throw '没有数据';
  53. }
  54. // 循环查找数据
  55. for (let tmp of compilationList) {
  56. if (tmp._id.toString() === id) {
  57. selectedCompilation = tmp;
  58. break;
  59. }
  60. }
  61. selectedCompilation = Object.keys(selectedCompilation).length <= 0 ? compilationList[0] : selectedCompilation;
  62. request.session.selectedCompilation = selectedCompilation;
  63. } catch (error) {
  64. console.log(error);
  65. }
  66. if (selectedCompilation.example && Array.isArray(selectedCompilation.example)) {
  67. selectedCompilation.example = selectedCompilation.example.join(';');
  68. }
  69. let renderData = {
  70. id: id,
  71. compilationList: compilationList,
  72. categoryList: categoryList,
  73. selectedCompilation: selectedCompilation,
  74. layout: 'users/views/layout/layout',
  75. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  76. };
  77. response.render('users/views/compilation/index', renderData);
  78. }
  79. /**
  80. * 新增计价页面
  81. *
  82. * @param {object} request
  83. * @param {object} response
  84. * @return {void}
  85. */
  86. async addValuation(request, response) {
  87. let name = request.body.name;
  88. let id = request.body.id;
  89. let section = request.body.section;
  90. let responseData = {
  91. err: 0,
  92. msg: ''
  93. };
  94. try {
  95. if (id === undefined || id === '') {
  96. throw '参数错误';
  97. }
  98. let insertData = {
  99. name: name,
  100. };
  101. let compilationModel = new CompilationModel();
  102. let valuationId = await compilationModel.addValuation(id, section, insertData);
  103. if (!valuationId) {
  104. throw '新增计价规则失败';
  105. }
  106. //添加标准工程专业 2018-08-24 不自动添加标准工程了
  107. /*let engineeringLibModel = new EngineeringLibModel();
  108. let stdEngs = await engineeringLibModel.addStdLib(valuationId);
  109. console.log(stdEngs);*/
  110. } catch (error) {
  111. console.log(error);
  112. responseData.err = 1;
  113. responseData.msg = error;
  114. }
  115. response.json(responseData);
  116. }
  117. /**
  118. * 修改计价规则页面
  119. *
  120. * @param {object} request
  121. * @param {object} response
  122. * @return {void}
  123. */
  124. async editValuation(request, response) {
  125. let selectedCompilation = request.session.selectedCompilation;
  126. let valuationId = request.params.id;
  127. let section = request.params.section;
  128. let compilationList = [];
  129. let engineeringList = [];
  130. let valuationData = {};
  131. let valuationList = {};
  132. try {
  133. let compilationModel = new CompilationModel();
  134. compilationList = await compilationModel.getCompilationList();
  135. // 获取对应的计价规则数据
  136. [valuationData, valuationList] = await compilationModel.getValuation(selectedCompilation._id, valuationId, section);
  137. if (Object.keys(valuationData).length <= 0) {
  138. throw '不存在数据';
  139. }
  140. // 获取计价规则中对应的标准库数据
  141. let engineeringLibModel = new EngineeringLibModel();
  142. engineeringList = await engineeringLibModel.getLibsByValuationID(valuationId);
  143. engineeringList = _.sortBy(engineeringList,['seq'])
  144. } catch (error) {
  145. console.log(error);
  146. }
  147. let renderData = {
  148. compilationList: compilationList,
  149. engineeringList: engineeringList,
  150. selectedCompilation: selectedCompilation,
  151. valuationData: valuationData,
  152. valuationList: valuationList,
  153. valuationId: valuationId,
  154. section: section,
  155. layout: 'users/views/layout/layout',
  156. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  157. };
  158. response.render('users/views/compilation/add', renderData);
  159. }
  160. /**
  161. * 编辑工程专业页面
  162. *
  163. * @param {object} request
  164. * @param {object} response
  165. * @return {void}
  166. */
  167. async editEngineering(request, response) {
  168. let engineerID = request.params.engineerID;
  169. let valuationId = request.params.id;
  170. let section = request.params.section;
  171. let selectedCompilation = request.session.selectedCompilation;
  172. let compilationList = [],
  173. billList = [],
  174. rationList = [],
  175. gljList = [],
  176. feeRateList = [],
  177. libData = {},
  178. billsTemplateData = [],
  179. featureList = [],
  180. infoList = [],
  181. engineerInfoList=[],
  182. engineerFeatureList=[],
  183. materialList=[],
  184. mainQuantityList=[],
  185. economicList=[],
  186. overHeightList=[];
  187. let valuationData = {}, valuationList = {}, artificialCoefficientList = [], calculationList = [], billsGuidanceList = [], mainTreeColList = [];
  188. let billTemplateList = [];
  189. try {
  190. let compilationModel = new CompilationModel();
  191. compilationList = await compilationModel.getCompilationList();
  192. // 获取标准清单,不绑定编办
  193. let stdBillLibListsModel = new STDBillLibListsModel();
  194. billList = await stdBillLibListsModel.getBillList();
  195. // 获取定额库
  196. let stdRationLibMapModel = new STDRationLibMapModel();
  197. rationList = await stdRationLibMapModel.getRationLib(selectedCompilation._id);
  198. // 获取工料机库
  199. let stdGLJLibMapModel = new STDGLJLibMapModel();
  200. gljList = await stdGLJLibMapModel.getGLJLibList(selectedCompilation._id);
  201. // 获取费率标准库
  202. let stdFeeRateLibsModel = new STDFeeRateLibsModel();
  203. feeRateList = await stdFeeRateLibsModel.getFeeRateList(selectedCompilation._id);
  204. // 获取人工系数标准库
  205. let stdLabourCoesModel = new STDLabourCoesModel();
  206. artificialCoefficientList = await stdLabourCoesModel.getLabourCoesList();
  207. // 获取计算程序库
  208. let stdCalcProgramModel = new STDCalcProgramModel();
  209. calculationList = await stdCalcProgramModel.getProgramList(selectedCompilation._id);
  210. //获取列设置库
  211. mainTreeColList = await mainColFacade.getColLibsByCompilationID(selectedCompilation._id);
  212. //获取清单模板库
  213. billTemplateList = await billTemplateFacade.getTemplateLibByCompilationID(selectedCompilation._id);
  214. // 获取对应的计价规则数据
  215. [valuationData, valuationList] = await compilationModel.getValuation(selectedCompilation._id, valuationId, section);
  216. if (Object.keys(valuationData).length <= 0) {
  217. throw '不存在数据';
  218. }
  219. // 获取对应专业工程下的标准库数据
  220. let engineeringLibModel = new EngineeringLibModel();
  221. libData = await engineeringLibModel.findDataByCondition({_id:engineerID});
  222. // 获取清单模板数据
  223. let billsTemplateModel = new BillsTemplateModel();
  224. billsTemplateData = await billsTemplateModel.getTemplateData(valuationId, libData.engineering);
  225. //获取清单指引数据
  226. billsGuidanceList = await billsGuidanceFc.getBillsGuideLibs({compilationId: selectedCompilation._id, $or: [{deleted: null}, {deleted: false}]});
  227. //获取工程特征库
  228. featureList = await projectFeatureFacade.findByCondition({compilationId: selectedCompilation._id},null,false);
  229. //获取基本信息库
  230. infoList = await basicInfoFacade.findByCondition({},null,false);
  231. engineerInfoList = await engineerInfoFacade.findByCondition({},null,false);
  232. //工程特征指标库
  233. engineerFeatureList = await engineerFeatureFacade.findByCondition({},null,false);
  234. //主要工料指标
  235. materialList = await materialFacade.findByCondition({},null,false);
  236. //主要工程量指标
  237. mainQuantityList = await quantityFacade.findByCondition({},null,false);
  238. //主要工程量指标
  239. economicList = await economicFacade.findByCondition({},null,false);
  240. //超高降效
  241. overHeightList = await overHeightFacade.findByCondition({},null,false);
  242. } catch (error) {
  243. console.log(error);
  244. }
  245. //example Array to example String
  246. if (selectedCompilation.example && Array.isArray(selectedCompilation.example)) {
  247. selectedCompilation.example = selectedCompilation.example.join(';');
  248. }
  249. let renderData = {
  250. section: section,
  251. valuationId: valuationId,
  252. compilationList: compilationList,
  253. selectedCompilation: selectedCompilation,
  254. libData: libData,
  255. billList: JSON.stringify(billList),
  256. rationList: JSON.stringify(rationList),
  257. gljList: JSON.stringify(gljList),
  258. artificialCoefficientList: JSON.stringify(artificialCoefficientList),
  259. feeRateList: JSON.stringify(feeRateList),
  260. billsTemplateData: JSON.stringify(billsTemplateData),
  261. billTemplateList:JSON.stringify(billTemplateList),
  262. mainTreeColList: JSON.stringify(mainTreeColList),
  263. gljCol:JSON.stringify(libData.glj_col),
  264. calculationList: JSON.stringify(calculationList),
  265. billsGuidanceList: JSON.stringify(billsGuidanceList),
  266. featureList:JSON.stringify(featureList),
  267. infoList: JSON.stringify(infoList),
  268. engineerInfoList:JSON.stringify(engineerInfoList),
  269. engineerFeatureList:JSON.stringify(engineerFeatureList),
  270. materialList:JSON.stringify(materialList),
  271. mainQuantityList:JSON.stringify(mainQuantityList),
  272. economicList:JSON.stringify(economicList),
  273. overHeightList:JSON.stringify(overHeightList),
  274. layout: 'users/views/layout/layout',
  275. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  276. };
  277. response.render('users/views/compilation/engineering', renderData);
  278. }
  279. /**
  280. * 保存工程专业标准库
  281. *
  282. * @param {object} request
  283. * @param {object} response
  284. * @return {void}
  285. */
  286. async saveEngineering(request, response) {
  287. let engineerId = request.body.id;
  288. try {
  289. if (engineerId === '') {
  290. throw 'id参数错误';
  291. }
  292. // 先存入工程专业标准库表
  293. let engineeringLibModel = new EngineeringLibModel();
  294. let result = await engineeringLibModel.addLib(engineerId, request.body);
  295. if (!result) {
  296. throw '保存失败';
  297. }
  298. } catch (error) {
  299. console.log(error);
  300. }
  301. response.redirect(request.headers.referer);
  302. }
  303. /**
  304. * 通过工程专业ID删除工程专业
  305. * @param request
  306. * @param response
  307. * @returns {Promise.<void>}
  308. */
  309. async deleteEngineer(request,response){
  310. let result={
  311. error:0
  312. };
  313. try {
  314. let data = request.body.data;
  315. data = JSON.parse(data);
  316. if(data.id ){
  317. let engineeringLibModel = new EngineeringLibModel();
  318. result.data = await engineeringLibModel.deleteById(data.id,true);
  319. }else {
  320. throw new Error("提交数据有误");
  321. }
  322. }catch (err){
  323. console.log(err);
  324. result.error=1;
  325. result.message = err.message;
  326. }
  327. response.json(result);
  328. }
  329. /**
  330. * 修改保存工程专业信息-用于异步操作
  331. * @param request
  332. * @param response
  333. * @returns {Promise.<void>}
  334. */
  335. async updateEngineer(request,response){
  336. let result={
  337. error:0
  338. };
  339. try {
  340. let data = request.body.data;
  341. data = JSON.parse(data);
  342. if(data.id && data.updateData){
  343. let engineeringLibModel = new EngineeringLibModel();
  344. result.data = await engineeringLibModel.updateById(data.id,data.updateData);
  345. }else {
  346. throw new Error("提交数据有误");
  347. }
  348. }catch (err){
  349. console.log(err);
  350. result.error=1;
  351. result.message = err.message;
  352. }
  353. response.json(result);
  354. }
  355. /**
  356. * 保存计价规则
  357. *
  358. * @param {object} request
  359. * @param {object} response
  360. * @return {void}
  361. */
  362. async saveValuation(request, response) {
  363. let valuationId = request.body.id;
  364. try {
  365. if (valuationId === '') {
  366. throw 'id参数错误';
  367. }
  368. let compilationModel = new CompilationModel();
  369. let result = await compilationModel.saveValuation(valuationId, request.body);
  370. if (!result) {
  371. throw '保存失败';
  372. }
  373. } catch (error) {
  374. console.log(error);
  375. }
  376. response.redirect(request.headers.referer);
  377. }
  378. /**
  379. * 删除计价规则
  380. *
  381. * @param {object} request
  382. * @param {object} response
  383. * @return {void}
  384. */
  385. async deleteValuation(request, response) {
  386. let id = request.params.id;
  387. let section = request.params.section;
  388. let selectedCompilation = request.session.selectedCompilation;
  389. try {
  390. if (id === undefined || id === '' || section === undefined || section === '') {
  391. throw '参数错误';
  392. }
  393. //先删除对应的工程专业
  394. let engineeringLibModel = new EngineeringLibModel();
  395. await engineeringLibModel.deleteByValuationID(id);
  396. //删除计价规则
  397. let compilationModel = new CompilationModel();
  398. let result = compilationModel.deleteValuation(selectedCompilation._id, id, section);
  399. if (!result) {
  400. throw '删除失败';
  401. }
  402. } catch (error) {
  403. console.log(error);
  404. }
  405. response.redirect(request.headers.referer);
  406. }
  407. /**
  408. * 快速切换启用/禁用
  409. *
  410. * @param {object} request
  411. * @param {object} response
  412. * @return {void}
  413. */
  414. async enableSwitch(request, response) {
  415. let id = request.body.id;
  416. let section = request.params.section;
  417. let enable = request.body.enable;
  418. let responseData = {
  419. err: 0,
  420. msg: ''
  421. };
  422. try {
  423. let compilationModel = new CompilationModel();
  424. let result = await compilationModel.switchEnable(id, section, enable);
  425. if (!result) {
  426. throw '新增编办失败';
  427. }
  428. } catch (error) {
  429. console.log(error);
  430. responseData.err = 1;
  431. responseData.msg = error;
  432. }
  433. response.json(responseData);
  434. }
  435. /**
  436. * 发布/取消编办
  437. *
  438. * @param {object} request
  439. * @param {object} response
  440. * @return {void}
  441. */
  442. async release(request, response) {
  443. let id = request.body.id;
  444. let release = request.body.status;
  445. release = parseInt(release);
  446. let responseData = {
  447. err: 0,
  448. msg: ''
  449. };
  450. try {
  451. let compilationModel = new CompilationModel();
  452. let result = await compilationModel.release(id, release);
  453. if (!result) {
  454. throw '发布编办失败';
  455. }
  456. } catch (error) {
  457. console.log(error);
  458. responseData.err = 1;
  459. responseData.msg = error;
  460. }
  461. response.json(responseData);
  462. }
  463. /**
  464. * 新增编办操作
  465. *
  466. * @param {object} request
  467. * @param {object} response
  468. * @return {void}
  469. */
  470. async addCompilation(request, response) {
  471. let name = request.body.name;
  472. let responseData = {
  473. err: 0,
  474. msg: ''
  475. };
  476. try {
  477. let sessionManager = request.session.managerData;
  478. let insertData = {
  479. name: name,
  480. creator: sessionManager.userID
  481. };
  482. let compilationModel = new CompilationModel();
  483. let result = await compilationModel.add(insertData);
  484. if (!result) {
  485. throw '新增编办失败';
  486. }
  487. } catch (error) {
  488. console.log(error);
  489. responseData.err = 1;
  490. responseData.msg = error;
  491. }
  492. response.json(responseData);
  493. }
  494. async setDescription(request, response){
  495. let compilationId = request.body.id;
  496. let description = request.body.description;
  497. try{
  498. let compilationModel = new CompilationModel();
  499. await compilationModel.setDescription(compilationId, description);
  500. response.json({err: 0, msg: '', data: null});
  501. }
  502. catch (err){
  503. response.json({err: 1, msg: err, data: null});
  504. }
  505. }
  506. async setOverWriteUrl(request, response){
  507. let compilationId = request.body.id;
  508. let overWriteUrl = request.body.overWriteUrl;
  509. try{
  510. let compilationModel = new CompilationModel();
  511. //绝对路径
  512. let absoluteUrl = request.app.locals.rootDir + overWriteUrl;
  513. //文件是否存在
  514. let fileExists = fs.existsSync(absoluteUrl);
  515. let pricePropertiesTemplate = [],
  516. consumeAmtPropertiesTemplate = [];
  517. if(fileExists && fs.statSync(absoluteUrl).isFile()){
  518. //读取配置文件并赋值
  519. let overWriteExports = require(absoluteUrl);
  520. if(overWriteExports){
  521. pricePropertiesTemplate = overWriteExports.pricePropertiesTemplate ? overWriteExports.pricePropertiesTemplate : [];
  522. consumeAmtPropertiesTemplate = overWriteExports.consumeAmtPropertiesTemplate ? overWriteExports.consumeAmtPropertiesTemplate : [];
  523. }
  524. }
  525. await compilationModel.setOverWriteUrl(compilationId, overWriteUrl, pricePropertiesTemplate, consumeAmtPropertiesTemplate);
  526. response.json({err: 0, msg: '', data: null});
  527. }
  528. catch (err){
  529. console.log(err);
  530. response.json({err: 1, msg: err, data: null});
  531. }
  532. }
  533. async setExample(request, response){
  534. let compilationId = request.body.id,
  535. example = request.body.example;
  536. try {
  537. let compilationModel = new CompilationModel();
  538. await compilationModel.setExample(compilationId, example);
  539. response.json({err: 0, msg: 'success', data: null});
  540. }
  541. catch (err){
  542. console.log(err);
  543. response.json({err: 1, msg: err, data: null});
  544. }
  545. }
  546. /**
  547. * 模板设置页面
  548. *
  549. * @param {object} request
  550. * @param {object} response
  551. * @return {void}
  552. */
  553. async billsTemplate(request, response) {
  554. let billList = {};
  555. let valuationList = {};
  556. let valuationData = {};
  557. let compilationList = [];
  558. let billsTemplateData = [];
  559. let selectedCompilation = request.session.selectedCompilation;
  560. let engineering = request.params.engineering;
  561. let valuationId = request.params.id;
  562. let section = request.params.section;
  563. try {
  564. let compilationModel = new CompilationModel;
  565. // 获取对应的计价规则数据
  566. [valuationData, valuationList] = await compilationModel.getValuation(selectedCompilation._id, valuationId, section);
  567. compilationList = await compilationModel.getCompilationList();
  568. // 获取标准清单
  569. let stdBillLibListsModel = new STDBillLibListsModel();
  570. billList = await stdBillLibListsModel.getBillList(selectedCompilation._id);
  571. // 获取清单模板数据
  572. let billsTemplateModel = new BillsTemplateModel();
  573. billsTemplateData = await billsTemplateModel.getTemplateData(valuationId, engineering);
  574. } catch (error) {
  575. console.log(error);
  576. }
  577. let renderData = {
  578. engineering: engineering,
  579. billList: JSON.stringify(billList),
  580. billsTemplateData: JSON.stringify(billsTemplateData),
  581. billsFixedFlagList: JSON.stringify(BillsFixedFlagList),
  582. billsTypeFlagList: JSON.stringify(BillsTypeFlagList),
  583. valuationData: valuationData,
  584. valuationList: valuationList,
  585. selectedCompilation: selectedCompilation,
  586. compilationList: compilationList,
  587. valuationId: valuationId,
  588. section: section,
  589. layout: 'users/views/layout/layout',
  590. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  591. };
  592. response.render('users/views/compilation/template', renderData);
  593. }
  594. /**
  595. * 清单模板,更新数据操作
  596. *
  597. * @param request
  598. * @param response
  599. */
  600. async updateBillsTemplate(request, response) {
  601. let engineering = request.params.engineering;
  602. let valuationId = request.params.id;
  603. let section = request.params.section;
  604. let data = JSON.parse(request.body.data);
  605. let billsTemplateModel = new BillsTemplateModel();
  606. let result = await billsTemplateModel.updateTemplate(valuationId, engineering, data);
  607. if (result) {
  608. response.json({error: 0, message: '', data: data});
  609. } else {
  610. response.json({error: 1, message: '更新数据错误', data: null});
  611. }
  612. }
  613. async addEngineer(request,response){
  614. let engineeringLibModel = new EngineeringLibModel();
  615. try {
  616. await engineeringLibModel.addEngineer(request.body);
  617. }catch (error) {
  618. console.log(error);
  619. }
  620. response.redirect(request.headers.referer);
  621. }
  622. /**
  623. * 更改编办所属办事处信息
  624. *
  625. * @param request
  626. * @param response
  627. * @return {Promise.<void>}
  628. */
  629. async changeCategory(request, response) {
  630. let valuationId = request.body.id;
  631. let category = request.body.category;
  632. category = parseInt(category);
  633. try {
  634. let compilationModel = new CompilationModel();
  635. let result = await compilationModel.updateCategory(valuationId, category);
  636. if (result) {
  637. response.json({error: 0, message: '', data: null});
  638. } else {
  639. response.json({error: 1, message: '更新数据错误', data: null});
  640. }
  641. } catch(error) {
  642. response.json({error: 1, message: '更新数据错误', data: null});
  643. }
  644. }
  645. }
  646. export default CompilationController;