compilation_controller.js 25 KB

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