瀏覽代碼

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

vian 5 年之前
父節點
當前提交
c900ad0c95

+ 1 - 1
web/building_saas/main/html/tender_price.html

@@ -5,7 +5,7 @@
             <select class="form-control form-control-sm" style="width: auto; font-size: .875rem" id="calcPriceOption">
                 <option value="priceBase_RCJ" >按目标价调整工料机消耗</option>
                 <option value="coeBase">按调价系数计算</option>
-                <option value="priceBase_ZM" >按目标价调整子目工程量</option>
+                <option value="priceBase_ZM" >按目标价调整定额工程量</option>
             </select>
         </div>
 

+ 2 - 2
web/building_saas/main/js/views/glj_col.js

@@ -16,7 +16,7 @@ let gljCol = {
             {headerName: "定额消耗", headerWidth: 65, dataCode: "rationItemQuantity", dataType: "Number", hAlign: "right", decimalField: "glj.quantity"},   // dataType: "Number", formatter: "0.00"
             {headerName: "总消耗量", headerWidth: 80, dataCode: "totalQuantity", dataType: "Number", hAlign: "right", decimalField: "glj.quantity"},
             // {headerName: "暂估", headerWidth: 45, dataCode: "isEstimate", dataType: "String", hAlign: "center", vAlign: "center", cellType: "checkBox"},
-            {headerName: "调后市场价", headerWidth: 80, dataCode: "tenderPrice", dataType: "Number", hAlign: "right", visible: false},
+            {headerName: "调后预算价", headerWidth: 80, dataCode: "tenderPrice", dataType: "Number", hAlign: "right", visible: false},
             {headerName: "调后消耗量", headerWidth: 80, dataCode: "tenderQuantity", dataType: "Number", hAlign: "right", decimalField: "glj.quantity", visible: false}
         ],
         view: {
@@ -51,7 +51,7 @@ let gljCol = {
             {headerName: "备注", headerWidth: 100, dataCode: "remark", hAlign: "left", dataType: "String",spanRows: [2]},
             // {headerName: ["调价后","市场价"], headerWidth: 75, dataCode: "tenderPrice", hAlign: "right", dataType: "Number",validator:"number",spanCols: [2,1], visible: false},
             // {headerName: ["","总消耗量"], headerWidth: 90, dataCode: "tenderQuantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity',spanCols: [0,1], visible: false}
-            {headerName: ["调价后\n市场价"], headerWidth: 75, dataCode: "tenderPrice", hAlign: "right", dataType: "Number",validator:"number",spanCols: [2,1], visible: false},
+            {headerName: ["调价后\n预算价"], headerWidth: 75, dataCode: "tenderPrice", hAlign: "right", dataType: "Number",validator:"number",spanCols: [2,1], visible: false},
             {headerName: ["调价后\n总消耗量"], headerWidth: 90, dataCode: "tenderQuantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity',spanCols: [0,1], visible: false}
         ],
         view: {

+ 12 - 12
web/building_saas/main/js/views/tender_price_view.js

@@ -15,18 +15,18 @@ let tender_obj={
             {headerName: "计量\n单位", headerWidth: 60, dataCode: "unit", hAlign: "center", dataType: "String",spanRows: [2]},
             {headerName: "工程量", headerWidth: 70, dataCode: "quantity", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2],getText:'getText.quantity'},
             // {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", hAlign: "center", cellType : "checkBox",dataType: "Number",spanRows: [2]},
-            {headerName: ["初始报价","综合单价"], headerWidth: 100, dataCode: "feesIndex.common.unitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
-            {headerName: ["","综合合价"], headerWidth: 100, dataCode: "feesIndex.common.totalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
-            {headerName: ["目标造价","综合单价"], headerWidth: 100, dataCode: "targetUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
-            {headerName: ["","综合合价"], headerWidth: 100, dataCode: "targetTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
-            {headerName: ["调整后报价","综合单价"], headerWidth: 100, dataCode: "feesIndex.common.tenderUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
-            {headerName: ["","综合合价"], headerWidth: 100, dataCode: "feesIndex.common.tenderTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
-            {headerName: ["消耗量调整系数","人工"], headerWidth: 80, dataCode: "quantityCoe.labour", hAlign: "right", dataType: "Number",validator:"number",spanCols : [5,1]},
+            {headerName: ["初始报价","单价"], headerWidth: 100, dataCode: "feesIndex.common.unitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
+            {headerName: ["","金额"], headerWidth: 100, dataCode: "feesIndex.common.totalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
+            {headerName: ["目标造价","单价"], headerWidth: 100, dataCode: "targetUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
+            {headerName: ["","金额"], headerWidth: 100, dataCode: "targetTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
+            {headerName: ["调整后报价","单价"], headerWidth: 100, dataCode: "feesIndex.common.tenderUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
+            {headerName: ["","金额"], headerWidth: 100, dataCode: "feesIndex.common.tenderTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
+            {headerName: ["消耗量调整系数","人工"], headerWidth: 80, dataCode: "quantityCoe.labour", hAlign: "right", dataType: "Number",validator:"number",spanCols : [4,1]},
             {headerName: ["","材料"], headerWidth: 80, dataCode: "quantityCoe.material", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
             {headerName: ["","机械"], headerWidth: 80, dataCode: "quantityCoe.machine", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
-            {headerName: ["","主材"], headerWidth: 80, dataCode: "quantityCoe.main", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
+            // {headerName: ["","主材"], headerWidth: 80, dataCode: "quantityCoe.main", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
             {headerName: ["","设备"], headerWidth: 80, dataCode: "quantityCoe.equipment", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
-            {headerName: "子目工程量\n调整系数", headerWidth: 80, dataCode: "rationQuantityCoe", hAlign: "right", dataType: "Number",spanRows: [2],validator:"number"}
+            {headerName: "定额工程量\n调整系数", headerWidth: 80, dataCode: "rationQuantityCoe", hAlign: "right", dataType: "Number",spanRows: [2],validator:"number"}
         ],
         view: {
             // lockColumns: [0,1,2,3,4,5,6,9,10]
@@ -235,12 +235,12 @@ let tender_obj={
     },
     onEnterCell : function (sender,args) {
         let me = tender_obj, row = args.row, col = args.col, lock = false;
-        if ([7, 8].includes(col)){                                  // 目标单价、目标合价
+        if ([6, 7].includes(col)){                       // 目标单价、目标合价
             let treeNode = me.tenderTree.items[row];
-            if (calcTools.isCalcBaseBill(treeNode))                   // 公式结点只读
+            if (calcTools.isCalcBaseBill(treeNode))     // 公式结点的目标单价、目标合价只读
                 lock = true;
 
-            if ((col = 7) && calcTools.isParentBill(treeNode))
+            if ((col = 6) && calcTools.isParentBill(treeNode))      // 反向调价时,父清单的目标单价只读
                 lock = true;
 
             if (lock)

+ 70 - 23
web/building_saas/standard_interface/export/guangdong_zhongshan.js

@@ -115,6 +115,13 @@ INTERFACE_EXPORT = (() => {
     "清单 第900章 附属区房建工程":true
   }
 
+  const ratioCodeMap = { 
+    "01ZJF":"0",
+    "02JXF":"1",
+    "03WHF":"2",
+    "04ACFZF":"3"
+  }
+
   function getBasePrice(projectGLJID, tenderProject) {
     let glj = _.find(tenderProject.projectGLJ.datas.gljList, {
       id: projectGLJID
@@ -197,6 +204,9 @@ INTERFACE_EXPORT = (() => {
    */
   async function entry(areaKey, exportKind, projectData, tenderDetailMap) {
     const {
+      CONFIG: {
+        TYPE
+      },
       UTIL,
       Element
     } = INTERFACE_EXPORT_BASE;
@@ -210,9 +220,9 @@ INTERFACE_EXPORT = (() => {
       fixedFlag,
     } = window.commonConstants;
     let cprjType = {
-      1: "ZBKZJ", // 招标
+      1: "GCLQD", // 招标
       2: "TBBJ", // 投标
-      3: "GCLQD", // 控制价
+      3: "ZBKZJ", // 控制价
     };
     const isBidInvitation = exportKind === BID_INVITATION; // 是否是招标
     const isBidSubmission = exportKind === BID_SUBMISSION; // 是否是投标
@@ -239,6 +249,10 @@ INTERFACE_EXPORT = (() => {
     }
     // 项目基本信息
     function SystemInfo(projectData) {
+      let baseInfo = _.find(projectData.property.basicInformation, {
+        dispName: "基本信息",
+      });
+      let makeData = _.find(baseInfo.items, { "key": "makeDate" });
       let hardID = UTIL.generateHardwareId();
       let [cpuId, diskId, macId] = hardID.split(";");
       const attrs = [{
@@ -263,7 +277,7 @@ INTERFACE_EXPORT = (() => {
         },
         {
           name: "MakeDate",
-          value: UTIL.getNowFormatTime(),
+          value: makeData?makeData.value:"",
         },
         {
           name: "Key1",
@@ -281,7 +295,7 @@ INTERFACE_EXPORT = (() => {
       if (isBidSubmission)
         attrs.splice(6, 0, {
           name: "BidderVer",
-          value: UTIL.getNowFormatTime(),
+          value: UTIL.getNowFormatTime(true),
         });
       Element.call(this, "SystemInfo", attrs);
     }
@@ -476,7 +490,7 @@ INTERFACE_EXPORT = (() => {
 
       this.children.push(Param);
 
-      function MP(g) {
+      function Mp(g) {
         const attrs = [{
             name: "Code",
             value: g.code,
@@ -494,7 +508,7 @@ INTERFACE_EXPORT = (() => {
             value: g.unit,
           },
           {
-            name: "BugetPrice",
+            name: "BudgetPrice",
             value: g.priceInfo.tenderPrice,
           },
           {
@@ -506,7 +520,7 @@ INTERFACE_EXPORT = (() => {
             value: g.unit_price.is_add,
           },
         ];
-        Element.call(this, "MP", attrs);
+        Element.call(this, "Mp", attrs);
       }
 
       function Material(g) {
@@ -527,7 +541,7 @@ INTERFACE_EXPORT = (() => {
             value: g.unit,
           },
           {
-            name: "BugetPrice",
+            name: "BudgetPrice",
             value: g.priceInfo.tenderPrice,
           },
           {
@@ -698,7 +712,7 @@ INTERFACE_EXPORT = (() => {
             value: g.unit,
           },
           {
-            name: "BugetPrice",
+            name: "BudgetPrice",
             value: g.priceInfo.tenderPrice,
           },
           {
@@ -776,7 +790,7 @@ INTERFACE_EXPORT = (() => {
         function FixedCostItem(item) { 
           const attrs = [{
             name: "FixedCostNo",
-            value: item.code,
+            value: ratioCodeMap[item.code],
           },{
             name: "Sum",
             value: item.consumption,
@@ -797,7 +811,7 @@ INTERFACE_EXPORT = (() => {
           gljKeyMap[gljUtil.getIndex(g)] = g;
           type = type.charAt(0);
           if (type == "1") {
-            Mps.children.push(new MP(g));
+            Mps.children.push(new Mp(g));
           } else if (type == "2" || type == 5) {
             Materials.children.push(new Material(g));
           } else if (type == "3") {
@@ -1019,6 +1033,7 @@ INTERFACE_EXPORT = (() => {
             {
               name: "Num",
               value: data.quantity,
+              type:TYPE.DECIMAL
             },
             {
               name: "QtyFormula",
@@ -1026,7 +1041,8 @@ INTERFACE_EXPORT = (() => {
             },
             {
               name: "Price",
-              value: 0//data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderUnitFee : "",
+              value: 0,//data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderUnitFee : "",
+              type:TYPE.DECIMAL
             },
             {
               name: "Rate",
@@ -1034,7 +1050,8 @@ INTERFACE_EXPORT = (() => {
             },
             {
               name: "Sum",
-              value: 0//data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "",
+              value: 0,//data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "",
+              type:TYPE.DECIMAL
             },
             {
               name: "ChapterKind",
@@ -1051,6 +1068,7 @@ INTERFACE_EXPORT = (() => {
             {
               name: "ProvisionalType",
               value: ProvisionalType,
+              mustHasValue:true
             },
             {
               name: "MeterRules",
@@ -1064,7 +1082,7 @@ INTERFACE_EXPORT = (() => {
               name: "Remarks",
               value: data.remark,
             },
-            {
+           /*  {
               name: "MpRatio",
               value: MpRatio,
             },
@@ -1083,15 +1101,15 @@ INTERFACE_EXPORT = (() => {
             {
               name: "AdjustedSums",
               value: data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "",
-            },
+            }, */
             {
               name: "ItemType",
               value: 1,
             },
-            {
+            /* {
               name: "FomulaCode",
               value: ""
-            },
+            }, */
           ];
 
           if (isBidSubmission || isControl) { 
@@ -1140,6 +1158,7 @@ INTERFACE_EXPORT = (() => {
                 {
                   name: "Sum",
                   value: bills.feesIndex && bills.feesIndex.common ? bills.feesIndex.common.tenderTotalFee : "",
+                  type:TYPE.DECIMAL
                 },
                 {
                   name: "Remarks",
@@ -1352,15 +1371,17 @@ INTERFACE_EXPORT = (() => {
 
       const attrs = [{
           name: "PrjArea",
-          value: baseMap["location"] ? baseMap["location"].value : "",
+          value: baseMap["location"] ? baseMap["location"].value : ""
         },
         {
           name: "StartPileNo",
           value: baseMap["startChainages"] ? baseMap["startChainages"].value : "",
+          mustHasValue: true
         },
         {
           name: "EndPileNo",
           value: baseMap["endChainages"] ? baseMap["endChainages"].value : "",
+          mustHasValue: true
         },
         {
           name: "BuildType",
@@ -1369,50 +1390,62 @@ INTERFACE_EXPORT = (() => {
         {
           name: "Terrain",
           value: Terrain,
+          mustHasValue: true
         },
         {
           name: "RoadGrade",
           value: RoadGrade,
+          mustHasValue: true
         },
         {
           name: "DesignSpeed",
           value: DesignSpeed,
+          mustHasValue: true
         },
         {
           name: "Structure",
           value: Structure,
+          mustHasValue: true
         },
         {
           name: "SubgradeWidth",
           value: featrueMap["subgradeWidth"] ? featrueMap["subgradeWidth"].value : "",
+          mustHasValue: true
         },
         {
           name: "RoadLength",
           value: featrueMap["roadLength"] ? featrueMap["roadLength"].value : "",
+          mustHasValue: true
         },
         {
           name: "BridgeLength",
           value: featrueMap["bridgeLength"] ? featrueMap["bridgeLength"].value : "",
+          mustHasValue: true
         },
         {
           name: "TunnelLength",
           value: featrueMap["tunnelLength"] ? featrueMap["tunnelLength"].value : "",
+          mustHasValue: true
         },
         {
           name: "BriTunRate",
           value: featrueMap["briTunRate"] ? featrueMap["briTunRate"].value : "",
+          mustHasValue: true
         },
         {
           name: "InterchangeNum",
           value: featrueMap["interchangeNum"] ? featrueMap["interchangeNum"].value : "",
+          mustHasValue: true
         },
         {
           name: "StubLengths",
           value: featrueMap["stubLengths"] ? featrueMap["stubLengths"].value : "",
+          mustHasValue: true
         },
         {
           name: "LaneLength",
           value: featrueMap["laneLength"] ? featrueMap["laneLength"].value : "",
+          mustHasValue: true
         },
       ];
       Element.call(this, "Params", attrs);
@@ -1466,7 +1499,7 @@ INTERFACE_EXPORT = (() => {
         //if (i.dispName == "编制日期") key = "编制时间";
         baseMap[key] = i;
       }
-
+      //mustHasValue  
       const attrs = [{
           name: "ValuationModel",
           value: property.taxType,
@@ -1478,6 +1511,7 @@ INTERFACE_EXPORT = (() => {
         {
           name: "Designer",
           value: baseMap["designUnit"] ? baseMap["designUnit"].value : "",
+          mustHasValue:true
         },
         {
           name: "Compile",
@@ -1490,54 +1524,67 @@ INTERFACE_EXPORT = (() => {
         {
           name: "CompileCertNo",
           value: baseMap["compileCertNo"] ? baseMap["compileCertNo"].value : "",
+          mustHasValue:true
         },
         {
           name: "CompileDate",
-          value: baseMap["compileDate"] ? baseMap["compileDate"].value : "",
+          value: baseMap["compileDate"] && baseMap["compileDate"].value != "" ? baseMap["compileDate"].value + "T00:00:00" : "",
+          mustHasValue:true
         },
         {
           name: "Review",
           value: baseMap["reviewUnit"] ? baseMap["reviewUnit"].value : "",
+          mustHasValue:true
         },
         {
           name: "ReviewApprover",
           value: baseMap["reviewApprover"] ? baseMap["reviewApprover"].value : "",
+          mustHasValue:true
         },
         {
           name: "ReviewCertNo",
           value: baseMap["reviewCertNo"] ? baseMap["reviewCertNo"].value : "",
+          mustHasValue:true
         },
         {
           name: "ReviewDate",
-          value: baseMap["reviewDate"] ? baseMap["reviewDate"].value : "",
+          value: baseMap["reviewDate"] && baseMap["reviewDate"].value != "" ? baseMap["reviewDate"].value + "T00:00:00" : "",
+          mustHasValue:true
         },
         {
           name: "Examine",
           value: baseMap["examineUnit"] ? baseMap["examineUnit"].value : "",
+          mustHasValue:true
         },
         {
           name: "ExamineApprover",
           value: baseMap["examineApprover"] ? baseMap["examineApprover"].value : "",
+          mustHasValue:true
         },
         {
           name: "ExamineCertNo",
           value: baseMap["examineCertNo"] ? baseMap["examineCertNo"].value : "",
+          mustHasValue:true
         },
         {
           name: "ExamineDate",
-          value: baseMap["examineDate"] ? baseMap["examineDate"].value : "",
+          value: baseMap["examineDate"] && baseMap["examineDate"].value != "" ? baseMap["examineDate"].value + "T00:00:00" : "",
+          mustHasValue:true
         },
         {
           name: "CompileExplain",
           value: baseMap["compileExplain"] ? baseMap["compileExplain"].value : "",
+          mustHasValue:true
         },
         {
           name: "ExamineExplain",
           value: baseMap["examineExplain"] ? baseMap["examineExplain"].value : "",
+          mustHasValue:true
         },
         {
           name: "ProjectExplain",
           value: baseMap["projectExplain"] ? baseMap["projectExplain"].value : "",
+          mustHasValue:true
         },
       ];
       if (isBidInvitation) { //招标文件,则以下的8、12~18则不输出
@@ -1548,7 +1595,7 @@ INTERFACE_EXPORT = (() => {
     }
 
     let data = new CprjInfo(projectData.name); 
-    data.children.push(new SystemInfo());
+    data.children.push(new SystemInfo(projectData));
     data.children.push(new CostBasis());
     let seriNo = 1;
     let Rates = [];

+ 11 - 2
web/building_saas/standard_interface/import/guangdong_zhongshan.js

@@ -24,6 +24,12 @@ INTERFACE_IMPORT = (() => {
     "7":"独立隧道"
   }
   
+  function formateDataString(dstring) { 
+    if (!dstring || dstring == "") return "";
+    const strArr = dstring.split("T");
+    return strArr[0]
+  }
+
   async function entry(areaKey, xmlObj) {
     const {
       UTIL: {
@@ -53,23 +59,26 @@ INTERFACE_IMPORT = (() => {
       let roadGrade = "";
       if (RoadGradeMap[RoadGrade]) roadGrade = RoadGradeMap[RoadGrade];
 
+
+
       info = [
         { key: 'constructingUnit', value: getValue(MakeInfo, ['_Manage']) },
         { key: 'designUnit', value: getValue(MakeInfo, ['_Designer']) },
         { key: 'compileUnit', value: getValue(MakeInfo, ['_Compile']) },
         { key: 'compileApprover', value: getValue(MakeInfo, ['_CompileApprover']) },
         { key: 'compileCertNo', value: getValue(MakeInfo, ['_CompileCertNo']) },
-        { key: 'compileDate', value: getValue(MakeInfo, ['_CompileDate']) },
+        { key: 'compileDate', value: formateDataString(getValue(MakeInfo, ['_CompileDate'])) },
         { key: 'reviewUnit', value: getValue(MakeInfo, ['_Review']) },
         { key: 'reviewApprover', value: getValue(MakeInfo, ['_ReviewApprover']) },
         { key: 'reviewCertNo', value: getValue(MakeInfo, ['_ReviewCertNo']) },
-        { key: 'reviewDate', value: getValue(MakeInfo, ['_ReviewDate']) },
+        { key: 'reviewDate', value: formateDataString(getValue(MakeInfo, ['_ReviewDate'])) },
         { key: 'startChainages', value: getValue(Params, ['_StartPileNo'])},
         { key: 'endChainages', value: getValue(Params, ['_EndPileNo']) },  
         { key: 'location', value: getValue(Params, ['_PrjArea']) },  
         { key: 'natureConstruction', value: natureConstruction },  
         { key: 'terrainCategory', value: terrainCategory },  
         { key: 'roadGrade', value: roadGrade },  
+        { key: 'makeDate', value: getValue(CprjInfo, ['SystemInfo','_MakeDate']) },  
 
       ]
       for (let t of EprjInfos) {