Bläddra i källkod

取费专业读取文本加中山接口

zhangweicheng 5 år sedan
förälder
incheckning
37c29e1602

+ 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 programArray[0].ID;
+    }
+  }
+}
+
+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);
         }

+ 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);

+ 7 - 1
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 = [{