فهرست منبع

山东接口调整

Tony Kang 3 سال پیش
والد
کامیت
5d20f0a046
1فایلهای تغییر یافته به همراه98 افزوده شده و 69 حذف شده
  1. 98 69
      web/building_saas/standard_interface/export/shandong_common.js

+ 98 - 69
web/building_saas/standard_interface/export/shandong_common.js

@@ -929,6 +929,10 @@ INTERFACE_EXPORT = (() => {
           this.children.push(estSpecPrjRpt);
         }
         // 6. 工程量清单单价分析表
+        let billAnalyzeRpt = getBillsAnalyze(tenderProject);
+        if (billAnalyzeRpt) {
+          this.children.push(billAnalyzeRpt);
+        }
     }
   
       function _getBidGljCode(tenderProject, orgGlj) {
@@ -960,7 +964,7 @@ INTERFACE_EXPORT = (() => {
         return rstSum;
       };
 
-      function _getSum(orgSum) {
+      function _getNumValueByExportKind(orgSum) {
         let rst = orgSum;
         // const isBidInvitation = exportKind === BID_INVITATION; // 是否是招标
         // const isBidSubmission = exportKind === BID_SUBMISSION; // 是否是投标
@@ -1072,7 +1076,7 @@ INTERFACE_EXPORT = (() => {
               value: item.Name
             },
             { name: 'Sum',
-              value: _getSum(item.Sum)
+              value: _getNumValueByExportKind(item.Sum)
               // value: 0 // 所有清单的金额都是0
             }
           ];
@@ -1117,7 +1121,7 @@ INTERFACE_EXPORT = (() => {
           const pSumAttrs = [
             {
               name: 'Sum',
-              value: _getSum(_getFee(orgNode))
+              value: _getNumValueByExportKind(_getFee(orgNode))
               // value: 0
             }
           ];
@@ -1140,11 +1144,11 @@ INTERFACE_EXPORT = (() => {
                   value: node.quantity
                 }, {
                   name: 'Price',
-                  value: _getSum(_getFee(node, 'common', 'tenderUnitFee'))
+                  value: _getNumValueByExportKind(_getFee(node, 'common', 'tenderUnitFee'))
                   // value: 0
                 }, {
                   name: 'Sum',
-                  value: _getSum(_getFee(node))
+                  value: _getNumValueByExportKind(_getFee(node))
                   // value: 0
                 }
               ];
@@ -1201,7 +1205,7 @@ INTERFACE_EXPORT = (() => {
             {
               name: 'Sum',
               // value: _getFee(nodeLabour) + _getFee(nodeMaterial) + _getFee(nodeMachine)
-              value: _getSum(_getFee(nodeLabour) + _getFee(nodeMaterial) + _getFee(nodeMachine))
+              value: _getNumValueByExportKind(_getFee(nodeLabour) + _getFee(nodeMaterial) + _getFee(nodeMachine))
             }
           ];
           summaryNode.attrs = pSumAttrs;
@@ -1216,7 +1220,7 @@ INTERFACE_EXPORT = (() => {
               },
               {
                 name: "Sum",
-                value: _getSum(_getFee(node)),
+                value: _getNumValueByExportKind(_getFee(node)),
               },
               {
                 name: "Remark",
@@ -1259,8 +1263,8 @@ INTERFACE_EXPORT = (() => {
               {name: 'Name', value: bill.name},
               {name: 'Unit', value: bill.unit},
               {name: 'Num', value: bill.quantity},
-              {name: 'Price', value: _getSum(_getFee(bill, 'common', 'tenderUnitFee'))},
-              {name: 'Sum', value: _getSum(_getFee(bill)), type:TYPE.DECIMAL},
+              {name: 'Price', value: _getNumValueByExportKind(_getFee(bill, 'common', 'tenderUnitFee'))},
+              {name: 'Sum', value: _getNumValueByExportKind(_getFee(bill)), type:TYPE.DECIMAL},
               // {name: 'Price', value: 0},
               // {name: 'Sum', value: 0},
               {name: 'Remark', value: (bill.remark) ? glj.remark : ''}
@@ -1285,8 +1289,8 @@ INTERFACE_EXPORT = (() => {
               {name: 'Name', value: glj.name},
               {name: 'Unit', value: glj.unit},
               {name: 'Num', value: glj.tenderQuantity},
-              {name: 'Price', value: _getSum(glj.unit_price.market_price)},
-              {name: 'Sum', value: _getSum(glj.tenderQuantity * glj.unit_price.market_price), type:TYPE.DECIMAL},
+              {name: 'Price', value: _getNumValueByExportKind(glj.unit_price.market_price)},
+              {name: 'Sum', value: _getNumValueByExportKind(glj.tenderQuantity * glj.unit_price.market_price), type:TYPE.DECIMAL},
               // {name: 'Price', value: 0},
               // {name: 'Sum', value: 0},
               {name: 'Remark', value: (glj.remark) ? glj.remark : ''}
@@ -1325,8 +1329,8 @@ INTERFACE_EXPORT = (() => {
               {name: 'Name', value: bill.name},
               {name: 'Unit', value: bill.unit},
               {name: 'Num', value: bill.quantity},
-              {name: 'Price', value: _getSum(_getFee(bill, 'common', 'tenderUnitFee'))},
-              {name: 'Sum', value: _getSum(_getFee(bill)), type:TYPE.DECIMAL},
+              {name: 'Price', value: _getNumValueByExportKind(_getFee(bill, 'common', 'tenderUnitFee'))},
+              {name: 'Sum', value: _getNumValueByExportKind(_getFee(bill)), type:TYPE.DECIMAL},
               // {name: 'Price', value: 0},
               // {name: 'Sum', value: 0},
               {name: 'Remark', value: (bill.remark) ? glj.remark : ''}
@@ -1351,8 +1355,8 @@ INTERFACE_EXPORT = (() => {
               {name: 'Name', value: glj.name},
               {name: 'Unit', value: glj.unit},
               {name: 'Num', value: glj.tenderQuantity},
-              {name: 'Price', value: _getSum(glj.unit_price.market_price)},
-              {name: 'Sum', value: _getSum(glj.tenderQuantity * glj.unit_price.market_price), type:TYPE.DECIMAL},
+              {name: 'Price', value: _getNumValueByExportKind(glj.unit_price.market_price)},
+              {name: 'Sum', value: _getNumValueByExportKind(glj.tenderQuantity * glj.unit_price.market_price), type:TYPE.DECIMAL},
               // {name: 'Price', value: 0},
               // {name: 'Sum', value: 0},
               {name: 'Remark', value: (glj.remark) ? glj.remark : ''}
@@ -1390,7 +1394,7 @@ INTERFACE_EXPORT = (() => {
               {name: 'Number', value: bill.code},
               {name: 'Name', value: bill.name},
               {name: 'Content', value: bill.jobContent.toString()},
-              {name: 'Sum', value: _getSum(ttl), type:TYPE.DECIMAL},
+              {name: 'Sum', value: _getNumValueByExportKind(ttl), type:TYPE.DECIMAL},
               // {name: 'Sum', value: 0, type:TYPE.DECIMAL},
             ];
             mEstItemNode.attrs.push(...attrs);
@@ -1415,7 +1419,7 @@ INTERFACE_EXPORT = (() => {
               for (let flag of bill.flags) {
                 if (flag.flag === 19) {
                   for (let rootBill of tenderProject.Bills.tree.roots) {
-                    if (rootBill.ID === bill.ID) {
+                    if (rootBill.data.ID === bill.ID) {
                       topNode100To700 = rootBill;
                       break;
                     }
@@ -1441,10 +1445,10 @@ INTERFACE_EXPORT = (() => {
         };
 
         const _getCacheObjInitialedItem = function(bill = null, glj = null) {
-          return {
+          let rst = {
             code: (bill) ? bill.code : ((glj) ? glj.code : ''),
             name: (bill) ? bill.name : ((glj) ? glj.name : ''),
-            quantity: 0,
+            quantity: (bill) ? bill.quantity : 1,
             labourConsume: 0,
             labourUnitPrice: 0,
             labourTotalPrice: 0,
@@ -1456,8 +1460,10 @@ INTERFACE_EXPORT = (() => {
             managementFee: (bill) ? (_getFee(bill, 'manage') + _getFee(bill, 'force')) : 0, //管理+规费
             taxFee: (bill) ? _getFee(bill, 'tax') : 0,
             profitFee: (bill) ? _getFee(bill, 'profit') : 0,
-            unitPrice: (bill) ? _getFee(bill, 'common', 'unitFee') : 0
+            unitPrice: (bill) ? _getFee(bill, 'common', 'unitFee') : 0,
+            items: []
           };
+          return rst;
         };
         const _getPrjGLJ = function(gljID) {
           let rst = null;
@@ -1467,6 +1473,7 @@ INTERFACE_EXPORT = (() => {
               break;
             }
           }
+          return rst;
         };
         const _createNode = function(billIdKey, bill) {
           if (cacheObj[billIdKey]) {
@@ -1479,54 +1486,59 @@ INTERFACE_EXPORT = (() => {
             let billMainMaterialTtl = cacheObj[billIdKey].mainMaterialFee/bQtn;
             let billAuxiliaryMaterialTtl = cacheObj[billIdKey].auxiliaryMaterialFee/bQtn;
             let leafBillAttrs = [
-              {name: 'ItemNo', vlaue: sno},
-              {name: 'Code', vlaue: cacheObj[billIdKey].code},
-              {name: 'Name', vlaue: cacheObj[billIdKey].name},
-              {name: 'LaborWorkDays', vlaue: cacheObj[billIdKey].labourConsume / bQtn},
-              {name: 'LaborUnitPrice', vlaue: cacheObj[billIdKey].labourUnitPrice},
-              {name: 'LaborUnitTotal', vlaue: cacheObj[billIdKey].labourTotalPrice / bQtn},
-              {name: 'MainMaterialConsume', vlaue: 0},
-              {name: 'MainMaterialUnit', vlaue: ''},
-              {name: 'MainMaterialUnitPrice', vlaue: 0},
-              {name: 'MainMaterialTotal', vlaue: billMainMaterialTtl},
-              {name: 'AuxiliaryMaterialFee', vlaue: billAuxiliaryMaterialTtl},
-              {name: 'MaterialSum', vlaue: billMainMaterialTtl + billAuxiliaryMaterialTtl},
-              {name: 'MachUsageFee', vlaue: cacheObj[billIdKey].machineFee/bQtn},
-              {name: 'OtherFee', vlaue: cacheObj[billIdKey].otherFee/bQtn},
-              {name: 'ManageFee', vlaue: cacheObj[billIdKey].managementFee/bQtn},
-              {name: 'Tax', vlaue: cacheObj[billIdKey].taxFee/bQtn},
-              {name: 'Profit', vlaue: cacheObj[billIdKey].profitFee/bQtn},
-              {name: 'Price', vlaue: _getFee(bill)},
+              {name: 'ItemNo', value: sno},
+              {name: 'Code', value: cacheObj[billIdKey].code},
+              {name: 'Name', value: cacheObj[billIdKey].name},
+              {name: 'LaborWorkDays', value: cacheObj[billIdKey].labourConsume / bQtn},
+              {name: 'LaborUnitPrice', value: cacheObj[billIdKey].labourUnitPrice},
+              {name: 'LaborUnitTotal', value: cacheObj[billIdKey].labourTotalPrice / bQtn},
+              {name: 'MainMaterialConsume', value: 0},
+              {name: 'MainMaterialUnit', value: ''},
+              {name: 'MainMaterialUnitPrice', value: 0},
+              {name: 'MainMaterialTotal', value: billMainMaterialTtl},
+              {name: 'AuxiliaryMaterialFee', value: billAuxiliaryMaterialTtl},
+              {name: 'MaterialSum', value: billMainMaterialTtl + billAuxiliaryMaterialTtl},
+              {name: 'MachUsageFee', value: cacheObj[billIdKey].machineFee/bQtn},
+              {name: 'OtherFee', value: cacheObj[billIdKey].otherFee/bQtn},
+              {name: 'ManageFee', value: cacheObj[billIdKey].managementFee/bQtn},
+              {name: 'Tax', value: cacheObj[billIdKey].taxFee/bQtn},
+              {name: 'Profit', value: cacheObj[billIdKey].profitFee/bQtn},
+              {name: 'Price', value: _getFee(bill)},
             ];
             sno++;
-            let itemNode = new emptyElement('Item');
-            itemNode.attrs.push(...leafBillAttrs);
-            djfxbNode.children.push(itemNode);
+            let leafItemNode = new emptyElement('Item');
+            djfxbNode.children.push(leafItemNode);
+            // leafItemNode.attrs.push(...leafBillAttrs);
+            leafItemNode.attrs = leafBillAttrs;
             //2. 清单下工料机
             cacheObj[billIdKey].items.forEach((gljItem)=> {
-              let showQty = gljItem.mainMaterialConsume/cacheObj[billIdKey].quantity;
+              let showQty = gljItem.mainMaterialConsume/bQtn;
               showQty = Math.round(showQty * 1000000) / 1000000;
               let gljAttrs = [
-                {name: 'ItemNo', vlaue: sno},
-                {name: 'Code', vlaue: gljItem.code},
-                {name: 'Name', vlaue: gljItem.name},
-                {name: 'LaborWorkDays', vlaue: 0},
-                {name: 'LaborUnitPrice', vlaue: 0},
-                {name: 'LaborUnitTotal', vlaue: 0},
-                {name: 'MainMaterialConsume', vlaue: showQty},
-                {name: 'MainMaterialUnit', vlaue: gljItem.mainMaterialUnit},
-                {name: 'MainMaterialUnitPrice', vlaue: gljItem.mainMaterialUnitPrice},
-                {name: 'MainMaterialTotal', vlaue: showQty * gljItem.mainMaterialUnitPrice},
-                {name: 'AuxiliaryMaterialFee', vlaue: 0},
-                {name: 'MaterialSum', vlaue: 0},
-                {name: 'MachUsageFee', vlaue: 0},
-                {name: 'OtherFee', vlaue: 0},
-                {name: 'ManageFee', vlaue: 0},
-                {name: 'Tax', vlaue: 0},
-                {name: 'Profit', vlaue: 0},
-                {name: 'Price', vlaue: _getFee(bill)},
+                {name: 'ItemNo', value: sno},
+                {name: 'Code', value: gljItem.code},
+                {name: 'Name', value: gljItem.name},
+                {name: 'LaborWorkDays', value: 0},
+                {name: 'LaborUnitPrice', value: 0},
+                {name: 'LaborUnitTotal', value: 0},
+                {name: 'MainMaterialConsume', value: showQty},
+                {name: 'MainMaterialUnit', value: gljItem.mainMaterialUnit},
+                {name: 'MainMaterialUnitPrice', value: gljItem.mainMaterialUnitPrice},
+                {name: 'MainMaterialTotal', value: showQty * gljItem.mainMaterialUnitPrice},
+                {name: 'AuxiliaryMaterialFee', value: 0},
+                {name: 'MaterialSum', value: 0},
+                {name: 'MachUsageFee', value: 0},
+                {name: 'OtherFee', value: 0},
+                {name: 'ManageFee', value: 0},
+                {name: 'Tax', value: 0},
+                {name: 'Profit', value: 0},
+                {name: 'Price', value: _getFee(bill)},
               ];
               sno++;
+              let gljItemNode = new emptyElement('Item');
+              djfxbNode.children.push(gljItemNode);
+              // gljItemNode.attrs.push(...gljAttrs);
+              gljItemNode.attrs = gljAttrs;
             });
           }
         };
@@ -1536,14 +1548,14 @@ INTERFACE_EXPORT = (() => {
               _getAllGlj(subBill);
             });
           } else {
-            let billIdKey = prefix + parentBill.ID;
+            let billIdKey = prefix + parentBill.data.ID;
             if (!cacheObj.hasOwnProperty(billIdKey)) {
-              cacheObj[billIdKey] = _getCacheObjInitialedItem(parentBill);
+              cacheObj[billIdKey] = _getCacheObjInitialedItem(parentBill.data);
               addedGljCodeCache[billIdKey] = [];
               proKeysArr.push(billIdKey);
             }
-            tenderProject.ration_glj.forEach((rglj)=> {
-              if (rglj.billsItemID === parentBill.ID) {
+            tenderProject.ration_glj.datas.forEach((rglj)=> {
+              if (rglj.billsItemID === parentBill.data.ID) {
                 let gljQty = parseFloat(rglj.quantity);
                 if (isNaN(gljQty)) gljQty = 0;
                 let gljRationQty = parseFloat(rglj.rationItemQuantity);
@@ -1559,7 +1571,7 @@ INTERFACE_EXPORT = (() => {
                   cacheObj[billIdKey].labourConsume = cacheObj[billIdKey].labourConsume + gljCns;
                   cacheObj[billIdKey].labourUnitPrice = gljUnitPrice;
                   cacheObj[billIdKey].labourTotalPrice = cacheObj[billIdKey].labourTotalPrice + gljTotalPrice;
-                } else if (filterMtlTypes.indexOf(dtlType) < 0) {
+                } else if (filterMtlTypes.indexOf(rglj.type) < 0) {
                   if (!addedGljCodeCache[billIdKey].includes(gljCode)) {
                     addedGljCodeCache[billIdKey].push(gljCode);
                   }
@@ -1569,7 +1581,7 @@ INTERFACE_EXPORT = (() => {
                     dtlObj.name = rglj.name;
                     dtlObj.specs = rglj.specs;
                     //
-                    let adhocGljQty = _getAdhocGljQty(parentBill.ID, dtlObj.code);
+                    let adhocGljQty = _getAdhocGljQty(parentBill.data.ID, dtlObj.code);
                     let adhocGljTtl = adhocGljQty * gljUnitPrice;
                     dtlObj.mainMaterialConsume = gljCns + adhocGljQty; //考虑清单单独加工料机的情况,需要补上消耗量
                     dtlObj.mainMaterialUnitPrice = gljUnitPrice;
@@ -1599,6 +1611,7 @@ INTERFACE_EXPORT = (() => {
             _createNode(billIdKey, parentBill);
           }
         };
+
         if (topNode100To700) {
           topNode100To700.children.forEach((topChapterBill)=> {
             _getAllGlj(topChapterBill);
@@ -1639,12 +1652,12 @@ INTERFACE_EXPORT = (() => {
             },
             {
               name: "Price",
-              value: b.marketPrice || '0',
+              value: _getNumValueByExportKind(b.marketPrice || '0'),
               type: TYPE.DECIMAL
             },
             {
               name: "LimitedPrice",
-              value: b.marketPrice || '0',
+              value: _getNumValueByExportKind(b.marketPrice || '0'),
               type: TYPE.DECIMAL
             },
             {
@@ -1794,6 +1807,22 @@ INTERFACE_EXPORT = (() => {
             if (ListCodeMap[data.name]) ListCode = ListCodeMap[data.name];
             if (data.code && data.code != "") ListCode = data.code;
   
+            let qtyFormula = data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "";
+            //data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
+            if (!data.name.includes('暂列金额')) {
+              if (data.hasOwnProperty('calcBase')) {
+                let chkNaN = parseFloat(data.calcBase);
+                if (isNaN(chkNaN)) {
+                  qtyFormula = data.calcBase;
+                } else {
+                  qtyFormula = '';
+                }
+              } else {
+                qtyFormula = '';
+              }
+              //判断公式(calcBase)是否为正常的计算公式(即非直接输入数量),
+            }
+
             const attrs = [{
                 name: "ListCode",
                 value: ListCode,
@@ -1815,7 +1844,7 @@ INTERFACE_EXPORT = (() => {
               },
               {
                 name: "QtyFormula",
-                value: data.feesIndex && data.feesIndex.common ? data.feesIndex.common.tenderTotalFee : "",//data.calcBase //data.calcBase ? cbParser.toFExpr(data.calcBase, tenderProject.mainTree.items) : "",
+                value: qtyFormula,
                 type: TYPE.DECIMAL,
                 toFix:2
               },