蔡德晨 преди 5 години
родител
ревизия
19f9fc14f9
променени са 2 файла, в които са добавени 48 реда и са изтрити 215 реда
  1. 8 0
      src/main/java/com/jeeplus/common/utils/sg/ExcelUtil.java
  2. 40 215
      src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

+ 8 - 0
src/main/java/com/jeeplus/common/utils/sg/ExcelUtil.java

@@ -121,6 +121,7 @@ public class ExcelUtil {
     }
 
 
+
     /**
      * 根据字段读取数据
      * @param importExcel 文件对象
@@ -174,6 +175,13 @@ public class ExcelUtil {
         return d;
     }
 
+    /**
+     * 获取角标
+     * @param importExcel
+     * @param st
+     * @param column1
+     * @return
+     */
     public static String getIndex(ImportExcel importExcel,String st,int column1){
         int lastRow = importExcel.getLastDataRowNum();
         String str = "";

+ 40 - 215
src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

@@ -19,7 +19,7 @@ public class SubstationInfo {
     public static final String JZMX_ZKTXL = "主控通信楼";
     public static final String JZMX_1000JDS = "1000kV继电器室";
     public static final String JZMX_750JDS = "750kV继电器室";
-    public static final String JZMX_500JDS = "500kV继电器室#1";
+    public static final String JZMX_500JDS = "500kV继电器室";
     public static final String JZMX_330JDS = "330kV继电器室";
     public static final String JZMX_220JDS = "220kV继电器室";
     public static final String JZMX_110JDS = " 110kV继电器室";
@@ -40,14 +40,8 @@ public class SubstationInfo {
     public static final String JZMX_KKGYDKQ = "可控高压电抗器晶闸管阀室";
     public static final String JZMX_KKCLBCZZ= "可控串联补偿装置控制室";
     public static final String JZMX_JZWGBCZZ= "静止无功补偿装置晶闸管阀室";
-    public static final String JZMX_BW110KV = "110kV配电装置室(标外)";
-    public static final String JZMX_SXS = "上下水";
-    public static final String JZMX_LTZM = "暖通照明";
-    public static final String JZMX_SDBW = "水电(标外)";
-    public static final String JZMX_RDYM = "弱电预埋(标外)";
-    public static final String JZMX_DLGDBW = "电缆沟道(标外)";
 
-    public static final String[] JZMX_OTH = {JZMX_BW110KV ,JZMX_SXS ,JZMX_LTZM,JZMX_SDBW,JZMX_RDYM};
+
 
     public static final String JZMX_PDZZJZ = "配电装置建筑";
     public static final String JZMX_ZBYQXT = "主变压器系统";
@@ -105,16 +99,11 @@ public class SubstationInfo {
 
     public static final String JZMX_XFXT= "消防系统";
     public static final String JZMX_XFSBF= "消防水泵房";
-    public static final String JZMX_XFSBFBW= "消防水泵房(标外)";
-    public static final String JZMX_XFSBFSD= "消防泵房水电(标外)";
     public static final String JZMX_YLFS= "雨淋阀室";
     public static final String JZMX_ZQXFGD= "站区消防管道";
-    public static final String JZMX_ZQXFGDBW= "站区消防管道(标外)";
     public static final String JZMX_XFQC= "消防器材";
-    public static final String JZMX_XFQCBW= "消防器材(标外)";
     public static final String JZMX_TSXFXT= "特殊消防系统";
     public static final String JZMX_XFSC= "消防水池";
-    public static final String JZMX_XFSCBW= "消防水池标外";
 
 
     public static final String JZMX_FZSCGC= "辅助生产工程";
@@ -126,10 +115,8 @@ public class SubstationInfo {
     public static final String JZMX_ZQXJZ= "站区性建筑";
     public static final String JZMX_CDPZ= "场地平整";
     public static final String JZMX_ZQDLJGC= "站区道路及广场";
-    public static final String JZMX_ZWDLBW= "站区道路(标外)";
     public static final String JZMX_ZQPS= "站区排水";
     public static final String JZMX_WQJDM= "围墙及大门";
-    public static final String JZMX_WQJDMBW= "围墙大门(标外)";
 
     public static final String JZMX_TSGZW= "特殊构筑物";
     public static final String JZMX_DTQJDSQ= "挡土墙及挡水墙";
@@ -140,10 +127,7 @@ public class SubstationInfo {
 
     public static final String JZMX_ZZDXGC= "与站址有关的单项工程";
     public static final String JZMX_DJCL= "地基处理";
-    public static final String JZMX_DJCLBW= "地基处理(标外)";
     public static final String JZMX_ZWDL= "站外道路";
-    public static final String JZMX_ZWDLBW1= "站外道路(标外)";
-    public static final String JZMX_ZWDLTJ= "土建新增签证及确认单";
     public static final String JZMX_ZWSY= "站外水源";
     public static final String JZMX_ZWPS= "站外排水";
     public static final String JZMX_SGJS= "施工降水";
@@ -214,12 +198,6 @@ public class SubstationInfo {
 
 
 
-    public static final String RATIO_RGTC = "人工调差系数";
-    public static final String RATIO_CLTC = "材料调差系数";
-    public static final String RATIO_JXTC = "机械调差系数";
-    public static final String RATIO_CCRGTC = "拆除人工调差系数";
-    public static final String RATIO_CCCLTC = "拆除材料调差系数";
-    public static final String RATIO_CCJXTC = "拆除机械调差系数";
 
     public static final String CS_LS = "临时设施费";
     public static final String CS_AQWM = "安全文明施工费";
@@ -668,172 +646,6 @@ public class SubstationInfo {
         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});
-        double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
-        double e = ExcelUtil.getDouble(importExcel1,str[0],1,2);  //合计
-        doubles[2][0] =  doubles[2][0] + doubless[0][0]+ doubless[1][0]+ doubless[2][0]+ doubless[3][0]+ doubless[4][0];
-        doubles[2][1] =  doubles[2][1] + doubless[0][1]+ doubless[1][1]+ doubless[2][1]+ doubless[3][1]+ doubless[4][1];
-        doubles[2][2] =  doubles[2][2] + doubless[0][2]+ doubless[1][2]+ doubless[2][2]+ doubless[3][2]+ doubless[4][2];
-        doubles[2][3] =  doubles[2][3] + doubless[0][3]+ doubless[1][3]+ doubless[2][3]+ doubless[3][3]+ doubless[4][3];
-        doubles[2][4] =  doubles[2][4] + doubless[0][4]+ doubless[1][4]+ doubless[2][4]+ doubless[3][4]+ doubless[4][4];
-        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> getBashInfoxf(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
-        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[] 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);  //直接工程费
-        double e = ExcelUtil.getDouble(importExcel1,str[0],1,2);  //合计
-        doubles[1][0] =  doubles[1][0]+ doubles1[0]+ doubles2[0]+ doubles4[0]+ doubles5[0];
-        doubles[1][1] =  doubles[1][1]+ doubles1[1]+ doubles2[1]+ doubles4[1]+ doubles5[1];
-        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];
-
-        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;
-        }
-//         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]);
-            jkxlDetailFee.setOriginalCbrCost(doubles[j][2]);
-            jkxlDetailFee.setOriginalJxCost(doubles[j][4]);
-            jkxlDetailFee.setWbsCode(wbs[j]);
-            jkxlDetailFees.add(jkxlDetailFee);
-        }
-        return jkxlDetailFees;
-    }
-
-    //战区建筑
-    public static List<JkxlDetailFee> getBashInfozq(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
-        double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
-        double[] doubles1 = ExcelUtil.getBashArray(importExcel,JZMX_ZWDLBW,2,new int[]{12,13, 14, 15, 17});
-        double[] doubles2 = ExcelUtil.getBashArray(importExcel,JZMX_WQJDMBW ,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);  //合计
-        doubles[1][0] =  doubles[1][0]+ doubles1[0]+ doubles2[0];
-        doubles[1][1] =  doubles[1][1]+ doubles1[1]+ doubles2[1];
-        doubles[1][2] =  doubles[1][2]+ doubles1[2]+ doubles2[2];
-        doubles[1][3] =  doubles[1][3]+ doubles1[3]+ doubles2[3];
-        doubles[1][4] =  doubles[1][4]+ doubles1[4]+ doubles2[4];
-
-        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;
-        }
-//         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]);
-            jkxlDetailFee.setOriginalCbrCost(doubles[j][2]);
-            jkxlDetailFee.setOriginalJxCost(doubles[j][4]);
-            jkxlDetailFee.setWbsCode(wbs[j]);
-            jkxlDetailFees.add(jkxlDetailFee);
-        }
-        return jkxlDetailFees;
-    }
-
-
-    //战区建筑
-    public static List<JkxlDetailFee> getBashInfozqjz(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
-        double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
-        double[] doubles1 = ExcelUtil.getBashArray(importExcel,JZMX_DJCLBW,2,new int[]{12,13, 14, 15, 17});
-        double[] doubles2 = ExcelUtil.getBashArray(importExcel,JZMX_ZWDLBW1,2,new int[]{12,13, 14, 15, 17});
-        double[] doubles3 = ExcelUtil.getBashArray(importExcel,JZMX_ZWDLTJ,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);  //合计
-        doubles[1][0] =  doubles[1][0]+ doubles1[0]+ doubles2[0]+ doubles3[0];
-        doubles[1][1] =  doubles[1][1]+ doubles1[1]+ doubles2[1]+ doubles3[1];
-        doubles[1][2] =  doubles[1][2]+ doubles1[2]+ doubles2[2]+ doubles3[2];
-        doubles[1][3] =  doubles[1][3]+ doubles1[3]+ doubles2[3]+ doubles3[3];
-        doubles[1][4] =  doubles[1][4]+ doubles1[4]+ doubles2[4]+ doubles3[4];
-
-        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;
-        }
-//         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]);
-            jkxlDetailFee.setOriginalCbrCost(doubles[j][2]);
-            jkxlDetailFee.setOriginalJxCost(doubles[j][4]);
-            jkxlDetailFee.setWbsCode(wbs[j]);
-            jkxlDetailFees.add(jkxlDetailFee);
-        }
-        return jkxlDetailFees;
-    }
 
 
 
