| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- /**
 
-  * Created by jimiz on 2017/4/9.
 
-  */
 
- let rationData = require('../models/ration');
 
- let ration_glj_facade = require('../../ration_glj/facade/ration_glj_facade');
 
- let ration_ass_facade = require('../../ration_glj/facade/ration_ass_facade');
 
- let ration_facade = require('../facade/ration_facade');
 
- let bill_facade = require('../facade/bill_facade');
 
- let project_facade = require("../facade/project_facade");
 
- let logger = require("../../../logs/log_helper").logger;
 
- import GLJController from "../../glj/controllers/glj_controller";
 
- let controller = {
 
-     insertGLJAsRation:async function (req){
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         return await ration_glj_facade.insertGLJAsRation(data,req.session.sessionCompilation);
 
-     },
 
-     replaceRations:async function (req) {
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         let userID = req.session.sessionUser.id;
 
-         return await ration_facade.replaceRations(userID,data,req.session.sessionCompilation);
 
-     },
 
-     addNewRation:async function(req) {
 
-         let data = req.body.data;
 
-         if(typeof data === 'object'){
 
-             data = JSON.stringify(data);
 
-         }
 
-         data = JSON.parse(data);
 
-         let result = await ration_facade.addNewRation(data,req.session.sessionCompilation);
 
-         //合并取项目工料机数据的情求,用于刷新项目工料机数据,当有添加、替换项目工料机的情况,才需要刷新
 
-        /* if(result.ration_gljs && result.ration_gljs.length > 0 && data.newData){
 
-             result.projectGLJDatas =  await getProjectGLJData(data.newData.projectID);
 
-         }*/
 
-         return result;
 
-     },
 
-     addMultiRation: async function (req) {
 
-         let data = req.body.data;
 
-         if(typeof data === 'object'){
 
-             data = JSON.stringify(data);
 
-         }
 
-         data = JSON.parse(data);
 
-         return await ration_facade.addMultiRation(data.newDatas,req.session.sessionCompilation);
 
-     },
 
-     getSameSectionRations:async function(req){//取同个章节相邻的定额
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         return await ration_facade.getSameSectionRations(data,req.session.sessionUser.id, req.session.sessionCompilation._id);
 
-     },
 
-     //取定额默认的取费专业
 
-     getDefaultProgramID:async function(req){
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         data.userID = req.session.sessionUser.id;
 
-         data.compilationId = req.session.sessionCompilation._id;
 
-         return await ration_facade.getDefaultProgramID(data);
 
-     },
 
-     //应用定额关联子目
 
-     applyTemplate:async function(req){
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         let updateDatas =[];
 
-         let applyTasks = [
 
-             ration_facade.addMultiRation(data.rations.create,req.session.sessionCompilation),//先生成新定额
 
-             bill_facade.createNewBills(data.bills.create),
 
-             ration_facade.deleteMultiRation(data.rations.delete)
 
-         ];
 
-         //整理更新的数据,调用一个方法更新
 
-         updateDatas.push(data.ration_template);
 
-         if(data.rations.update.length > 0)  prepareUpdateNodes(data.rations.update,updateDatas,"ration");
 
-         if(data.bills.update.length > 0)  prepareUpdateNodes(data.bills.update,updateDatas,"bills");
 
-         applyTasks.push(project_facade.updateNodes(updateDatas));
 
-         let [rationResult,billsResult,deleteResult,updates] = await Promise.all(applyTasks);
 
-         return {rationResult:rationResult,billsResult:billsResult,updateDatas:updateDatas};
 
-     },
 
-     //更新辅助定额
 
-     updateRationAss:async function(req){
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         return ration_ass_facade.updateRationAss(data);
 
-     },
 
-     //勾选定额调整系数
 
-     updateCoeAdjust:async function(req){
 
-         let data = req.body.data;
 
-         data = JSON.parse(data);
 
-         let result = await ration_facade.updateCoeAdjust(data,req.session.sessionCompilation);
 
-         //合并取项目工料机数据的情求,用于刷新项目工料机数据,当有添加、替换项目工料机的情况,才需要刷新
 
-      /*   if(result.add.length > 0 || result.replace.length > 0){
 
-             result.projectGLJDatas =  await getProjectGLJData(data.projectID);
 
-         }*/
 
-         return result;
 
-     }
 
- };
 
- async function getProjectGLJData(projectID) {
 
-     let gljController = new GLJController();
 
-     let responseData = await gljController.getProjectGLJsByProjectID(projectID);
 
-     return responseData.data;
 
- }
 
- function prepareUpdateNodes(datas,nodes,type) {
 
-     for(let d of datas){
 
-         nodes.push({type:type,data:d});
 
-     }
 
- }
 
- //统一回调函数
 
- let callback = function(req, res, err, message, data){
 
-     res.json({error: err, message: message, data: data});
 
- };
 
- module.exports = {
 
-     getData: function(req, res){
 
-         var data = JSON.parse(req.body.data);
 
-         rationData.getData(data.projectId, function(err, message, rationList){
 
-             if (err === 0) {
 
-                 callback(req, res, err, message, rationList);
 
-             } else {
 
-                 callback(req, res, err, message, null);
 
-             }
 
-         });
 
-     },
 
-     getItemTemplate: function(req, res){
 
-         //var data = JSON.parse(req.body.data);
 
-         rationData.getItemTemplate(function(err, message, rationItem){
 
-             if (billsItem) {
 
-                 callback(req, res, err, message, rationItem);
 
-             } else {
 
-                 callback(req, res, err, message, null);
 
-             }
 
-         });
 
-     },
 
-     allocIDs: function(req, res){
 
-         rationData.allocIDs(function(err, message, data){
 
-             if (err) {
 
-                 callback(req, res, err, message, data);
 
-             } else {
 
-                 callback(req, res, err, message, null);
 
-             }
 
-         });
 
-     },
 
-     action:async function(req,res){//自动跳转到URL对应的controller方法
 
-         let result={
 
-             error:0
 
-         }
 
-         try {
 
-             let functionName = req.url.replace(/\//g,"");
 
-             result.data = controller[functionName]?await controller[functionName](req):"";
 
-         }catch (err){
 
-             logger.err(err);
 
-             result.error=1;
 
-             result.message = err.message;
 
-         }
 
-         res.json(result);
 
-     }
 
- };
 
 
  |