zhangweicheng %!s(int64=5) %!d(string=hai) anos
pai
achega
83785045fd

+ 3 - 0
modules/main/controllers/installation_controller.js

@@ -74,6 +74,9 @@ async function  resetToDefault(req, res) {
         let data = req.body.data;
         data = JSON.parse(data);
         let returnData= await installation_facade.resetToDefault(data.projectID,data.installFees);
+        if(data.rationInstallations && data.rationInstallations.length > 0){
+          await ration_installation_facade.updateFromInstallationFee(data.projectID,data.rationInstallations);
+        }
         result.data=returnData;
     }catch (err){
         logger.err(err);

+ 11 - 1
modules/pm/facade/pm_facade.js

@@ -2402,10 +2402,19 @@ async function importProjects(data,req,updateData) {
 
 
 async function handleEachProject(data,projectIDMap,labourCoeFileIDMap,calcProgramFileIDMap){
-    let bills = [],rations = [],projectGLJs = [],rationGLJs=[],rationCoes=[],quantityDetails=[],rationInstallations=[],rationTemplates=[],evaluateList=[],bidList=[],contractorList=[];
+    let bills = [],rations = [],projectGLJs = [],installationFees=[],rationGLJs=[],rationCoes=[],quantityDetails=[],rationInstallations=[],rationTemplates=[],evaluateList=[],bidList=[],contractorList=[];
     let newProjectSetting =null,newCalcProgramsFile = null,newLabourCoe = null;
     let billsIDMap = {},projectGLJIDMap={},rationIDMap = {};
     let newProjectID = projectIDMap[data.projSetting.projectID];
+    //生成安装增加费设置
+    if(data.installationFees && data.installationFees.length > 0){
+        for(let ins of data.installationFees){
+          delete ins._id;
+          ins.ID = uuidV1();
+          ins.projectID = newProjectID;
+          installationFees.push(ins);
+        }
+    }
     //生成新的清单;
     if(data.bills && data.bills.length > 0){
         for(let b of data.bills){
@@ -2479,6 +2488,7 @@ async function handleEachProject(data,projectIDMap,labourCoeFileIDMap,calcProgra
     if(newProjectSetting) await projectSettingModel.create(newProjectSetting);
     if(bills.length > 0) await insertMany(bills,billsModel);
     if(rations.length > 0) await insertMany(rations,rationModel);
+    if(installationFees.length > 0) await insertMany(installationFees,installationFeeModel);
     if(projectGLJs.length > 0) await insertMany(projectGLJs,gljListModel);
     if(rationGLJs.length > 0) await insertMany(rationGLJs,rationGLJModel);
     if(rationCoes.length > 0) await insertMany(rationCoes,rationCoeModel);

+ 1 - 1
pm2_server.json

@@ -2,7 +2,7 @@
   "apps": {
       "name": "constructionimport",
       "script": "server.js",
-      "args":"--max-old-space-size=2048",
+      "node_args":"--max-old-space-size=2048",
       "output": "/home/logs/out.log",
       "error": "/home/logs/err.log",
       "log_date_format": "YYYY-MM-DD HH:mm Z",

+ 26 - 1
web/building_saas/main/js/models/installation_fee.js

@@ -742,6 +742,17 @@ var installation_fee = {
             });
         };
 
+        installation_fee.prototype.setRationInstallToDefual = function(){
+           let ration_install=projectObj.project.ration_installation;
+           let rationInstallations = [];
+           for(let ri of ration_install.datas){
+              if(ri.unifiedSetting == 0 || ri.ruleId!==""){
+                rationInstallations.push({ID:ri.ID,doc:{'ruleId':"",unifiedSetting:1}});
+              }
+           } 
+           return rationInstallations;
+        }
+
         installation_fee.prototype.resetToDefault = function (callback) {
             let me = this;
             let installFees = [];
@@ -753,10 +764,24 @@ var installation_fee = {
                 installFees.push(ins);
             }
             //data.projectID,data.installFees
+            let rationInstallations = me.setRationInstallToDefual();
+
+
             $.bootstrapLoading.start();
-            CommonAjax.post("/installation/resetToDefault",{projectID:project.ID(),installFees:installFees},function (result) {
+            CommonAjax.post("/installation/resetToDefault",{projectID:project.ID(),installFees:installFees,rationInstallations:rationInstallations},function (result) {
                 console.log(result)
                 me.datas = result;
+                 //更新定额安装费的缓存
+                 if(rationInstallations.length > 0){
+                  for(let ri of rationInstallations){
+                      let c_ri = project.ration_installation.getByID(ri.ID);
+                      if(c_ri){
+                          for(let rkey in ri.doc){
+                              c_ri[rkey] = ri.doc[rkey];
+                          }
+                      }
+                  }
+                }
                 if(callback){
                     callback();
                 }

+ 1 - 1
web/building_saas/main/js/views/glj_view.js

@@ -790,9 +790,9 @@ var gljOprObj = {
         let calcOptions=projectObj.project.projectInfo.property.calcOptions;
         let decimalObj = projectObj.project.projectInfo.property.decimal;
         let labourCoeDatas =  projectObj.project.labourCoe.datas;
-        let tenderCoe = projectObj.project.projectGLJ.getTenderPriceCoe(glj);
         glj = glj?glj:_.find(proGLJ.datas.gljList, {'id': data.projectGLJID});
         if(glj){
+            let tenderCoe = projectObj.project.projectGLJ.getTenderPriceCoe(glj);
             let result = gljUtil.getGLJPrice(glj,proGLJ.datas,calcOptions,labourCoeDatas,decimalObj,isRadio,_,scMathUtil,tenderCoe);
             data.marketPrice = result.marketPrice;
             data.tenderPrice = result.tenderPrice;