蔡德晨 5 éve
szülő
commit
08ac8235b1

+ 16 - 2
src/main/java/com/jeeplus/common/utils/sg/ExcelUtil.java

@@ -4,6 +4,7 @@ import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee;
 
 import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.List;
 
 public class ExcelUtil {
@@ -173,8 +174,21 @@ public class ExcelUtil {
         return d;
     }
 
-
-
+    public static String getIndex(ImportExcel importExcel,String st,int column1){
+        int lastRow = importExcel.getLastDataRowNum();
+        String str = "";
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,column1);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.contains(st)){
+                str = type.substring(0,1)+".";
+                break;
+            }
+        }
+        return str;
+    }
 
 
 

+ 14 - 14
src/main/java/com/jeeplus/modules/sg/substation/service/SubstationService.java

@@ -141,16 +141,16 @@ public class SubstationService {
             //建筑部分基础数据
             JkxlDetailFee jz = SubstationInfo.getTolalInfo(jzqd,jzhz,"21000000",SubstationInfo.JZMX_BJZ);  //建筑合计
             JkxlDetailFee jzsc = SubstationInfo.getBashInfo(jzqd,jzhz,"21100000",SubstationInfo.JZMX_ZYGC);  //主要生产工程
-            List<JkxlDetailFee> scjz = SubstationInfo.getBashInfoss(jzqd,jzhz,SubstationInfo.ZYSCWBS,SubstationInfo.ZYSCJZSTR); //主要生产建筑
+            List<JkxlDetailFee> scjz = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.ZYSCWBS,SubstationInfo.ZYSCJZSTR,"1"); //主要生产建筑
             List<JkxlDetailFee> pdzz = SubstationInfo.getPdzzjz(jzqd,jzhz);    //配电装置
-            List<JkxlDetailFee> gsxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.GSXTWBS,SubstationInfo.GSXTSTR); //供水系统建筑
-            List<JkxlDetailFee> xfxt  = SubstationInfo.getBashInfoxf(jzqd,jzhz,SubstationInfo.XFXTWBS,SubstationInfo.XFXTSTR); //消防系统
+            List<JkxlDetailFee> gsxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.GSXTWBS,SubstationInfo.GSXTSTR,"1"); //供水系统建筑
+            List<JkxlDetailFee> xfxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.XFXTWBS,SubstationInfo.XFXTSTR,"1"); //消防系统
             JkxlDetailFee jzfz = SubstationInfo.getBashInfo(jzqd,jzhz,"21200000",SubstationInfo.JZMX_FZSCGC);  //辅助生产工程
-            List<JkxlDetailFee> fzscjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.FZSCWBS,SubstationInfo.FZSCSTR); //辅助生产建筑
-            List<JkxlDetailFee> zqxjz  = SubstationInfo.getBashInfozq(jzqd,jzhz,SubstationInfo.ZQXWBS,SubstationInfo.ZQXSTR); //站区性建筑
-            List<JkxlDetailFee> tsgzw  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.TXGJWWBS,SubstationInfo.TXGJWSTR); //特殊构筑物
+            List<JkxlDetailFee> fzscjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.FZSCWBS,SubstationInfo.FZSCSTR,"2"); //辅助生产建筑
+            List<JkxlDetailFee> zqxjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.ZQXWBS,SubstationInfo.ZQXSTR,"2"); //站区性建筑
+            List<JkxlDetailFee> tsgzw  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.TXGJWWBS,SubstationInfo.TXGJWSTR,"2"); //特殊构筑物
             JkxlDetailFee zqlh = SubstationInfo.getBashInfo(jzqd,jzhz,"21240000",SubstationInfo.JZMX_ZQLH);  //站区绿化
-            List<JkxlDetailFee> dxgc  = SubstationInfo.getBashInfozqjz(jzqd,jzhz,SubstationInfo.YDZYGWBS,SubstationInfo.YDZYGSTR); //与站址有关的单项工程
+            List<JkxlDetailFee> dxgc  = SubstationInfo.getDxInfo(jzqd,jzhz,SubstationInfo.YDZYGWBS,SubstationInfo.YDZYGSTR); //与站址有关的单项工程
             List<JkxlDetailFee> jzTotal = new ArrayList<>();
             jzTotal.add(jz);
             jzTotal.add(jzsc);
