|
|
@@ -91,6 +91,7 @@ let importLogsModel = mongoose.model("import_logs");
|
|
|
const shareListModel = mongoose.model('share_list');
|
|
|
let welcomeModel = mongoose.model("welcome_setting");
|
|
|
let divideModel = mongoose.model("divide_setting");
|
|
|
+let evaluateListModel = mongoose.model("evaluate_list");
|
|
|
|
|
|
let featureLibModel = mongoose.model("std_project_feature_lib");
|
|
|
let scMathUtil = require('../../../public/scMathUtil').getUtil();
|
|
|
@@ -579,7 +580,8 @@ async function copyProject(userID, compilationID, data, newProjectID = null, del
|
|
|
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),
|
|
|
- copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationTemplateModel)
|
|
|
+ copyRationSubList(originalID,newProjectID,billMap.uuidMaping,rationMap.uuidMaping,projectGLJMap.IDMap,rationTemplateModel),
|
|
|
+ copyMaterialList(originalID,newProjectID,projectGLJMap.IDMap,evaluateListModel)
|
|
|
];
|
|
|
if(originalProperty.calcProgramFile){
|
|
|
copyTasks.push(commonCopy(newProjectID,originalProperty.calcProgramFile.ID,calcProgramFileID,calcProgramsModel));
|
|
|
@@ -876,6 +878,22 @@ async function copyRationSubList(originalPID,newProjectID,billIDMap,rationIDMap,
|
|
|
await insertMany(newList,model);
|
|
|
}
|
|
|
|
|
|
+async function copyMaterialList(originalPID,newProjectID,projectGLJIDMap,model) {//暂估材料等信息
|
|
|
+ let materialList = await model.find({projectID:originalPID}, '-_id').lean();
|
|
|
+ let newList = [];
|
|
|
+ for(let m of materialList){
|
|
|
+ newList.push(getNewMaterial(m,newProjectID,projectGLJIDMap))
|
|
|
+ }
|
|
|
+ await insertMany(newList,model);
|
|
|
+}
|
|
|
+
|
|
|
+function getNewMaterial(m,newProjectID,projectGLJIDMap) {
|
|
|
+ m.ID = uuidV1();
|
|
|
+ m.projectID = newProjectID;
|
|
|
+ if(projectGLJIDMap[m.projectGLJID]) m.projectGLJID = projectGLJIDMap[m.projectGLJID];
|
|
|
+ return m;
|
|
|
+}
|
|
|
+
|
|
|
function getCopyRationSubData(doc,newProjectID,billIDMap,rationIDMap,projectGLJIDMap){
|
|
|
doc.ID = uuidV1();
|
|
|
doc.projectID = newProjectID;
|
|
|
@@ -1616,6 +1634,7 @@ async function exportTenderData(data){
|
|
|
result.calcProgramsFile = await calcProgramsModel.findOne({projectID:data.projectID}).lean();
|
|
|
result.labourCoes = await labourCoesModel.findOne({projectID:data.projectID}).lean();
|
|
|
result.divide_setting = await divideModel.findOne({projectID:data.projectID}, '-_id').lean();
|
|
|
+ result.evaluateList = await evaluateListModel.find({projectID:data.projectID}, '-_id').lean();
|
|
|
|
|
|
return cipher.aesEncrypt(JSON.stringify(result));
|
|
|
}
|
|
|
@@ -1763,7 +1782,7 @@ async function importProject(data,req,updateData) {
|
|
|
if(datas.length > 1 ){//生成后统一次插入 2020-05-29
|
|
|
let newProjectSettings=[],bills=[],rations=[],projectGLJs=[],rationGLJs=[],rationCoes=[],quantityDetails=[],rationInstallations=[],rationTemplates=[],newCalcProgramsFiles=[],newLabourCoes=[],newDivides=[];
|
|
|
for(let i = 1;i<datas.length;i++){
|
|
|
- let [newProjectSetting,tbills,trations,tprojectGLJs,trationGLJs,trationCoes,tquantityDetails,trationInstallations,trationTemplates,newCalcProgramsFile,newLabourCoe,newDivide] = await handleEachProject(datas[i],projectIDMap,labourCoeFileIDMap,calcProgramFileIDMap)
|
|
|
+ let [newProjectSetting,tbills,trations,tprojectGLJs,trationGLJs,trationCoes,tquantityDetails,trationInstallations,trationTemplates,newCalcProgramsFile,newLabourCoe,newDivide,tevaluateList] = await handleEachProject(datas[i],projectIDMap,labourCoeFileIDMap,calcProgramFileIDMap)
|
|
|
if(newProjectSetting) newProjectSettings.push(newProjectSetting);
|
|
|
if(tbills.length > 0) bills = bills.concat(tbills);
|
|
|
if(trations.length > 0) rations = rations.concat(trations);
|
|
|
@@ -1776,6 +1795,7 @@ async function importProject(data,req,updateData) {
|
|
|
if(newCalcProgramsFile) newCalcProgramsFiles.push(newCalcProgramsFile);
|
|
|
if(newLabourCoe) newLabourCoes.push(newLabourCoe);
|
|
|
if(newDivide) newDivides.push(newDivide);
|
|
|
+ if(tevaluateList.length > 0) evaluateList = evaluateList.concat(tevaluateList);
|
|
|
}
|
|
|
|
|
|
if(newProjectSettings.length > 0) await insertMany(newProjectSettings,projectSettingModel);
|
|
|
@@ -1790,6 +1810,7 @@ async function importProject(data,req,updateData) {
|
|
|
if(newCalcProgramsFiles.length > 0) await insertMany(newCalcProgramsFiles,calcProgramsModel);
|
|
|
if(newLabourCoes.length>0) await insertMany(newLabourCoes,labourCoesModel);
|
|
|
if(newDivides.length>0) await divideModel.insertMany(newDivides);
|
|
|
+ if(evaluateList.length > 0) await insertMany(evaluateList,evaluateListModel);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -1798,7 +1819,7 @@ async function importProject(data,req,updateData) {
|
|
|
}
|
|
|
|
|
|
async function handleEachProject(data,projectIDMap,labourCoeFileIDMap,calcProgramFileIDMap){
|
|
|
- let bills = [],rations = [],projectGLJs = [],rationGLJs=[],rationCoes=[],quantityDetails=[],rationInstallations=[],rationTemplates=[];
|
|
|
+ let bills = [],rations = [],projectGLJs = [],rationGLJs=[],rationCoes=[],quantityDetails=[],rationInstallations=[],rationTemplates=[],evaluateList=[];
|
|
|
let newProjectSetting =null,newCalcProgramsFile = null,newLabourCoe = null,newDivide=null;
|
|
|
let billsIDMap = {},projectGLJIDMap={},rationIDMap = {};
|
|
|
let newProjectID = projectIDMap[data.projSetting.projectID];
|
|
|
@@ -1846,6 +1867,7 @@ async function handleEachProject(data,projectIDMap,labourCoeFileIDMap,calcProgra
|
|
|
if(data.quantityDetails && data.quantityDetails.length > 0) quantityDetails = setRationSubList(data.quantityDetails,newProjectID,billsIDMap,rationIDMap,projectGLJIDMap);
|
|
|
if(data.rationInstallations && data.rationInstallations.length > 0) rationInstallations = setRationSubList(data.rationInstallations,newProjectID,billsIDMap,rationIDMap,projectGLJIDMap);
|
|
|
if(data.rationTemplates && data.rationTemplates.length > 0) rationTemplates = setRationSubList(data.rationTemplates,newProjectID,billsIDMap,rationIDMap,projectGLJIDMap);
|
|
|
+ if(data.evaluateList && data.evaluateList.length > 0) evaluateList = setMaterialList(data.evaluateList,newProjectID,projectGLJIDMap);
|
|
|
|
|
|
//生成projectSetting 文件
|
|
|
if(data.projSetting){
|
|
|
@@ -1879,7 +1901,7 @@ async function handleEachProject(data,projectIDMap,labourCoeFileIDMap,calcProgra
|
|
|
delete newDivide._id;
|
|
|
}
|
|
|
|
|
|
- return [newProjectSetting,bills,rations,projectGLJs,rationGLJs,rationCoes,quantityDetails,rationInstallations,rationTemplates,newCalcProgramsFile,newLabourCoe,newDivide]
|
|
|
+ return [newProjectSetting,bills,rations,projectGLJs,rationGLJs,rationCoes,quantityDetails,rationInstallations,rationTemplates,newCalcProgramsFile,newLabourCoe,newDivide,evaluateList]
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -1894,6 +1916,14 @@ function setRationSubList(datas,newProjectID,billIDMap,rationIDMap,projectGLJIDM
|
|
|
return arrs;
|
|
|
}
|
|
|
|
|
|
+function setMaterialList(datas,newProjectID,projectGLJIDMap){
|
|
|
+ let arrs = [];
|
|
|
+ for(let d of datas){
|
|
|
+ arrs.push(getNewMaterial(d,newProjectID,projectGLJIDMap))
|
|
|
+ }
|
|
|
+ return arrs
|
|
|
+}
|
|
|
+
|
|
|
async function handleMainProjectDatas(mainData,updateData,userID) {
|
|
|
let mainProjectID = -1;
|
|
|
let projectIDMap = {},feeRateFileIDMap={},unitPriceFileIDMap={},labourCoeFileIDMap={},calcProgramFileIDMap={};
|