|
@@ -4,6 +4,7 @@
|
|
let mongoose = require('mongoose');
|
|
let mongoose = require('mongoose');
|
|
let _ = require("lodash");
|
|
let _ = require("lodash");
|
|
let feeRate_facade = require('../../fee_rates/facade/fee_rates_facade');
|
|
let feeRate_facade = require('../../fee_rates/facade/fee_rates_facade');
|
|
|
|
+let project_facade = require('../../main/facade/project_facade');
|
|
let logger = require("../../../logs/log_helper").logger;
|
|
let logger = require("../../../logs/log_helper").logger;
|
|
const uuidV1 = require('uuid/v1');
|
|
const uuidV1 = require('uuid/v1');
|
|
let projectModel = mongoose.model('projects');
|
|
let projectModel = mongoose.model('projects');
|
|
@@ -23,6 +24,7 @@ let rationGLJModel = mongoose.model('ration_glj');
|
|
let rationCoeModel = mongoose.model('ration_coe');
|
|
let rationCoeModel = mongoose.model('ration_coe');
|
|
let rationInstallationModel = mongoose.model('ration_installation');
|
|
let rationInstallationModel = mongoose.model('ration_installation');
|
|
let quantityDetailModel = mongoose.model('quantity_detail');
|
|
let quantityDetailModel = mongoose.model('quantity_detail');
|
|
|
|
+let rationTemplateModel = mongoose.model('ration_template');
|
|
let userModel = mongoose.model('user');
|
|
let userModel = mongoose.model('user');
|
|
let compleGljSectionModel = mongoose.model('complementary_glj_section');
|
|
let compleGljSectionModel = mongoose.model('complementary_glj_section');
|
|
let compleGljSectionTModel = mongoose.model('complementary_glj_section_templates');
|
|
let compleGljSectionTModel = mongoose.model('complementary_glj_section_templates');
|
|
@@ -206,7 +208,8 @@ async function copyProject(userID, compilationID,data,newProjectID = null) {
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationGLJModel),
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationGLJModel),
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationCoeModel),
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationCoeModel),
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,quantityDetailModel),
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,quantityDetailModel),
|
|
- copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationInstallationModel)
|
|
|
|
|
|
+ copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationInstallationModel),
|
|
|
|
+ copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationTemplateModel)
|
|
];
|
|
];
|
|
if(originalProperty.calcProgramFile){
|
|
if(originalProperty.calcProgramFile){
|
|
copyTasks.push(commonCopy(newProjectID,originalProperty.calcProgramFile.ID,calcProgramFileID,calcProgramsModel));
|
|
copyTasks.push(commonCopy(newProjectID,originalProperty.calcProgramFile.ID,calcProgramFileID,calcProgramsModel));
|
|
@@ -294,6 +297,7 @@ async function copyRations(newProjectID,billsIDMap,rationMap,projectGLJIDMap) {
|
|
if(doc.billsItemID){
|
|
if(doc.billsItemID){
|
|
doc.billsItemID = billsIDMap[doc.billsItemID]?billsIDMap[doc.billsItemID]:-1;
|
|
doc.billsItemID = billsIDMap[doc.billsItemID]?billsIDMap[doc.billsItemID]:-1;
|
|
}
|
|
}
|
|
|
|
+ if(doc.referenceRationID) doc.referenceRationID = uuidMaping[doc.referenceRationID]?uuidMaping[doc.referenceRationID]:undefined;
|
|
//绑定定类型的工料机 项目工料机ID
|
|
//绑定定类型的工料机 项目工料机ID
|
|
doc.type==3&&doc.projectGLJID&&projectGLJIDMap[doc.projectGLJID]?doc.projectGLJID = projectGLJIDMap[doc.projectGLJID]:'';
|
|
doc.type==3&&doc.projectGLJID&&projectGLJIDMap[doc.projectGLJID]?doc.projectGLJID = projectGLJIDMap[doc.projectGLJID]:'';
|
|
}
|
|
}
|
|
@@ -963,6 +967,19 @@ async function copyCompleGljSection(userId, compilationId) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-async function changeFile(datas,from,type){//from:feeRate或单价文件,type从单前建设项目还是从其它建设项目中复制
|
|
|
|
|
|
+async function changeFile(datas,userID,fileID,name,from,type){//from 费率或单价文件,type从单前建设项目还是从其它建设项目中复制
|
|
|
|
+ let projectIDs = [],newFile = {id:fileID,name:name};//计录从其它项目中复制的文件,选中多个的时候只需复制一次
|
|
|
|
+ let projectUpdateType = from == "feeRateFile"?"feeRate":"unitFile";
|
|
|
|
+ if(from == "feeRateFile"){
|
|
|
|
+ for(let d of datas){
|
|
|
|
+ let tem_file = await feeRate_facade.changeFeeRateFile(d, newFile,type,userID);
|
|
|
|
+ if(type == 1 && tem_file){//从建设项目复制时,只有第一次需要复制,剩下的就相当于使用同个建设项目的情况了
|
|
|
|
+ newFile = {id:tem_file.ID,name:tem_file.name};
|
|
|
|
+ type = 0;
|
|
|
|
+ }
|
|
|
|
+ projectIDs.push({ID:d.projectID})
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ await project_facade.markProjectsToChange(projectIDs,projectUpdateType)//项目标记为待刷新状态
|
|
|
|
|
|
}
|
|
}
|