|
@@ -9,7 +9,7 @@ let stdCalcProgramsModel = mongoose.model('std_calc_programs');
|
|
|
let projectCalcProgramsModel = mongoose.model('calc_programs');
|
|
|
let gatherCalcProgramsModel = mongoose.model('gather_calc_programs');
|
|
|
let EngineeringLibModel = require("../../users/models/engineering_lib_model");
|
|
|
-let _=require("lodash");
|
|
|
+let _ = require("lodash");
|
|
|
let consts = require('../models/project_consts');
|
|
|
let projectConsts = consts.projectConst;
|
|
|
|
|
@@ -39,7 +39,7 @@ async function newProjectCalcProgramFile(data) {
|
|
|
// 绑定多个计算程序标准文件时,默认取第一个作为标准模板。
|
|
|
// let stdCP = await getStdCalcProgramFile(valid_CP_libs[0].id);
|
|
|
let stdCP = await getStdCalcProgramFile(data.property.calcProgram.id);
|
|
|
- let doc={
|
|
|
+ let doc = {
|
|
|
ID: uuidV1(),
|
|
|
projectID: data.ID,
|
|
|
name: data.name,
|
|
@@ -53,13 +53,13 @@ async function newProjectCalcProgramFile(data) {
|
|
|
};
|
|
|
|
|
|
async function getProjectCalcProgramFile(ID) {
|
|
|
- let projCP = await projectCalcProgramsModel.findOne({ID:ID});
|
|
|
+ let projCP = await projectCalcProgramsModel.findOne({ID: ID});
|
|
|
return projCP;
|
|
|
};
|
|
|
|
|
|
async function getStdCalcProgramFile(libID) {
|
|
|
- let stdCP = await stdCalcProgramsModel.findOne({ID:libID});
|
|
|
- return stdCP;
|
|
|
+ let stdCP = await stdCalcProgramsModel.findOne({ID: libID});
|
|
|
+ return stdCP;
|
|
|
};
|
|
|
|
|
|
// 统一的 getData() 方法供project调用
|
|
@@ -83,38 +83,40 @@ function getData(projectID, callback) {
|
|
|
});
|
|
|
} else {
|
|
|
callback(0, projectConsts.CALC_PROGRAM, datas);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
} else {
|
|
|
callback(1, projectConsts.CALC_PROGRAM, null);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// 统一的 save() 方法供project调用
|
|
|
-function save (user_id, datas, callback) {
|
|
|
- let returnData ={
|
|
|
- moduleName:'calc_program',
|
|
|
- data:{}
|
|
|
+function save(user_id, datas, callback) {
|
|
|
+ let returnData = {
|
|
|
+ moduleName: 'calc_program',
|
|
|
+ data: {}
|
|
|
};
|
|
|
- projectCalcProgramsModel.update({"projectID": 553}, {"libName":"goo—test"}, callback(null, returnData));
|
|
|
+ projectCalcProgramsModel.update({"projectID": 553}, {"libName": "goo—test"}, callback(null, returnData));
|
|
|
}
|
|
|
|
|
|
// saveCalcItem({projectID: 597, templatesID: 4, calcItem: calcItem})
|
|
|
function saveCalcItem(dataObj, callback) {
|
|
|
- dataObj=JSON.parse(dataObj);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
|
|
|
- if(!err){
|
|
|
- for (let i = 0; i < data.templates.length; i++){
|
|
|
- if (data.templates[i].ID == dataObj.templatesID){
|
|
|
- for (let j=0; j < data.templates[i].calcItems.length; j++){
|
|
|
- if (data.templates[i].calcItems[j].ID == dataObj.calcItem.ID){
|
|
|
+ if (!err) {
|
|
|
+ for (let i = 0; i < data.templates.length; i++) {
|
|
|
+ if (data.templates[i].ID == dataObj.templatesID) {
|
|
|
+ for (let j = 0; j < data.templates[i].calcItems.length; j++) {
|
|
|
+ if (data.templates[i].calcItems[j].ID == dataObj.calcItem.ID) {
|
|
|
data.templates[i].calcItems[j] = dataObj.calcItem;
|
|
|
break;
|
|
|
- };
|
|
|
- };
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
- };
|
|
|
- };
|
|
|
+ }
|
|
|
+ }
|
|
|
data.save(function (err) {
|
|
|
if (err) {
|
|
|
callback(1, '本条计算规则保存失败');
|
|
@@ -133,20 +135,20 @@ function saveCalcItem(dataObj, callback) {
|
|
|
function saveCalcItems(datas, callback) {
|
|
|
let datasObj = JSON.parse(datas);
|
|
|
projectCalcProgramsModel.findOne({projectID: datasObj.projectID}, function (err, data) {
|
|
|
- if(!err){
|
|
|
- for (let cI of datasObj.calcItems){
|
|
|
- for (let i = 0; i < data.templates.length; i++){
|
|
|
- if (data.templates[i].ID == cI.templatesID){
|
|
|
- for (let j=0; j < data.templates[i].calcItems.length; j++){
|
|
|
- if (data.templates[i].calcItems[j].ID == cI.calcItem.ID){
|
|
|
+ if (!err) {
|
|
|
+ for (let cI of datasObj.calcItems) {
|
|
|
+ for (let i = 0; i < data.templates.length; i++) {
|
|
|
+ if (data.templates[i].ID == cI.templatesID) {
|
|
|
+ for (let j = 0; j < data.templates[i].calcItems.length; j++) {
|
|
|
+ if (data.templates[i].calcItems[j].ID == cI.calcItem.ID) {
|
|
|
data.templates[i].calcItems[j] = cI.calcItem;
|
|
|
break;
|
|
|
- };
|
|
|
- };
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
- };
|
|
|
- };
|
|
|
- };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
data.save(function (err) {
|
|
|
if (err) {
|
|
|
callback(1, '本条计算规则保存失败');
|
|
@@ -165,11 +167,11 @@ function saveCalcItems(datas, callback) {
|
|
|
// 插入一条计算规则、删除一条计算规则,则整套计算规则整个传入更新,仅calcItems指定值。
|
|
|
// 修改文件名称,则只传入name。
|
|
|
function updateTemplate(dataObj, callback) {
|
|
|
- dataObj=JSON.parse(dataObj);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
|
|
|
- if(!err){
|
|
|
- for (let i = 0; i < data.templates.length; i++){
|
|
|
- if (data.templates[i].ID == dataObj.ID){
|
|
|
+ if (!err) {
|
|
|
+ for (let i = 0; i < data.templates.length; i++) {
|
|
|
+ if (data.templates[i].ID == dataObj.ID) {
|
|
|
if (dataObj.name)
|
|
|
data.templates[i].name = dataObj.name;
|
|
|
if (dataObj.custom)
|
|
@@ -177,8 +179,10 @@ function updateTemplate(dataObj, callback) {
|
|
|
if (dataObj.calcItems)
|
|
|
data.templates[i].calcItems = dataObj.calcItems;
|
|
|
break;
|
|
|
- };
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
+ }
|
|
|
+ ;
|
|
|
data.save(function (err) {
|
|
|
if (err) {
|
|
|
callback(1, '计算模板保存失败');
|
|
@@ -196,10 +200,10 @@ function updateTemplate(dataObj, callback) {
|
|
|
// 一次性替换所有模板:用于切换模板文件。(这里实际上只替换了所有模板,基本信息如projectID、name等保留)
|
|
|
// {projectID: 2706, libID: 2}
|
|
|
async function updateTemplateFile(dataObj, callback) {
|
|
|
- dataObj=JSON.parse(dataObj);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
let stdCP = await getStdCalcProgramFile(dataObj.libID);
|
|
|
projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
|
|
|
- if(!err){
|
|
|
+ if (!err) {
|
|
|
data.templates = stdCP.templates;
|
|
|
data.save(function (err) {
|
|
|
if (err) {
|
|
@@ -217,11 +221,11 @@ async function updateTemplateFile(dataObj, callback) {
|
|
|
|
|
|
// { projectID: 1233, ID: 19, name: '建筑工程2', custom: true, calcItems: [{},{}] }
|
|
|
function addTemplate(dataObj, callback) {
|
|
|
- dataObj=JSON.parse(dataObj);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
projectCalcProgramsModel.update({projectID: dataObj.projectID},
|
|
|
{
|
|
|
- $push:{
|
|
|
- templates:{
|
|
|
+ $push: {
|
|
|
+ templates: {
|
|
|
"ID": dataObj.ID,
|
|
|
"name": dataObj.name,
|
|
|
"calcItems": dataObj.calcItems,
|
|
@@ -242,11 +246,11 @@ function addTemplate(dataObj, callback) {
|
|
|
|
|
|
// { projectID: 1233, ID: 19}
|
|
|
function deleteTemplate(dataObj, callback) {
|
|
|
- dataObj=JSON.parse(dataObj);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
projectCalcProgramsModel.update({projectID: dataObj.projectID},
|
|
|
{
|
|
|
- $pull:{
|
|
|
- templates:{
|
|
|
+ $pull: {
|
|
|
+ templates: {
|
|
|
"ID": dataObj.ID
|
|
|
}
|
|
|
}
|
|
@@ -263,38 +267,47 @@ function deleteTemplate(dataObj, callback) {
|
|
|
};
|
|
|
|
|
|
async function saveGatherCalcPrograms(dataObj, callback) {
|
|
|
- dataObj = JSON.parse(dataObj);
|
|
|
- await gatherCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
|
|
|
- if(data == null){ // 第一次保存,找不到
|
|
|
- let doc={
|
|
|
- projectID: dataObj.projectID,
|
|
|
- totalFee: dataObj.totalFee,
|
|
|
- calcPrograms: dataObj.calcPrograms
|
|
|
- };
|
|
|
- gatherCalcProgramsModel.create(doc, function (err) {
|
|
|
- if (err) {
|
|
|
- callback(1, '汇总计算程序创建失败' + err, null);
|
|
|
- } else {
|
|
|
- callback(0, '成功', doc.projectID);
|
|
|
+ dataObj = JSON.parse(dataObj);
|
|
|
+ await gatherCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
|
|
|
+ if (data == null) { // 第一次保存,找不到
|
|
|
+ let doc = {
|
|
|
+ projectID: dataObj.projectID,
|
|
|
+ totalFee: dataObj.totalFee,
|
|
|
+ calcPrograms: dataObj.calcPrograms
|
|
|
+ };
|
|
|
+ gatherCalcProgramsModel.create(doc, function (err) {
|
|
|
+ if (err) {
|
|
|
+ callback(1, '汇总计算程序创建失败' + err, null);
|
|
|
+ } else {
|
|
|
+ callback(0, '成功', doc.projectID);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
- else {
|
|
|
- data.totalFee = dataObj.totalFee;
|
|
|
- data.calcPrograms = dataObj.calcPrograms;
|
|
|
- data.save(function (err) {
|
|
|
- if (err) {
|
|
|
- callback(1, '汇总计算程序保存失败' + err, null);
|
|
|
- } else {
|
|
|
- callback(0, '成功', data.projectID);
|
|
|
+ else {
|
|
|
+ data.totalFee = dataObj.totalFee;
|
|
|
+ data.calcPrograms = dataObj.calcPrograms;
|
|
|
+ data.save(function (err) {
|
|
|
+ if (err) {
|
|
|
+ callback(1, '汇总计算程序保存失败' + err, null);
|
|
|
+ } else {
|
|
|
+ callback(0, '成功', data.projectID);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
+ })
|
|
|
};
|
|
|
|
|
|
+// 报表用多单位工程的费用汇总数据。
|
|
|
+async function getGatherFees(projectIDsArr) {
|
|
|
+ let rst = await gatherCalcProgramsModel.find({projectID: {"$in": projectIDsArr}}, ["-_id"]).lean();
|
|
|
+ // console.log(rst);
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
// for test
|
|
|
+// getGatherFees([77218, 5097]);
|
|
|
+// getGatherFees([77297, 79097]);
|
|
|
// let s = '{"projectID":2164,"ID":23,"name":"建筑工程7","custom":true,"calcItems":[]}';
|
|
|
// addTemplate(s, function(data){console.log('add successfull!')});
|
|
|
// let s = '{"projectID":2164,"ID":15}';
|