|
@@ -23,6 +23,8 @@ let rationGLJModel = mongoose.model('ration_glj');
|
|
|
let rationCoeModel = mongoose.model('ration_coe');
|
|
|
let rationInstallationModel = mongoose.model('ration_installation');
|
|
|
let quantityDetailModel = mongoose.model('quantity_detail');
|
|
|
+
|
|
|
+let featureLibModel = mongoose.model("std_project_feature_lib");
|
|
|
let scMathUtil = require('../../../public/scMathUtil').getUtil();
|
|
|
import CounterModel from "../../glj/models/counter_model";
|
|
|
import moment from 'moment';
|
|
@@ -43,6 +45,7 @@ module.exports={
|
|
|
getSummaryInfoByTender: getSummaryInfoByTender,
|
|
|
getConstructionProject: getConstructionProject,
|
|
|
getFullPath: getFullPath,
|
|
|
+ getProjectFeature:getProjectFeature,
|
|
|
projectType: projectType
|
|
|
};
|
|
|
|
|
@@ -81,10 +84,18 @@ async function copyProject(userID, compilationID,data) {
|
|
|
|
|
|
//更新项目的属性;
|
|
|
projectMap['copy'].document.ID = newProjectID;
|
|
|
- projectMap['copy'].document.property.calcProgramFile.ID = calcProgramFileID;
|
|
|
- projectMap['copy'].document.property.labourCoeFile.ID = labourCoeFileID;
|
|
|
- projectMap['copy'].document.property.feeFile.id = feeRateFileID;
|
|
|
- projectMap['copy'].document.property.unitPriceFile.id = unitPriceFileID;
|
|
|
+ if(projectMap['copy'].document.property.calcProgramFile){
|
|
|
+ projectMap['copy'].document.property.calcProgramFile.ID = calcProgramFileID;
|
|
|
+ }
|
|
|
+ if(projectMap['copy'].document.property.labourCoeFile){
|
|
|
+ projectMap['copy'].document.property.labourCoeFile.ID = labourCoeFileID;
|
|
|
+ }
|
|
|
+ if(projectMap['copy'].document.property.feeFile){
|
|
|
+ projectMap['copy'].document.property.feeFile.id = feeRateFileID;
|
|
|
+ }
|
|
|
+ if(projectMap['copy'].document.property.unitPriceFile){
|
|
|
+ projectMap['copy'].document.property.unitPriceFile.id = unitPriceFileID;
|
|
|
+ }
|
|
|
projectMap['copy'].document.userID = userID;
|
|
|
projectMap['copy'].document.compilation = compilationID;
|
|
|
projectMap['copy'].document.createDateTime = new Date();
|
|
@@ -104,16 +115,24 @@ async function copyProject(userID, compilationID,data) {
|
|
|
copyBills(newProjectID,billMap),
|
|
|
copyRations(newProjectID,billMap.uuidMaping,rationMap,projectGLJMap.IDMap),
|
|
|
copyProjectGLJ(projectGLJMap.datas),
|
|
|
- commonCopy(newProjectID,originalProperty.calcProgramFile.ID,calcProgramFileID,calcProgramsModel),
|
|
|
- commonCopy(newProjectID,originalProperty.labourCoeFile.ID,labourCoeFileID,labourCoesModel),
|
|
|
- copyFeeRate(originalProperty.rootProjectID,userID,originalProperty.feeFile.id,feeRateFileID,newFeeName),
|
|
|
- copyUnitPriceFile(newProjectID,originalProperty.rootProjectID,userID,originalProperty.unitPriceFile.id,unitPriceFileID,newUnitName),
|
|
|
copyInstallFee(originalID,newProjectID),
|
|
|
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,quantityDetailModel),
|
|
|
copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationInstallationModel)
|
|
|
];
|
|
|
+ if(originalProperty.calcProgramFile){
|
|
|
+ copyTasks.push(commonCopy(newProjectID,originalProperty.calcProgramFile.ID,calcProgramFileID,calcProgramsModel));
|
|
|
+ }
|
|
|
+ if(originalProperty.labourCoeFile){
|
|
|
+ copyTasks.push(commonCopy(newProjectID,originalProperty.labourCoeFile.ID,labourCoeFileID,labourCoesModel));
|
|
|
+ }
|
|
|
+ if(originalProperty.feeFile){
|
|
|
+ copyTasks.push(copyFeeRate(originalProperty.rootProjectID,userID,originalProperty.feeFile.id,feeRateFileID,newFeeName));
|
|
|
+ }
|
|
|
+ if(originalProperty.unitPriceFile){
|
|
|
+ copyTasks.push(copyUnitPriceFile(newProjectID,originalProperty.rootProjectID,userID,originalProperty.unitPriceFile.id,unitPriceFileID,newUnitName));
|
|
|
+ }
|
|
|
let p = await Promise.all(copyTasks);
|
|
|
return p[0];
|
|
|
}
|
|
@@ -692,4 +711,16 @@ async function getFullPath(projectID) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+async function getProjectFeature(libID,engineerName){
|
|
|
+ let lib = await featureLibModel.findOne({'ID':libID})
|
|
|
+ if(lib){
|
|
|
+ let eng = _.find(lib.feature,{'key':'engineering'})
|
|
|
+ if(eng) eng.value = engineerName;
|
|
|
+ console.log(lib.feature);
|
|
|
+ return lib.feature;
|
|
|
+ }else {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
}
|