@@ -455,16 +455,16 @@ public class SubstationService {
             //建筑部分基础数据
             JkxlDetailFee jz = SubstationInfo.getTolalInfo(jzqd,jzhz,"21000000",SubstationInfo.JZMX_BJZ);  //建筑合计
             JkxlDetailFee jzsc = SubstationInfo.getBashInfo(jzqd,jzhz,"21100000",SubstationInfo.JZMX_ZYGC);  //主要生产工程
-            List<JkxlDetailFee> scjz = SubstationInfo.getBashInfoss(jzqd,jzhz,SubstationInfo.ZYSCWBS,SubstationInfo.ZYSCJZSTR); //主要生产建筑
+            List<JkxlDetailFee> scjz = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.ZYSCWBS,SubstationInfo.ZYSCJZSTR,"1"); //主要生产建筑
             List<JkxlDetailFee> pdzz = SubstationInfo.getPdzzjz(jzqd,jzhz);    //配电装置
-            List<JkxlDetailFee> gsxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.GSXTWBS,SubstationInfo.GSXTSTR); //供水系统建筑
-            List<JkxlDetailFee> xfxt  = SubstationInfo.getBashInfoxf(jzqd,jzhz,SubstationInfo.XFXTWBS,SubstationInfo.XFXTSTR); //消防系统
+            List<JkxlDetailFee> gsxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.GSXTWBS,SubstationInfo.GSXTSTR,"1"); //供水系统建筑
+            List<JkxlDetailFee> xfxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.XFXTWBS,SubstationInfo.XFXTSTR,"1"); //消防系统
             JkxlDetailFee jzfz = SubstationInfo.getBashInfo(jzqd,jzhz,"21200000",SubstationInfo.JZMX_FZSCGC);  //辅助生产工程
-            List<JkxlDetailFee> fzscjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.FZSCWBS,SubstationInfo.FZSCSTR); //辅助生产建筑
-            List<JkxlDetailFee> zqxjz  = SubstationInfo.getBashInfozq(jzqd,jzhz,SubstationInfo.ZQXWBS,SubstationInfo.ZQXSTR); //站区性建筑
-            List<JkxlDetailFee> tsgzw  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.TXGJWWBS,SubstationInfo.TXGJWSTR); //特殊构筑物
+            List<JkxlDetailFee> fzscjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.FZSCWBS,SubstationInfo.FZSCSTR,"2"); //辅助生产建筑
+            List<JkxlDetailFee> zqxjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.ZQXWBS,SubstationInfo.ZQXSTR,"2"); //站区性建筑
+            List<JkxlDetailFee> tsgzw  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.TXGJWWBS,SubstationInfo.TXGJWSTR,"2"); //特殊构筑物
             JkxlDetailFee zqlh = SubstationInfo.getBashInfo(jzqd,jzhz,"21240000",SubstationInfo.JZMX_ZQLH);  //站区绿化
-            List<JkxlDetailFee> dxgc  = SubstationInfo.getBashInfozqjz(jzqd,jzhz,SubstationInfo.YDZYGWBS,SubstationInfo.YDZYGSTR); //与站址有关的单项工程
+            List<JkxlDetailFee> dxgc  = SubstationInfo.getDxInfo(jzqd,jzhz,SubstationInfo.YDZYGWBS,SubstationInfo.YDZYGSTR); //与站址有关的单项工程
             List<JkxlDetailFee> jzTotal = new ArrayList<>();
             jzTotal.add(jz);
             jzTotal.add(jzsc);

+ 221 - 150
src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

