|  | @@ -12,6 +12,7 @@ let fee_rate_facade = require("../../fee_rates/facade/fee_rates_facade");
 | 
	
		
			
				|  |  |  let billsModel = require('../../main/models/bills').model;
 | 
	
		
			
				|  |  |  let rationsModel = require('../../main/models/ration').model;
 | 
	
		
			
				|  |  |  let projectModel = require("../models/project_schema");
 | 
	
		
			
				|  |  | +let asyncTool = require('async');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //统一回调函数
 | 
	
		
			
				|  |  |  let callback = function(req, res, err, message, data){
 | 
	
	
		
			
				|  | @@ -64,40 +65,60 @@ module.exports = {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // CSL, 2017-12-14 该方法用于项目属性:提交保存混合型数据,这些数据来自不同的表,包括projects.property、ration、bills、labour_coes.
 | 
	
		
			
				|  |  |      updateMixDatas: function(req, res){
 | 
	
		
			
				|  |  | -        let callBackInner = function (err, message, data) {
 | 
	
		
			
				|  |  | -            if (err === 0) {
 | 
	
		
			
				|  |  | -                res.json({error: err, message: message, data: data});
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                res.json({error: err, message: message, data: null});
 | 
	
		
			
				|  |  | +        let datas = JSON.parse(req.body.data).mixDataArr;
 | 
	
		
			
				|  |  | +        let functions = [];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        function updateFunc(model, cod, doc) {
 | 
	
		
			
				|  |  | +            return function (cb) {
 | 
	
		
			
				|  |  | +                model.update(cod, doc, cb);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        let datas = JSON.parse(req.body.data).mixDataArr;
 | 
	
		
			
				|  |  | +        function updateLC(){
 | 
	
		
			
				|  |  | +            return function (cb) {
 | 
	
		
			
				|  |  | +                datas.labourCoes.updateData.projectID = datas.projectID;
 | 
	
		
			
				|  |  | +                labourCoe.save(datas.labourCoes.updateData, cb);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 项目属性
 | 
	
		
			
				|  |  |          if (Object.keys(datas.properties).length > 0){
 | 
	
		
			
				|  |  | -            projectModel.update({ID: datas.projectID}, datas.properties, callBackInner);
 | 
	
		
			
				|  |  | +            // projectModel.update({ID: datas.projectID}, datas.properties, callBackInner);
 | 
	
		
			
				|  |  | +            functions.push(updateFunc(projectModel, {ID: datas.projectID}, datas.properties));
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 人工系数
 | 
	
		
			
				|  |  |          if (datas.labourCoes.updateData){
 | 
	
		
			
				|  |  | -            datas.labourCoes.updateData.projectID = datas.projectID;
 | 
	
		
			
				|  |  | -            labourCoe.save(datas.labourCoes.updateData, callBackInner);
 | 
	
		
			
				|  |  | +            // datas.labourCoes.updateData.projectID = datas.projectID;
 | 
	
		
			
				|  |  | +            // labourCoe.save(datas.labourCoes.updateData, callBackInner);
 | 
	
		
			
				|  |  | +            functions.push(updateLC());
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 清单:每文档doc只存储一条清单,每条清单都必须定位一次文档,无法合并处理
 | 
	
		
			
				|  |  |          if (datas.bills.length > 0){
 | 
	
		
			
				|  |  |              for (let bill of datas.bills){
 | 
	
		
			
				|  |  | -                billsModel.update({projectID: datas.projectID, ID: bill.ID, deleteInfo: null}, bill, callBackInner);
 | 
	
		
			
				|  |  | +                // billsModel.update({projectID: datas.projectID, ID: bill.ID, deleteInfo: null}, bill, callBackInner);
 | 
	
		
			
				|  |  | +                functions.push(updateFunc(billsModel, {projectID: datas.projectID, ID: bill.ID, deleteInfo: null}, bill));
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 定额:每文档doc只存储一条定额,每条定额都必须定位一次文档,无法合并处理
 | 
	
		
			
				|  |  |          if (datas.rations.length > 0){
 | 
	
		
			
				|  |  |              for (let ration of datas.rations){
 | 
	
		
			
				|  |  | -                rationsModel.update({projectID: datas.projectID, ID: ration.ID, deleteInfo: null}, ration, callBackInner);
 | 
	
		
			
				|  |  | +                // rationsModel.update({projectID: datas.projectID, ID: ration.ID, deleteInfo: null}, ration, callBackInner);
 | 
	
		
			
				|  |  | +                functions.push(updateFunc(rationsModel, {projectID: datas.projectID, ID: ration.ID, deleteInfo: null}, ration));
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        asyncTool.parallel(functions, function(err, result){
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                if (!err) {
 | 
	
		
			
				|  |  | +                    res.json({error: 0, message: err, data: result});
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    res.json({error: 1, message: err, data: null});
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      updateFiles: async function(req, res){
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 |