Browse Source

变更安徽马鞍山、淮北、铜陵、芜湖、黄山、宣城、亳州的接口导出以下字段的取值。

zhangweicheng 4 years ago
parent
commit
6f20f3d355

+ 35 - 28
web/building_saas/standard_interface/export/anhui_maanshan.js

@@ -26,6 +26,7 @@ INTERFACE_EXPORT = (() => {
         getValueByKey,
         getHan,
         getFee,
+        getUnitFee,
         generateHardwareId,
       },
       Element,
@@ -389,15 +390,15 @@ INTERFACE_EXPORT = (() => {
         { name: 'Dw', value: node.data.unit }, // 单位
         { name: 'Sl', value: node.data.quantity, type: TYPE.DECIMAL }, // 工程量
         { name: 'Sl2', value: '0', type: TYPE.DECIMAL }, // 工程量2
-        { name: 'Rgf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'marketLabour.tenderTotalFee'), type: TYPE.DECIMAL }, // 人工费
-        { name: 'Clf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'marketMaterial.tenderTotalFee'), type: TYPE.DECIMAL }, // 材料费
-        { name: 'Jxf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'marketMachine.tenderTotalFee'), type: TYPE.DECIMAL }, // 机械费
-        { name: 'Sbf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'marketEquipment.tenderTotalFee'), type: TYPE.DECIMAL }, // 设备费
-        { name: 'Csf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'measure.tenderTotalFee'), type: TYPE.DECIMAL }, // 措施费
-        { name: 'Glf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'manage.tenderTotalFee'), type: TYPE.DECIMAL }, // 企业管理费
-        { name: 'Gf', value: isBidInvitation ? '0' : getFee(node.data.fees, 'force.tenderTotalFee'), type: TYPE.DECIMAL }, // 规费
-        { name: 'Lr', value: isBidInvitation ? '0' : getFee(node.data.fees, 'profit.tenderTotalFee'), type: TYPE.DECIMAL }, // 利润
-        { name: 'Sj', value: isBidInvitation ? '0' : getFee(node.data.fees, 'tax.tenderTotalFee'), type: TYPE.DECIMAL }, // 税金
+        { name: 'Rgf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'marketLabour.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 人工费
+        { name: 'Clf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'marketMaterial.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 材料费
+        { name: 'Jxf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'marketMachine.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 机械费
+        { name: 'Sbf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'marketEquipment.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 设备费
+        { name: 'Csf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'measure.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 措施费
+        { name: 'Glf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'manage.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 企业管理费
+        { name: 'Gf', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'force.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 规费
+        { name: 'Lr', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'profit.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 利润
+        { name: 'Sj', value: isBidInvitation ? '0' : getUnitFee(getFee(node.data.fees, 'tax.tenderTotalFee'),node.data.quantity,2), type: TYPE.DECIMAL }, // 税金
         { name: 'Zhdj', value: isBidInvitation ? '0' : getFee(node.data.fees, 'common.tenderUnitFee'), type: TYPE.DECIMAL }, // 单价
         { name: 'Zhhj', value: isBidInvitation ? '0' : orgFee, type: TYPE.DECIMAL }, // 合价
         { name: 'Zgj', value: isBidInvitation ? '0' : getFee(node.data.fees, 'estimate.tenderTotalFee'), type: TYPE.DECIMAL }, // 暂估价
@@ -431,17 +432,17 @@ INTERFACE_EXPORT = (() => {
         { name: 'Mc', value: ration.name }, // 名称
         { name: 'Dw', value: ration.unit }, // 单位
         { name: 'Sl', value: ration.tenderQuantity, type: TYPE.DECIMAL }, // 工程量
-        { name: 'Dj', value: getFee(ration.fees, 'common.tenderUnitFee'), type: TYPE.DECIMAL }, // 单价
-        { name: 'Hj', value: getFee(ration.fees, 'common.tenderTotalFee'), type: TYPE.DECIMAL }, // 合价
-        { name: 'Rgf', value: getFee(ration.fees, 'marketLabour.tenderTotalFee'), type: TYPE.DECIMAL }, // 人工费
-        { name: 'Clf', value: getFee(ration.fees, 'marketMaterial.tenderTotalFee'), type: TYPE.DECIMAL }, // 材料费
-        { name: 'Jxf', value: getFee(ration.fees, 'marketMachine.tenderTotalFee'), type: TYPE.DECIMAL }, // 机械费
-        { name: 'Sbf', value: getFee(ration.fees, 'marketEquipment.tenderTotalFee'), type: TYPE.DECIMAL }, // 设备费
-        { name: 'Csf', value: getFee(ration.fees, 'measure.tenderTotalFee'), type: TYPE.DECIMAL }, // 措施费
-        { name: 'Glf', value: getFee(ration.fees, 'manage.tenderTotalFee'), type: TYPE.DECIMAL }, // 企业管理费
-        { name: 'Gf', value: getFee(ration.fees, 'force.tenderTotalFee'), type: TYPE.DECIMAL }, // 规费
-        { name: 'Lr', value: getFee(ration.fees, 'profit.tenderTotalFee'), type: TYPE.DECIMAL }, // 利润
-        { name: 'Sj', value: getFee(ration.fees, 'tax.tenderTotalFee'), type: TYPE.DECIMAL }, // 税金
+        { name: 'Dj', value: getUnitFee(getFee(ration.fees, 'common.tenderUnitFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 单价
+        { name: 'Hj', value: getUnitFee(getFee(ration.fees, 'common.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 合价
+        { name: 'Rgf', value: getUnitFee(getFee(ration.fees, 'marketLabour.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 人工费
+        { name: 'Clf', value: getUnitFee(getFee(ration.fees, 'marketMaterial.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 材料费
+        { name: 'Jxf', value: getUnitFee(getFee(ration.fees, 'marketMachine.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 机械费
+        { name: 'Sbf', value: getUnitFee(getFee(ration.fees, 'marketEquipment.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 设备费
+        { name: 'Csf', value: getUnitFee(getFee(ration.fees, 'measure.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 措施费
+        { name: 'Glf', value: getUnitFee(getFee(ration.fees, 'manage.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 企业管理费
+        { name: 'Gf', value: getUnitFee(getFee(ration.fees, 'force.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 规费
+        { name: 'Lr', value: getUnitFee(getFee(ration.fees, 'profit.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 利润
+        { name: 'Sj', value: getUnitFee(getFee(ration.fees, 'tax.tenderTotalFee'),ration.tenderQuantity,2), type: TYPE.DECIMAL }, // 税金
         { name: 'Delb', value: type, type: TYPE.INT }, // 取定额/量价/设备的类别。(1=普通定额,2=人工,3=材料,4=机械,5=设备)
         { name: 'Iszd', value: 'false', type: TYPE.BOOL }, // 暂时,全部取fals
       ];
@@ -474,8 +475,8 @@ INTERFACE_EXPORT = (() => {
         { name: 'Rcjhl', value: item.contain, type: TYPE.DECIMAL }, // 含量:取叶子清单下所有的人材机的含量,=各定额下的人材机总消耗量之和,再除以清单工程量
         { name: 'Rcjhj', value: item.totalPrice, type: TYPE.DECIMAL }, // 合价:人材机含量*人材机预算价
         { name: 'Zgjbz', value: item.isEvaluate, type: TYPE.BOOL }, // 是否暂估,根据资源ID,读取工料机汇总界面对应的“是否暂估”
-        { name: 'Zcbz', value: item.isMainMaterial, type: TYPE.BOOL }, // 主材标记,公路上无此概念,默认输出=fales
-        { name: 'Zyclbz', value:  'false', type: TYPE.BOOL }, // 根据资源ID,读取工料机汇总界面对应的“主要材料”
+        { name: 'Zcbz', value: 'false', type: TYPE.BOOL }, // 主材标记,公路上无此概念,默认输出=fales
+        { name: 'Zyclbz', value:  item.isMainMaterial, type: TYPE.BOOL }, // 根据资源ID,读取工料机汇总界面对应的“主要材料”
       ]
       Element.call(this, 'QdxrcjhlMx', attrs);
     }
@@ -562,9 +563,9 @@ INTERFACE_EXPORT = (() => {
         { name: 'Gycs', value: '' }, // 厂商
         { name: 'Rcjlb', value: rootType, type: TYPE.INT }, // 人材机类型 1=人工;2=材料;3=机械
         { name: 'Jgbz', value: 'false', type: TYPE.BOOL }, // 供材方
-        { name: 'Zyclbz', value:  'false' , type: TYPE.BOOL }, // 主要材料
+        { name: 'Zyclbz', value:  !!glj.is_main_material, type: TYPE.BOOL }, // 主要材料
         { name: 'Zgjbz', value: !!glj.is_evaluate, type: TYPE.BOOL }, // 是否暂估
-        { name: 'Zcbz', value: !!glj.is_main_material, type: TYPE.BOOL }, // 主材标记
+        { name: 'Zcbz', value: 'false' , type: TYPE.BOOL }, // 主材标记
       ];
       console.log(!!glj.is_main_material);
       Element.call(this, 'RcjhzMx', attrs);
@@ -720,7 +721,7 @@ INTERFACE_EXPORT = (() => {
           const subIsRations = node.children.length && !node.source.children.length;
           if (subIsRations) {
             qdmx.children.push(...setupRations(node.children));
-            qdmx.children.push(...setupBillsContain(node.data));
+            qdmx.children.push(...setupBillsContain(node.data,node.children));
           } else {
             qdmx.children.push(...setupSubBills(node.children, allNodes));
           }
@@ -742,6 +743,7 @@ INTERFACE_EXPORT = (() => {
 
       return qdxm;
     }
+    
 
     // 组装定额、定额人材机数据
     function setupRations(rationNodes) {
@@ -766,10 +768,14 @@ INTERFACE_EXPORT = (() => {
     }
 
     // 组装清单人材机含量数据
-    function setupBillsContain(bills) {
+    function setupBillsContain(bills,rationNodes) {
       if (isBidInvitation) {
         return [];
       }
+      const rationIDMap = {};
+      for(const node of rationNodes){
+        rationIDMap[node.data.ID] = node.data;
+      }
       // 读取清单下的人材机,先将各定额下的人材机汇总,相同的合并(相同的项目人材机ID)
       const gljList = curDetail.ration_glj.datas.filter(glj => glj.billsItemID === bills.ID);
       if (!gljList) {
@@ -781,13 +787,14 @@ INTERFACE_EXPORT = (() => {
           const projectGLJ = projectGLJMap[glj.projectGLJID];
           map[glj.projectGLJID] = {
             rcjID: projectGLJIDToRcjID[glj.projectGLJID],
-            totalQuantity: glj.tenderQuantity,
+            totalQuantity: !!rationIDMap[glj.rationID]?gljOprObj.getTotalQuantity(glj,rationIDMap[glj.rationID]):0 ,
             price: projectGLJ.priceInfo.tenderPrice,
             isEvaluate: !!projectGLJ.is_evaluate,
             isMainMaterial: !!projectGLJ.is_main_material
           };
         } else {
-          map[glj.projectGLJID].totalQuantity = scMathUtil.roundTo(map[glj.projectGLJID].totalQuantity + glj.tenderQuantity, -6);
+          const subQuantity = !!rationIDMap[glj.rationID]?gljOprObj.getTotalQuantity(glj,rationIDMap[glj.rationID]):0;
+          map[glj.projectGLJID].totalQuantity = scMathUtil.roundTo(map[glj.projectGLJID].totalQuantity + subQuantity, -6);
         }
       });
       const containItems = Object

+ 10 - 0
web/building_saas/standard_interface/export/base.js

@@ -252,6 +252,15 @@ const INTERFACE_EXPORT_BASE = (() => {
     }
     return fee[fields[1]] || 0;
   }
+
+  //取单价等
+  function getUnitFee(fee,quantity,decimal){
+    if(!!quantity && quantity!==0){
+      return scMathUtil.roundForObj(fee/parseFloat(quantity),decimal)
+    }
+    return fee
+  }
+
   // 获取节点的汇总价格
   function getAggregateFee(nodes) {
     const total = nodes.reduce((acc, node) => {
@@ -687,6 +696,7 @@ const INTERFACE_EXPORT_BASE = (() => {
     hasValue,
     setTimeoutSync,
     getFee,
+    getUnitFee,
     getAggregateFee,
     getFeeByFlag,
     getPlainAttrs,