@@ -1157,6 +969,17 @@ public class SubstationInfo {
         String[] wbs = KZZLWBS;
         double[][] doubles = ExcelUtil.getBashArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
         double d = ExcelUtil.getDouble(importExcel1,str[0],1,3);  //直接工程费
+        String index = ExcelUtil.getIndex(importExcel,str[0],2);    //获取角标
+        if(StringUtils.isNotBlank(index)){
+            double[][] doubles1 = getUnidentification(importExcel,index,str,"1");
+            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];
         double[] zjgc = new double[5];
         zjgc[0] = d;
@@ -1315,6 +1138,7 @@ public class SubstationInfo {
     public static double[][] getUnidentification(ImportExcel importExcel,String st,String[] strs,String types){
         int startRow = 0;
         int lastRow = importExcel.getLastDataRowNum();
+        String jds = "";
         if(types.equals("1")) {
             for (int i = 0; i < lastRow; i++) {
                 String type = importExcel.getValue(i + 1, 2);
@@ -1349,15 +1173,6 @@ public class SubstationInfo {
                 }
             }
         }
-        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;
-                }
-            }
-        }
         int len1 = st.length();
         List<String> list = new ArrayList();
         for(int i=startRow;i<lastRow;i++){
@@ -1377,11 +1192,19 @@ public class SubstationInfo {
                     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){
+                    if(in>4){
                         bol=true;
+                        if(StringUtils.isNotBlank(jds)){
+                            String newstr = type.substring(0,3);
+                            String newjds = type.substring(0,3);
+                            if(newstr.equals(newjds) && !strings.contains(s)){
+                                bol = false;
+                            }
+                        }
                     }
                     if(strs[0].equals(JZMX_ZYSCJZ) && in==3 && (s.contains("继电器室") || s.contains("配电装置室"))){
                         bol=true;
+                        jds = type;
                     }
                     if(!bol){
                         list.add(type);
@@ -1406,22 +1229,24 @@ public class SubstationInfo {
         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;
+        if(startRow != 0) {
+            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);
+            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);
+                        }
                     }
                 }
             }