/** * 编办控制控制器 * * @author CaiAoLin * @date 2017/7/28 * @compilation */ import BaseController from "../../common/base/base_controller"; import CompilationModel from "../models/compilation_model"; import STDRationLibMapModel from "../../common/std/std_ration_lib_map_model"; import STDBillLibListsModel from "../../common/std/std_bills_lib_lists_model"; import STDGLJLibMapModel from "../../common/std/std_glj_lib_map_model"; import {default as EngineeringConst, List as EngineeringList} from "../../common/const/engineering"; import BillsTemplateModel from "../../templates/models/bills_template_model"; class CompilationController extends BaseController { /** * 编办管理控制页面 * * @param {object} request * @param {object} response * @return {void} */ async index(request, response) { let id = request.query.id; let compilationList = []; let selectedCompilation = {}; try { let compilationModel = new CompilationModel(); compilationList = await compilationModel.getCompilationList(); if (compilationList.length <= 0) { throw '没有数据'; } // 循环查找数据 for (let tmp of compilationList) { if (tmp._id.toString() === id) { selectedCompilation = tmp; break; } } selectedCompilation = Object.keys(selectedCompilation).length <= 0 ? compilationList[0] : selectedCompilation; request.session.selectedCompilation = selectedCompilation; } catch (error) { console.log(error); } let renderData = { id: id, compilationList: compilationList, selectedCompilation: selectedCompilation, layout: 'users/views/layout/layout' }; response.render('users/views/compilation/index', renderData); } /** * 新增计价页面 * * @param {object} request * @param {object} response * @return {void} */ async addValuation(request, response) { let name = request.body.name; let id = request.body.id; let section = request.body.section; let responseData = { err: 0, msg: '' }; try { if (id === undefined || id === '') { throw '参数错误'; } let insertData = { name: name, }; let compilationModel = new CompilationModel(); let result = await compilationModel.addValuation(id, section, insertData); if (!result) { throw '新增计价规则失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } /** * 修改计价规则页面 * * @param {object} request * @param {object} response * @return {void} */ async editValuation(request, response) { let selectedCompilation = request.session.selectedCompilation; let valuationId = request.params.id; let section = request.params.section; let billList = {}; let rationList = {}; let compilationList = []; let valuationData = {}; let valuationList = {}; let gljList = []; let billsTemplateData = []; try { let compilationModel = new CompilationModel(); compilationList = await compilationModel.getCompilationList(); // 获取标准清单 let stdBillLibListsModel = new STDBillLibListsModel(); billList = await stdBillLibListsModel.getBillList(selectedCompilation._id); // 获取定额库 let stdRationLibMapModel = new STDRationLibMapModel(); rationList = await stdRationLibMapModel.getRationLib(selectedCompilation._id); // 获取工料机库 let stdGLJLibMapModel = new STDGLJLibMapModel(); gljList = await stdGLJLibMapModel.getGLJLibList(selectedCompilation._id); // 获取对应的计价规则数据 [valuationData, valuationList] = await compilationModel.getValuation(selectedCompilation._id, valuationId, section); if (Object.keys(valuationData).length <= 0) { throw '不存在数据'; } // 获取清单模板数据 let billsTemplateModel = new BillsTemplateModel(); billsTemplateData = await billsTemplateModel.getTemplateData(valuationId); } catch (error) { console.log(error); } let renderData = { compilationList: compilationList, billList: JSON.stringify(billList), rationList: JSON.stringify(rationList), gljList: JSON.stringify(gljList), mainTreeCol: JSON.stringify(valuationData.main_tree_col), billsTemplateData: JSON.stringify(billsTemplateData), engineeringList: EngineeringList, selectedCompilation: selectedCompilation, valuationData: valuationData, valuationList: valuationList, valuationId: valuationId, section: section, layout: 'users/views/layout/layout' }; response.render('users/views/compilation/add', renderData); } /** * 保存计价规则 * * @param {object} request * @param {object} response * @return {void} */ async saveValuation(request, response) { let valuationId = request.body.id; try { if (valuationId === '') { throw 'id参数错误'; } let compilationModel = new CompilationModel(); let result = await compilationModel.saveValuation(valuationId, request.body); if (!result) { throw '保存失败'; } } catch (error) { console.log(error); } response.redirect(request.headers.referer); } /** * 删除计价规则 * * @param {object} request * @param {object} response * @return {void} */ async deleteValuation(request, response) { let id = request.params.id; let section = request.params.section; let selectedCompilation = request.session.selectedCompilation; try { if (id === undefined || id === '' || section === undefined || section === '') { throw '参数错误'; } let compilationModel = new CompilationModel(); let result = compilationModel.deleteValuation(selectedCompilation._id, id, section); if (!result) { throw '删除失败'; } } catch (error) { console.log(error); } response.redirect(request.headers.referer); } /** * 快速切换启用/禁用 * * @param {object} request * @param {object} response * @return {void} */ async enableSwitch(request, response) { let id = request.body.id; let section = request.params.section; let enable = request.body.enable; let responseData = { err: 0, msg: '' }; try { let compilationModel = new CompilationModel(); let result = await compilationModel.switchEnable(id, section, enable); if (!result) { throw '新增编办失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } /** * 发布/取消编办 * * @param {object} request * @param {object} response * @return {void} */ async release(request, response) { let id = request.body.id; let release = request.body.status; release = parseInt(release); let responseData = { err: 0, msg: '' }; try { let compilationModel = new CompilationModel(); let result = await compilationModel.release(id, release); if (!result) { throw '发布编办失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } /** * 新增编办操作 * * @param {object} request * @param {object} response * @return {void} */ async addCompilation(request, response) { let name = request.body.name; let responseData = { err: 0, msg: '' }; try { let sessionManager = request.session.managerData; let insertData = { name: name, creator: sessionManager.userID }; let compilationModel = new CompilationModel(); let result = await compilationModel.add(insertData); if (!result) { throw '新增编办失败'; } } catch (error) { console.log(error); responseData.err = 1; responseData.msg = error; } response.json(responseData); } } export default CompilationController;