فهرست منبع

feat:安徽马鞍山导入相关(未完成)

vian 5 سال پیش
والد
کامیت
935fe5b2c8

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

@@ -554,7 +554,7 @@ INTERFACE_EXPORT = (() => {
         if (!midLayerMap[midLayerKey]) {
           jingJiBiao.children.push(midLayerMap[midLayerKey] = new Dxgcxx(midLayerCode, midLayerName));
         }
-        midLayerMap[midLayerKey].children.push(setupTender(tenderData, information, feature));
+        midLayerMap[midLayerKey].children.push(setupTender(tenderData, feature));
       }
       // 校验信息
       const [cpuID, diskID, macID] = generateHardwareId().split(';');
@@ -578,7 +578,7 @@ INTERFACE_EXPORT = (() => {
     const projectGLJMap = {}; // 项目人材机与项目人材机数据映射
 
     // 组装单位工程数据
-    function setupTender(tenderData, information, feature) {
+    function setupTender(tenderData, feature) {
       curDetail = tenderDetailMap[tenderData.ID];
       curDetail.projectGLJ.datas.gljList.forEach((glj, index) => {
         projectGLJIDToRcjID[glj.id] = index + 1;
@@ -586,7 +586,7 @@ INTERFACE_EXPORT = (() => {
       });
       const dwgcxx = new Dwgcxx(tenderData.name, feature);
       dwgcxx.children.push(
-        setupFeeRate(curDetail.FeeRate, information),
+        setupFeeRate(curDetail.FeeRate, feature),
         setupBills(curDetail.mainTree),
         ...setupGLJList(curDetail)
       );
@@ -594,7 +594,7 @@ INTERFACE_EXPORT = (() => {
     }
 
     // 组装费率数据
-    function setupFeeRate(feeRateDetail, information) {
+    function setupFeeRate(feeRateDetail, feature) {
       const qfxx = new Qfxx();
       const jjflb = new JjFlb();
       // 费率界面左侧底层数据
@@ -610,7 +610,7 @@ INTERFACE_EXPORT = (() => {
       // 除右侧数据外,还应拼凑工程所在地、费率标准的数据。
       const jjflx = new JjFlx();
       // 工程所在地取建设项目-基本信息中的“工程所在地”;
-      const locationItem = { name: '工程所在地', value: getValueByKey(information, 'projLocation') };
+      const locationItem = { name: '工程所在地', value: getValueByKey(feature, 'projLocation') };
       jjflx.children.push(new JjFlxMx(locationItem));
       // 费率标准取,费率-重选标准中当前用的费率标准名称。
       const feeRateStandardItem = { name: '费率标准', value: feeRateDetail.datas.libName };

+ 100 - 1
web/building_saas/standard_interface/import/anhui_maanshan.js

@@ -58,18 +58,117 @@ INTERFACE_IMPORT = (() => {
 
     // 提取工程特征信息,xml中提取出来的工程特征,最终会与模板工程特征进行合并处理。(接口内不需要处理合并)
     function setupFeature(projectSrc, tenderSrc) {
-      return [
+      const feature = [
         { key: 'singleProjNo', value: getValue(projectSrc, ['Dxgcxx', '_Dxgcbh']) },
         { key: 'singleProjName', value: getValue(projectSrc, ['Dxgcxx', '_Dxgcmc']) },
         { key: 'unitProjNo', value: getValue(tenderSrc, ['_Dwgcbh']) },
       ];
+      // 工程所在地在费率项中
+      const feeRateItems = array(tenderSrc, ['Qfxx', 'JjFlx', 'JjFlxMx']);
+      const locationItem = feeRateItems.find(item => getValue(item, ['_Mc']) === '工程所在地');
+      if (locationItem) {
+        feature.push(locationItem);
+      }
+      return feature;
+    }
+
+    // 费率值映射表,“接口中可有效识别的费率值类型值,此接口是Bm”与“软件中对应费率标准的名称”映射。
+    const feeRateValueMap = {
+      'DJF': '冬季施工增加费',
+      'YJF': '雨季施工增加费',
+      'YEF': '夜间施工增加费',
+      'GYF': '高原地区施工增加费',
+      'FSF': '风沙地区施工增加费',
+      'YHF': '沿海地区施工增加费',
+      'XCF': '行车干扰施工增加费',
+      'ZYF': '工地转移费',
+      'SFF': '施工辅助费',
+      'JBF': '基本费用',
+      'YFF': '主副食运费补贴',
+      'TQF': '职工探亲路费',
+      'QNF': '职工取暖补贴',
+      'CWF': '财务费用',
+      'YLF': '养老保险费',
+      'SYF': '失业保险费',
+      'YBF': '医疗保险费',
+      'GSF': '工伤保险费',
+      'ZFF': '住房公积金',
+      'LR': '利润',
+      'SJ': '税金',
+    };
+
+    // 费率工程类型映射表, “接口中可有效识别的工程类型值,此接口是Qflb”与“袁建中对应费率标准的工程类型名称”映射
+    const feeRateParentTypeMap = {
+      1: '土方',
+      3: '石方',
+      2: '运输',
+      4: '路面',
+      11: '隧道',
+      5: '构造物Ⅰ',
+      16: '构造物Ⅰ(不计冬)',
+      6: '构造物Ⅱ',
+      9: '构造物Ⅲ(桥梁)',
+      8: '构造物Ⅲ(除桥以外不计雨夜)',
+      10: '技术复杂大桥',
+      12: '钢材及钢结构(桥梁)',
+      13: '钢材及钢结构(除桥以外不计夜)',
+      17: '费率为0',
+      4: '路面(不计雨)',
+      16: '构造物Ⅰ(不计雨)',
+      8: '构造物Ⅲ(除桥以外)',
+      13: '钢材及钢结构(除桥以外)',
+      15: '设备',
+      14: '量价',
+    };
+
+    const feeRateParamMap = {
+      djsg: '冬季施工',
+      yjsg: '雨季施工',
+      yjsg: '夜间施工',
+      gysg: '高原施工',
+      fssg: '风沙施工',
+      yhsg: '沿海施工',
+      hcgr: '行车干扰',
+      gdzy: '工地转移(km)',
+      sgfz: '施工辅助',
+      jbfy: '基本费用',
+      zhlc: '综合里程(km)',
+      zgtq: '职工探亲',
+      zgqn: '职工取暖',
+      cwfy: '财务费用',
+      ylbx: '养老保险(%)',
+      sybx: '失业保险(%)',
+      ylbx: '医疗保险(%)',
+      gsbx: '工伤保险(%)',
+      zfgj: '住房公积金(%)',
+    };
+
+    // 提取费率数据(费率值、费率参数),最终会与标准费率数据进行合并。(接口内不需要处理合并)
+    function setupFeeRate(feeRateSrc) {
+      // 提取费率值数据
+      const valuaItems = arrayValue(feeRateSrc, ['JjFlb', 'JjFlbMx'])
+        .map(item => ({
+          parentType: feeRateParentTypeMap[getValue(item, ['_Qflb'])] || '',
+          type: feeRateValueMap[getValue(item, ['_Bm'])] || '',
+          value: getValue(item, ['_Fl'])
+        }));
+      // 提取费率参数数据
+      const paramItems = arrayValue(feeRateSrc, ['JjFlx', '_JjFlxMx'])
+        .map(item => ({
+          
+        }));
+      return {
+
+      };
     }
 
     // 提取单位工程数据
     function setupTender(projectSrc, tenderSrc) {
+      const feeRateSrc = getValue(tenderSrc, ['Qfxx']);
       return {
         name: getValue(tenderSrc, ['_Dwgcmc']),
         feature: setupFeature(projectSrc, tenderSrc),
+        feeRate: setupFeeRate(feeRateSrc),
       }
     }
 

+ 2 - 0
web/building_saas/standard_interface/import/base.js

@@ -39,6 +39,8 @@ const INTERFACE_EXPORT_BASE = (() => {
 
   /*
    * 根据字段数组获得所要字段的值 eg: 要获取标段下的单项工程: ['标段', '单项工程'];
+   * 属性需要加前缀:“_”
+   * 节点的不需要加前缀
    * @param {Object}source 源数据
    *        {Array}fields 字段数组
    * @return {String}