|
@@ -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){
|
|
@@ -43,8 +44,8 @@ module.exports = {
|
|
|
callback(false);
|
|
|
});
|
|
|
},
|
|
|
- getProjects: function(req, res){
|
|
|
- ProjectsData.getUserProjects(req.session.sessionUser.ssoId, req.session.sessionCompilation._id, function(err, message, projects){
|
|
|
+ getProjects: async function(req, res){
|
|
|
+ await ProjectsData.getUserProjects(req.session.sessionUser.ssoId, req.session.sessionCompilation._id, function(err, message, projects){
|
|
|
if (projects) {
|
|
|
callback(req, res, err, message, projects);
|
|
|
} else {
|
|
@@ -64,40 +65,55 @@ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ 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);
|