@@ -1,13 +1,12 @@
 package com.jeeplus.modules.sg.substation.util;
 
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.utils.sg.ExcelUtil;
 import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee;
 
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.lang.reflect.Array;
+import java.util.*;
 
 public class SubstationInfo {
     public static final String SHEET_JZHZB = "变电站建筑工程费用汇总表";
@@ -117,6 +116,7 @@ public class SubstationInfo {
     public static final String JZMX_XFSC= "消防水池";
     public static final String JZMX_XFSCBW= "消防水池标外";
 
+
     public static final String JZMX_FZSCGC= "辅助生产工程";
     public static final String JZMX_FZSCJZ= "辅助生产建筑";
     public static final String JZMX_ZHL= "综合楼";
@@ -293,6 +293,11 @@ public class SubstationInfo {
     public static String[] DETWBS = {"21121100","21121200","21121300","21121400","21121500","2112B100","2112B200","2112B300","2112B400","2112B500","2112C100","2112C200"
              ,"2112C300","2112C400","2112G100","2112G200","2112H100","2112H200"};
 
+    public static String[] PDZZALLSTR = {JZMX_ZBYQXT,JZMX_GYDKQXT,JZMX_CLBCXT,JZMX_DYDRQ,JZMX_DYDKQ,JZMX_JZWGBC,JZMX_ZYBYQXT,JZMX_BLZT,JZMX_DLGD,JZMX_LGJDP,JZMX_PDZZQY,
+            JZMX_1000JGJC,JZMX_1000SBZJ,JZMX_750JGJC,JZMX_750SBZJ,JZMX_500JGJC,JZMX_500SBZJ,JZMX_330JGJC,JZMX_330SBZJ,JZMX_220JGJC,JZMX_220SBZJ,
+            JZMX_110JGJC,JZMX_110SBZJ,JZMX_66JGJC,JZMX_66SBZJ,JZMX_35JGJC,JZMX_35SBZJ,JZMX_10JGJC,JZMX_10SBZJ,JZMX_GZJJJC, JZMX_ZBYQJC,JZMX_ZBYQYK,JZMX_FHQ,JZMX_SGYC,JZMX_JGSBJC
+    };
+
 
 
 
@@ -551,11 +556,9 @@ public class SubstationInfo {
     public static JkxlDetailFee getBashInfo(ImportExcel importExcel,ImportExcel importExcel1,String wbs,String str){
         double[] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
         double d = ExcelUtil.getDouble(importExcel1,str,1,3);  //直接工程费
-//        double e = ExcelUtil.getDouble(importExcel1,str,1,2);  //合计金额
         JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
         jkxlDetailFee.setWbsCode(wbs);
         jkxlDetailFee.setOriginalTotalCost(doubles[0]);
-//        jkxlDetailFee.setOriginalTotalCost(e);
         jkxlDetailFee.setOriginalRgCost(doubles[1]);
         jkxlDetailFee.setOriginalFbrCost(doubles[3]);
         jkxlDetailFee.setOriginalCbrCost(doubles[2]);
@@ -574,10 +577,8 @@ public class SubstationInfo {
         JkxlDetailFee jkxlDetailFee = null;
         for(int i=0;i<str.length;i++){
             double d = ExcelUtil.getDouble(importExcel1,str[i],1,3);  //直接工程费
-//            double e = ExcelUtil.getDouble(importExcel1,str[i],1,3);  //合计
             jkxlDetailFee = new JkxlDetailFee();
             jkxlDetailFee.setWbsCode(wbs[i]);
-//            jkxlDetailFee.setOriginalTotalCost(e);
             jkxlDetailFee.setOriginalTotalCost(doubles[i][0]);
             jkxlDetailFee.setZjgcFee(d);
             jkxlDetailFee.setOriginalRgCost(doubles[i][1]);
@@ -592,10 +593,20 @@ public class SubstationInfo {
     /**
      *获得基础数据,工程费分摊
      */
-    public static List<JkxlDetailFee> getBashInfos(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
+    public static List<JkxlDetailFee> getBashInfos(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str ,String types){
          double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
          double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
-         double e = ExcelUtil.getDouble(importExcel1,str[0],1,2);  //合计
+         String index = ExcelUtil.getIndex(importExcel,str[0],2);    //获取角标
+         if(StringUtils.isNotBlank(index)){
+             double[][] doubles1 = getUnidentification(importExcel,index,str,types);
+             for(int k=0;k<doubles1.length;k++){
+                 doubles[1][0] = doubles[1][0] + doubles1[k][0];
+                 doubles[1][1] = doubles[1][1] + doubles1[k][1];
+                 doubles[1][2] = doubles[1][2] + doubles1[k][2];
+                 doubles[1][3] = doubles[1][3] + doubles1[k][3];
+                 doubles[1][4] = doubles[1][4] + doubles1[k][4];
+             }
+         }
          double total = doubles[0][0];
          int len = str.length;
          double[] zjgc = new double[len];
@@ -607,13 +618,11 @@ public class SubstationInfo {
              }
              zjgc[i] = d*rate;
          }
-//         doubles[0][0] = e;
          List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
          JkxlDetailFee jkxlDetailFee = null;
          for(int j=0;j<str.length;j++){
              jkxlDetailFee = new JkxlDetailFee();
              jkxlDetailFee.setOriginalTotalCost(doubles[j][0]);
-//             jkxlDetailFee.setOriginalTotalCost(e);
              jkxlDetailFee.setZjgcFee(zjgc[j]);
              jkxlDetailFee.setOriginalRgCost(doubles[j][1]);
              jkxlDetailFee.setOriginalFbrCost(doubles[j][3]);
@@ -625,6 +634,39 @@ public class SubstationInfo {
          return jkxlDetailFees;
     }
 
+    /**
+     *获得基础数据,工程费分摊
+     */
+    public static List<JkxlDetailFee> getBashInfos(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
+        double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
+        double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
+        double total = doubles[0][0];
+        int len = str.length;
+        double[] zjgc = new double[len];
+        zjgc[0] = d;
+        for(int i=1;i<len;i++){
+            double rate = 0.00;
+            if(total != 0.00){
+                rate = doubles[i][0]/total;
+            }
+            zjgc[i] = d*rate;
+        }
+        List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
+        JkxlDetailFee jkxlDetailFee = null;
+        for(int j=0;j<str.length;j++){
+            jkxlDetailFee = new JkxlDetailFee();
+            jkxlDetailFee.setOriginalTotalCost(doubles[j][0]);
+            jkxlDetailFee.setZjgcFee(zjgc[j]);
+            jkxlDetailFee.setOriginalRgCost(doubles[j][1]);
+            jkxlDetailFee.setOriginalFbrCost(doubles[j][3]);
+            jkxlDetailFee.setOriginalCbrCost(doubles[j][2]);
+            jkxlDetailFee.setOriginalJxCost(doubles[j][4]);
+            jkxlDetailFee.setWbsCode(wbs[j]);
+            jkxlDetailFees.add(jkxlDetailFee);
+        }
+        return jkxlDetailFees;
+    }
+
     public static List<JkxlDetailFee> getBashInfoss(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
         double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
         double[][] doubless = ExcelUtil.getBashArray(importExcel,JZMX_OTH ,2,new int[]{12,13, 14, 15, 17});
@@ -646,13 +688,11 @@ public class SubstationInfo {
             }
             zjgc[i] = d*rate;
         }
-//         doubles[0][0] = e;
         List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
         JkxlDetailFee jkxlDetailFee = null;
         for(int j=0;j<str.length;j++){
             jkxlDetailFee = new JkxlDetailFee();
             jkxlDetailFee.setOriginalTotalCost(doubles[j][0]);
-//             jkxlDetailFee.setOriginalTotalCost(e);
             jkxlDetailFee.setZjgcFee(zjgc[j]);
             jkxlDetailFee.setOriginalRgCost(doubles[j][1]);
             jkxlDetailFee.setOriginalFbrCost(doubles[j][3]);
@@ -669,7 +709,6 @@ public class SubstationInfo {
         double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
         double[] doubles1 = ExcelUtil.getBashArray(importExcel,JZMX_XFSBFBW ,2,new int[]{12,13, 14, 15, 17});
         double[] doubles2 = ExcelUtil.getBashArray(importExcel,JZMX_XFSBFSD ,2,new int[]{12,13, 14, 15, 17});
-//        double[] doubles3 = ExcelUtil.getBashArray(importExcel,JZMX_ZQXFGDBW,2,new int[]{12,13, 14, 15, 17});
         double[] doubles4 = ExcelUtil.getBashArray(importExcel,JZMX_XFQCBW,2,new int[]{12,13, 14, 15, 17});
         double[] doubles5 = ExcelUtil.getBashArray(importExcel,JZMX_XFSCBW ,2,new int[]{12,13, 14, 15, 17});
         double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
@@ -679,21 +718,6 @@ public class SubstationInfo {
         doubles[1][2] =  doubles[1][2]+ doubles1[2]+ doubles2[2]+ doubles4[2]+ doubles5[2];
         doubles[1][3] =  doubles[1][3]+ doubles1[3]+ doubles2[3]+ doubles4[3]+ doubles5[3];
         doubles[1][4] =  doubles[1][4]+ doubles1[4]+ doubles2[4]+ doubles4[4]+ doubles5[4];
-//        doubles[3][0] =  doubles[3][0]+ doubles3[0];
-//        doubles[3][1] =  doubles[3][1]+ doubles3[1];
-//        doubles[3][2] =  doubles[3][2]+ doubles3[2];
-//        doubles[3][3] =  doubles[3][3]+ doubles3[3];
-//        doubles[3][4] =  doubles[3][4]+ doubles3[4];
-//        doubles[4][0] =  doubles[4][0]+ doubles4[0];
-//        doubles[4][1] =  doubles[4][1]+ doubles4[1];
-//        doubles[4][2] =  doubles[4][2]+ doubles4[2];
-//        doubles[4][3] =  doubles[4][3]+ doubles4[3];
-//        doubles[4][4] =  doubles[4][4]+ doubles4[4];
-//        doubles[6][0] =  doubles[6][0]+ doubles5[0];
-//        doubles[6][1] =  doubles[6][1]+ doubles5[1];
-//        doubles[6][2] =  doubles[6][2]+ doubles5[2];
-//        doubles[6][3] =  doubles[6][3]+ doubles5[3];
-//        doubles[6][4] =  doubles[6][4]+ doubles5[4];
 
         double total = doubles[0][0];
         int len = str.length;
@@ -837,14 +861,19 @@ public class SubstationInfo {
     public static List<JkxlDetailFee> getPdzzjz(ImportExcel importExcel,ImportExcel importExcel1){
         JkxlDetailFee total = getBashInfo(importExcel,importExcel1,"21120000",JZMX_PDZZJZ);//配电装置
         List<JkxlDetailFee> total1 = getBashInfo(importExcel,importExcel1,PDZZJZWBS,PDZZJZSTR);
-        double[] doubles = ExcelUtil.getBashArray(importExcel,JZMX_DLGDBW ,2,new int[]{12,13, 14, 15, 17});
-        for(JkxlDetailFee jkxlDetailFee2 : total1){
-            if(jkxlDetailFee2.getWbsCode().equals("2112K000")){
-                jkxlDetailFee2.setOriginalTotalCost(jkxlDetailFee2.getOriginalTotalCost()+doubles[0]);
-                jkxlDetailFee2.setOriginalRgCost(jkxlDetailFee2.getOriginalRgCost()+doubles[1]);
-                jkxlDetailFee2.setOriginalFbrCost(jkxlDetailFee2.getOriginalFbrCost()+doubles[2]);
-                jkxlDetailFee2.setOriginalCbrCost(jkxlDetailFee2.getOriginalCbrCost()+doubles[3]);
-                jkxlDetailFee2.setOriginalJxCost(jkxlDetailFee2.getOriginalJxCost()+doubles[4]);
+        String index1 = ExcelUtil.getIndex(importExcel,JZMX_PDZZJZ,2);    //获取角标
+        if(StringUtils.isNotBlank(index1)){
+            double[][] doubles1 = getUnidentification(importExcel,index1,PDZZALLSTR,"1");
+            for(JkxlDetailFee jkxlDetailFee2 : total1){
+                if(jkxlDetailFee2.getWbsCode().equals("2112K000")){
+                    for(int k=0;k<doubles1.length;k++) {
+                        jkxlDetailFee2.setOriginalTotalCost(jkxlDetailFee2.getOriginalTotalCost() + doubles1[k][0]);
+                        jkxlDetailFee2.setOriginalRgCost(jkxlDetailFee2.getOriginalRgCost() + doubles1[k][1]);
+                        jkxlDetailFee2.setOriginalFbrCost(jkxlDetailFee2.getOriginalFbrCost() + doubles1[k][2]);
+                        jkxlDetailFee2.setOriginalCbrCost(jkxlDetailFee2.getOriginalCbrCost() + doubles1[k][3]);
+                        jkxlDetailFee2.setOriginalJxCost(jkxlDetailFee2.getOriginalJxCost() + doubles1[k][4]);
+                    }
+                }
             }
         }
         List<JkxlDetailFee> kvjg = getBashInfo(importExcel,importExcel1,KFJGSBWBS,KFJGSBSTR);//构架及设备基础无3级表头
@@ -1125,7 +1154,6 @@ public class SubstationInfo {
     public static List<JkxlDetailFee> getKzzl(ImportExcel importExcel,ImportExcel importExcel1){
         String[] str = KZZLSTR;
         String[] wbs = KZZLWBS;
-//        double[][] doubles = new double[5][];
         double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
         double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
         double total = doubles[0][0];
@@ -1283,124 +1311,167 @@ public class SubstationInfo {
     }
 
 
-
-
-
-   public static boolean getFlag(List<JkxlDetailFee> list){
-        for(JkxlDetailFee jkxlDetailFee:list){
-            if(jkxlDetailFee.getOriginalTotalCost()<jkxlDetailFee.getZjgcFee()){
-                return false;
+    public static double[][] getUnidentification(ImportExcel importExcel,String st,String[] strs,String types){
+        int startRow = 0;
+        int lastRow = importExcel.getLastDataRowNum();
+        if(types.equals("1")) {
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 2);
+                if (type.contains(JZMX_FZSCGC)) {
+                    lastRow = i + 1;
+                    break;
+                }
             }
-        }
-        return true;
-   }
-
-
-
-
-
-
-
-
-
-
-    /*
-     获取《工程项目竣工结算汇总表》匹配数据
-    */
-    public static Map<String,Object[]> getCompletionWorks(ImportExcel importExcel){
-        Map<String,Object[]> map  = new LinkedHashMap<String, Object[]>();
-        int lastDataRowNum =  importExcel.getLastDataRowNum();
-        String key="";
-        double val=0.0;
-        String text = "";
-        Object[] objects;
-        for (int i = 2; i < lastDataRowNum; i++) {
-            objects = new Object[2];
-            key =  importExcel.getValue(i+1,1);
-            if(key.contains(SubstationInfo.JS_SJ)){
-                key= SubstationInfo.JS_SJ;
+            if(lastRow == importExcel.getLastDataRowNum()){
+                for (int i = 0; i < lastRow; i++) {
+                    String type = importExcel.getValue(i + 1, 2);
+                    if (type.contains(JZMX_ZZDXGC)) {
+                        lastRow = i + 1;
+                        break;
+                    }
+                }
             }
-            switch (key){
-                case SubstationInfo.JS_FBFX:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_CBRF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_CSXM:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
+        }
+        if(types.equals("2")){
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 2);
+                if (type.contains(JZMX_FZSCGC)) {
+                    startRow = i + 1;
                     break;
-                case SubstationInfo.JS_QTXM:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
+                }
+            }
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 2);
+                if (type.contains(JZMX_ZZDXGC)) {
+                    lastRow = i + 1;
                     break;
-                case SubstationInfo.JS_GF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
+                }
+            }
+        }
+        if(types.equals("3")){
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 2);
+                if (type.contains(JZMX_ZZDXGC)) {
+                    startRow = i + 1;
                     break;
-                case SubstationInfo.JS_SJ:
+                }
+            }
+        }
+        int len1 = st.length();
+        List<String> list = new ArrayList();
+        for(int i=startRow;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,2);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.length()<len1){
+                continue;
+            }
+            String newtype = type.substring(0,len1);
+            ArrayList<String> strings = new ArrayList<>();
+            for(int k=0;k<strs.length;k++){
+               strings.add(strs[k].trim());
+            }
+            if(newtype.equals(st)){
+                    int in = type.indexOf(" ");
+                    String s = type.substring(in,type.length()).trim();
+                    boolean bol = strings.contains(s);
+                    if(strs[0].equals(JZMX_ZQXJZ) && in>3){
+                        bol=true;
+                    }
+                    if(strs[0].equals(JZMX_ZYSCJZ) && in==3 && (s.contains("继电器室") || s.contains("配电装置室"))){
+                        bol=true;
+                    }
+                    if(!bol){
+                        list.add(type);
+                    }
 
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_FBRF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_JGJS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_BZZS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_KJJG:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case SubstationInfo.JS_GCJS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
             }
         }
-        return  map;
+        double[][] d = new double[list.size()][5];
+        for(int j=0;j<list.size();j++){
+            String str = list.get(j);
+            d[j][0] = ExcelUtil.getDouble(importExcel,str,2,12);
+            d[j][1] = ExcelUtil.getDouble(importExcel,str,2,13);
+            d[j][2] = ExcelUtil.getDouble(importExcel,str,2,14);
+            d[j][3] = ExcelUtil.getDouble(importExcel,str,2,15);
+            d[j][4] = ExcelUtil.getDouble(importExcel,str,2,17);
+        }
+       return d;
+    }
+
+
+    public static List<JkxlDetailFee> getDxInfo(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
+        int startRow = 0;
+        int lastRow = importExcel.getLastDataRowNum();
+        List<String> list = new ArrayList();
+        for (int i = 0; i < lastRow; i++) {
+            String type = importExcel.getValue(i + 1, 2);
+            if (type.contains(JZMX_ZZDXGC)) {
+                startRow = i + 1;
+                break;
+            }
+        }
+        for(int i=startRow;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,2);
+            if(type.contains(" ")){
+                int in = type.indexOf(" ");
+                if(in == 1) {
+                    String s = type.substring(in, type.length()).trim();
+                    boolean b = Arrays.asList(str).contains(s);
+                    if(!b){
+                        list.add(type);
+                    }
+                }
+            }
+        }
+        double[][] d = new double[list.size()][5];
+        for(int j=0;j<list.size();j++){
+            String strs = list.get(j);
+            d[j][0] = ExcelUtil.getDouble(importExcel,strs,2,12);
+            d[j][1] = ExcelUtil.getDouble(importExcel,strs,2,13);
+            d[j][2] = ExcelUtil.getDouble(importExcel,strs,2,14);
+            d[j][3] = ExcelUtil.getDouble(importExcel,strs,2,15);
+            d[j][4] = ExcelUtil.getDouble(importExcel,strs,2,17);
+        }
+        double[] d2 = new double[list.size()];
+        for(int m=0;m<list.size();m++){
+            d2[m] = ExcelUtil.getDouble(importExcel1,list.get(m).substring(2,list.get(m).length()).trim(),1,3);
+        }
+        double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
+        for(int k=0;k<d.length;k++){
+            doubles[1][0] = doubles[1][0] + d[k][0];
+            doubles[1][1] = doubles[1][1] + d[k][1];
+            doubles[1][2] = doubles[1][2] + d[k][2];
+            doubles[1][3] = doubles[1][3] + d[k][3];
+            doubles[1][4] = doubles[1][4] + d[k][4];
+        }
+        List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
+        JkxlDetailFee jkxlDetailFee = null;
+        for(int i=0;i<str.length;i++){
+            double d1 = ExcelUtil.getDouble(importExcel1,str[i],1,3);  //直接工程费
+            jkxlDetailFee = new JkxlDetailFee();
+            jkxlDetailFee.setWbsCode(wbs[i]);
+            jkxlDetailFee.setOriginalTotalCost(doubles[i][0]);
+            jkxlDetailFee.setZjgcFee(d1);
+            jkxlDetailFee.setOriginalRgCost(doubles[i][1]);
+            jkxlDetailFee.setOriginalFbrCost(doubles[i][3]);
+            jkxlDetailFee.setOriginalCbrCost(doubles[i][2]);
+            jkxlDetailFee.setOriginalJxCost(doubles[i][4]);
+            jkxlDetailFees.add(jkxlDetailFee);
+        }
+        for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
+            if(jkxlDetailFee1.getWbsCode().equals("21310000")){
+                for(int n=0;n<d2.length;n++) {
+                    jkxlDetailFee1.setZjgcFee(jkxlDetailFee1.getZjgcFee() + d2[n]);
+                }
+                break;
+            }
+        }
+        return jkxlDetailFees;
     }
+
+
+
+
 }