瀏覽代碼

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/YangHuCost

TonyKang 5 年之前
父節點
當前提交
b8b97e5b3d

文件差異過大導致無法顯示
+ 29 - 1
config/config.js


+ 30 - 14
modules/main/facade/ration_facade.js

@@ -78,7 +78,7 @@ async function addNewRation(data,compilation) {
     if(data.brUpdate.length>0){
         await updateSerialNo(data.brUpdate);
     }
-    let newRation =await insertNewRation(data.newData,data.defaultLibID,stdRation,data.calQuantity);
+    let newRation =await insertNewRation(data.newData,data.defaultLibID,stdRation,data.calQuantity,data.programArray);
     let addRationGLJTime = +new Date();
     console.log("插入新定额时间-------------------------------"+(addRationGLJTime - stdRationTime));
     if(stdRation){
@@ -292,7 +292,18 @@ async function  updateSerialNo(serialNoUpdate){
     await ration_model.model.bulkWrite(tasks);
 }
 
-async function insertNewRation(newData,defaultLibID,std,calQuantity) {//插入新的定额
+function getProgramID(programArray,feeType) { 
+  if (programArray) { 
+    let p = _.find(programArray, { "name": feeType });
+    if (p) {
+      return p.ID;
+    } else { 
+      return null//programArray[0].ID; 20201013 - 匹配不上返回空的取费类别
+    }
+  }
+}
+
+async function insertNewRation(newData,defaultLibID,std,calQuantity,programArray) {//插入新的定额
     let startTime = +new Date();
     if(std){
         newData.code = std.code;
@@ -314,12 +325,16 @@ async function insertNewRation(newData,defaultLibID,std,calQuantity) {//插入
         } else if(newData.from === 'cpt') {
             newData.prefix = '补';
         }
-        if(std.feeType == undefined || std.feeType == null || std.feeType ==''){//定额取费专业为空的情况下,取项目属性中的定额取费专业ID
+        /* if(std.feeType == undefined || std.feeType == null || std.feeType ==''){//定额取费专业为空的情况下,取项目属性中的定额取费专业ID
             newData.programID = await getProgramForProject(newData.projectID);
         }else {
             newData.programID = std.feeType;
-        }
-        newData.rationAssList =await  createRationAss(std);
+        } */
+        //后台定额库中的取费类别改为文本,识别不到文本,则默认为第一个取费类别。
+      newData.programID = getProgramID(programArray,std.feeType);
+      
+      
+      newData.rationAssList =await  createRationAss(std);
         // calculate ration Quantity
     }
     if(calQuantity){
@@ -338,7 +353,7 @@ async function replaceRations(userID,data,compilation) {
     let recodes = [];
     for(let recode of data.nodeInfo){
         let stdRation = await searchDao.getRationItem(userID,compilation._id,data.libIDs,recode.newCode, null);
-        let newRecode = await replaceRation(recode,stdRation,data.defaultLibID,data.projectID,data.calQuantity,compilation,data.cleanzmhs);
+        let newRecode = await replaceRation(recode,stdRation,data.defaultLibID,data.projectID,data.calQuantity,compilation,data.cleanzmhs,data.programArray);
         if(newRecode){
             recodes.push(newRecode);
         }else {
@@ -360,13 +375,13 @@ async function getDefaultProgramID(data) {
     return programID;
 }
 
-async function replaceRation(nodeInfo,stdRation,defaultLibID,projectID,calQuantity,compilation,cleanzmhs) {
+async function replaceRation(nodeInfo,stdRation,defaultLibID,projectID,calQuantity,compilation,cleanzmhs,programArray) {
     if(nodeInfo.newCode == null||nodeInfo.newCode ==""){//说明是删除编号,则要变成一条空定额
         await deleRationSubRecode(projectID,nodeInfo.ID);//删除定额下挂的各种数据,如定额工料机等
         return await setEmptyRation(projectID,nodeInfo.ID);
     }else if(stdRation){
         await deleRationSubRecode(projectID,nodeInfo.ID,cleanzmhs);//删除定额下挂的各种数据,如定额工料机等
-        let newRation = await updateRation(stdRation,defaultLibID,nodeInfo.ID,nodeInfo.billsItemID,projectID,calQuantity,cleanzmhs);//生成并插入新的定额
+        let newRation = await updateRation(stdRation,defaultLibID,nodeInfo.ID,nodeInfo.billsItemID,projectID,calQuantity,cleanzmhs,programArray);//生成并插入新的定额
         return await addRationSubList(stdRation,newRation,nodeInfo.needInstall,compilation,cleanzmhs);
     }else {
         return null;
@@ -1049,7 +1064,7 @@ async function updateCoeAdjust(data,compilation) {
 
 
 
-async function  updateRation(std,defaultLibID,rationID,billsItemID,projectID,calQuantity,cleanzmh=false) {
+async function  updateRation(std,defaultLibID,rationID,billsItemID,projectID,calQuantity,cleanzmh=false,programArray) {
     // insertNewRation
     let ration ={};
     ration.code = std.code;
@@ -1080,11 +1095,12 @@ async function  updateRation(std,defaultLibID,rationID,billsItemID,projectID,cal
     }
     ration.rationAssList =await createRationAss(std);//生成辅助定额
     if(cleanzmh==false){//如果是清空子目换算,即cleanzmh==true 保留定额工程量、工程量表达式、含量(分解系数)、取费专业(取费类别)
-        if(std.feeType == undefined || std.feeType == null || std.feeType ==''){//定额取费专业为空的情况下,取项目属性中的定额取费专业ID
-            ration.programID = await getProgramForProject(projectID);
-        }else {
-            ration.programID = std.feeType;
-        }
+        // if(std.feeType == undefined || std.feeType == null || std.feeType ==''){//定额取费专业为空的情况下,取项目属性中的定额取费专业ID
+        //     ration.programID = await getProgramForProject(projectID);
+        // }else {
+        //     ration.programID = std.feeType;
+        // }
+        ration.programID =  getProgramID(programArray,std.feeType);
         if( calQuantity){
             await CalculateQuantity(ration,billsItemID,projectID);
         }

+ 1 - 1
socket.js

@@ -10,7 +10,7 @@ const config = require("./config/config.js");
 const moment = require('moment');
 const { PageTarget } = require('./public/common_constants');
 let socketPort = config[process.env.NODE_ENV].socketPort?config[process.env.NODE_ENV].socketPort:5500; 
-
+console.log(socketPort)
 const socketIO = socket(socketPort);
 
 const userCache = {};

+ 8 - 3
web/building_saas/main/js/models/calc_program.js

@@ -1058,8 +1058,14 @@
      let ct = tenderSetting && tenderSetting.calcPriceOption ? tenderSetting.calcPriceOption : "priceBase_RCJ";
      if (ct == 'priceBase') ct = 'priceBase_RCJ'; // 兼容旧项目
      return ct;
-   }
-
+   },
+   getProgramArray: function () { 
+    let array = [];
+    for (let p of projectObj.project.calcProgram.datas.templates) { 
+      array.push({name:p.name,ID:p.ID});
+    } 
+    return array;
+  }
  };
 
  let rationCalcBases = {
@@ -1435,7 +1441,6 @@
      rst = rst.replace(/L/g, '人工系数');
      return rst;
    },
-
    calcItemMaxID: function (template) {
      let MaxID = 0;
      for (let item of template.calcItems) {

+ 17 - 5
web/building_saas/main/js/models/ration.js

@@ -418,7 +418,7 @@ var Ration = {
             }
             let calQuantity = optionsOprObj.getOption(optionsOprObj.optionsTypes.GENERALOPTS, 'rationQuanACToBillsQuan');
             $.bootstrapLoading.start();
-            CommonAjax.post("/ration/replaceRations",{nodeInfo:nodeInfo,libIDs:libIDs,defaultLibID: defaultLibID,projectID:projectID,calQuantity:calQuantity,cleanzmhs:cleanzmhs},function (data) {
+            CommonAjax.post("/ration/replaceRations",{nodeInfo:nodeInfo,libIDs:libIDs,defaultLibID: defaultLibID,projectID:projectID,calQuantity:calQuantity,cleanzmhs:cleanzmhs,programArray: calcTools.getProgramArray()},function (data) {
                 for(let recode of data){
                    let node =  mainTree.getNodeByID(recode.ration.ID);
                    if(node) {
@@ -482,6 +482,7 @@ var Ration = {
                     let billsNode = project.mainTree.getNodeByID(billItemID);
                     needInstall = project.Bills.isFBFX(billsNode);//在分部分项插入的定额才需要定额安装增加费
                 }
+              let programArray = calcTools.getProgramArray();
                 for(let i = 0; i < items.length; i++){
                     let newData = me.getTempRationData(me.getNewRationID(), billItemID, serialNo, items[i].rationType);
                     serialNo++;
@@ -494,7 +495,7 @@ var Ration = {
                             brUpdate.push({projectID:newData.projectID,ID:br[i].ID,serialNo:br[i].serialNo});
                         }
                     }
-                    newDatas.push({itemQuery: items[i].itemQuery, newData: newData, defaultLibID: rationLibObj.getDefaultStdRationLibID(), calQuantity: calQuantity, brUpdate: brUpdate, needInstall: needInstall})
+                    newDatas.push({itemQuery: items[i].itemQuery, newData: newData, defaultLibID: rationLibObj.getDefaultStdRationLibID(), calQuantity: calQuantity, brUpdate: brUpdate, needInstall: needInstall,programArray:programArray})
                 }
                 const rstData = await ajaxPost('/ration/addMultiRation', { projectID: me.project.ID(), newDatas });
                 let newNodes = [];
@@ -585,8 +586,19 @@ var Ration = {
                     let billsNode = project.mainTree.getNodeByID(billItemID);
                     needInstall = project.Bills.isFBFX(billsNode);//在分部分项插入的定额才需要定额安装增加费
                 }
-                $.bootstrapLoading.start();
-                CommonAjax.post("/ration/addNewRation",{projectID:me.project.ID(),itemQuery:itemQuery,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:calQuantity,brUpdate:brUpdate,needInstall:needInstall},function (data) {
+              $.bootstrapLoading.start();
+                let tdata = {
+                  projectID: me.project.ID(),
+                  itemQuery: itemQuery,
+                  newData: newData,
+                  defaultLibID: rationLibObj.getDefaultStdRationLibID(),
+                  calQuantity: calQuantity,
+                  brUpdate: brUpdate,
+                  needInstall: needInstall,
+                  programArray: calcTools.getProgramArray()
+                }
+
+                CommonAjax.post("/ration/addNewRation",tdata,function (data) {
                     //更新缓存
                     me.datas.push(data.ration);
                     me.addSubListOfRation(data);
@@ -672,7 +684,7 @@ var Ration = {
                 newNode = project.mainTree.insert(billItemID, nextID, newID);
                 newNode.sourceType = project.Ration.getSourceType();
                 newNode.data = newData;
-                CommonAjax.post("/ration/addNewRation",{itemQuery:null,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:false,brUpdate:brUpdate,needInstall:false},function (data) {
+                CommonAjax.post("/ration/addNewRation",{itemQuery:null,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:false,brUpdate:brUpdate,needInstall:false,programArray: calcTools.getProgramArray()},function (data) {
                     //更新缓存
                     me.datas.push(data.ration);
                     me.addSubListOfRation(data);

+ 1 - 1
web/building_saas/pm/js/pm_newMain.js

@@ -337,7 +337,7 @@ const projTreeObj = {
             name: '导入接口文件',
             icon: 'fa-cloud-upload',
             visible: function () {
-                const names = ['全国公路(2018)'];
+                const names = ['公路造价(2018)'];
                 return compilationData && names.includes(compilationData.name);
             },
             callback: function () {

+ 1 - 1
web/building_saas/standard_interface/export/anhui_maanshan.js

@@ -538,7 +538,7 @@ INTERFACE_EXPORT = (() => {
     // 校验信息
     function Jyxx(cpuID, diskID, macID, toMD5Value) {
       const attrs = [
-        { name: 'SoftName', value: '纵横创新软件有限公司' }, // 公司名
+        { name: 'SoftName', value: '珠海纵横创新软件有限公司' }, // 公司名
         { name: 'SoftNum', value: md5(toMD5Value) }, // 校验数据
         { name: 'MacAdress', value: macID }, // mac地址
         { name: 'DogNum', value: userID }, // 加密锁号,取用户ID

+ 8 - 2
web/building_saas/standard_interface/export/guangdong_zhongshan.js

@@ -253,7 +253,13 @@ INTERFACE_EXPORT = (() => {
       let baseInfo = _.find(projectData.property.basicInformation, {
         dispName: "基本信息",
       });
-      let makeData = _.find(baseInfo.items, { "key": "makeDate" });
+       //“招标工程量清单”、“招标控制价”时,输出该字段,为导出该文件的当前时间
+      let makeData = {
+        value : UTIL.getNowFormatTime(true)
+      }
+
+      //投标的时候取基本信息的makeData字段
+      if(isBidSubmission) makeData = _.find(baseInfo.items, { "key": "makeDate" });
       let hardID = UTIL.generateHardwareId();
       let [cpuId, diskId, macId] = hardID.split(";");
       const attrs = [{
@@ -1066,7 +1072,7 @@ INTERFACE_EXPORT = (() => {
             },
             {
               name: "QtyFormula",
-              value: data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
+              value: data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : ""//data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
             },
             {
               name: "Price",

+ 0 - 3
web/over_write/js/hunan_2020.js

@@ -392,9 +392,6 @@ if (typeof baseFigureTemplate !== 'undefined') {
 
 if (typeof projectObj !== 'undefined') {
     projectObj.isInsertEquipmentVisable = function (selected) {
-        return true;   //湖南不管是预算或者工程量清单,都显示   
-    }
-    projectObj.isInsertEquipmentVisable = function (selected) {
         if (projectObj.project.property.valuationType == 'bill') {//预算项目中,右键“插入设备”,仅在第一部分中显示。
             return projectObj.project.Bills.isConstructionInstall(selected);
         }

+ 6 - 0
web/over_write/js/quanguo_2018.js

@@ -473,6 +473,12 @@ if (typeof baseFigureTemplate !== 'undefined') {
   };
 }
 
+if (typeof projectObj !== 'undefined') {
+  projectObj.isInsertEquipmentVisable = function (selected) {
+      return true;   //全国不管是预算或者工程量清单,都是隐藏   
+  }
+}
+
 if (typeof module !== 'undefined' && !module.nodeType) {
   module.exports = {
     progression,

+ 1 - 1
web/over_write/js/shandong_2016.js

@@ -57,7 +57,7 @@ function overwriteRationCalcBases() {
       name: "其他工程费II",
     },
     {
-      type: "indirectFee",
+      type: "indirect",
       name: "间接费",
     },
     {