| 
					
				 | 
			
			
				@@ -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); 
			 |