浏览代码

Merge remote-tracking branch 'origin/master'

xs 5 年之前
父节点
当前提交
ecf501f5b6

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

@@ -30,24 +30,6 @@ public class ExcelUtil {
 
 
 
-
-//    public static double getDouble(ImportExcel importExcel,String st,int column1,int column2){
-//        int lastRow = importExcel.getLastDataRowNum();
-//        double d = 0.00;
-//        for(int i=0;i<lastRow;i++){
-//            String type = importExcel.getValue(i+1,column1);
-//            if(type.equals("")){
-//                continue;
-//            }
-//            if(type.contains(st)){
-//                d = importExcel.getDouble(i+1,column2);
-//                break;
-//            }
-//        }
-//        return d;
-//    }
-
-
     /**
      * 根据字段读取数据
      * @param importExcel 文件对象

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

@@ -215,7 +215,7 @@ 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.getBashInfos(jzqd,jzhz,SubstationInfo.ZYSCWBS,SubstationInfo.ZYSCJZSTR); //主要生产建筑
-
+            List<JkxlDetailFee> pdzz = SubstationInfo.getPdzzjz(jzqd,jzhz);    //配电装置
             List<JkxlDetailFee> gsxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.GSXTWBS,SubstationInfo.GSXTSTR); //供水系统建筑
             List<JkxlDetailFee> xfxt  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.XFXTWBS,SubstationInfo.XFXTSTR); //消防系统
             JkxlDetailFee jzfz = SubstationInfo.getBashInfo(jzqd,jzhz,"21200000",SubstationInfo.JZMX_FZSCGC);  //辅助生产工程
@@ -228,6 +228,7 @@ public class SubstationService {
             jzTotal.add(jz);
             jzTotal.add(jzsc);
             jzTotal.addAll(scjz);
+            jzTotal.addAll(pdzz);
             jzTotal.addAll(gsxt);
             jzTotal.addAll(xfxt);
             jzTotal.add(jzfz);
@@ -263,7 +264,7 @@ public class SubstationService {
             JkxlDetailFee az = SubstationInfo.getTolalInfo(jzqd,jzhz,"23000000",SubstationInfo.AZMX_BDZAZ);  //建筑合计
             JkxlDetailFee azsc = SubstationInfo.getBashInfo(azqd,azhz,"23100000",SubstationInfo.AZMX_ZYSCGC);  //主要生产工程
             List<JkxlDetailFee> zbyq  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.ZBYQWBS,SubstationInfo.ZBYQSTR); //主变压器系统
-            List<JkxlDetailFee> pdzz  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.PDZZWBS,SubstationInfo.PDZZSTR); //配电装置
+            List<JkxlDetailFee> pdzzs  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.PDZZWBS,SubstationInfo.PDZZSTR); //配电装置
             List<JkxlDetailFee> wgbc  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.WGBCWBS,SubstationInfo.WGBCSTR); //无功补偿
 //            List<JkxlDetailFee> kzzl  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.KZZLWBS,SubstationInfo.KZZLSTR); //控制及直流系统
             List<JkxlDetailFee> kzzl = SubstationInfo.getKzzl(azqd,azhz);
@@ -279,7 +280,7 @@ public class SubstationService {
             azTotal.add(az);
             azTotal.add(azsc);
             azTotal.addAll(zbyq);
-            azTotal.addAll(pdzz);
+            azTotal.addAll(pdzzs);
             azTotal.addAll(wgbc);
             azTotal.addAll(kzzl);
             azTotal.addAll(zyd);

+ 259 - 4
src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

@@ -83,6 +83,8 @@ public class SubstationInfo {
     public static final String JZMX_10JGJC = "10kV构架及基础";
     public static final String JZMX_10SBZJ = "10kV设备支架及基础";
     public static final String JZMX_GYDKQXT = "高压电抗器系统";
+    public static final String JZMX_GYDKQ = "高压电抗器设备基础";
+    public static final String JZMX_GYYCJLS = "高抗油池及卵石";
     public static final String JZMX_CLBCXT = "串联补偿系统";
     public static final String JZMX_CLBCSBJC = "串联补偿设备平台基础";
     public static final String JZMX_CLBCSBJG = "串联补偿设备平台结构";
@@ -283,6 +285,9 @@ public class SubstationInfo {
     public static String[] KFJGSBSTR = {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};
 
+    public static String[] DETWBS = {"21121100","21121200","21121300","21121400","21121500","2112B100","2112B200","2112B300","2112B400","2112B500","2112C100","2112C200"
+             ,"2112C300","2112C400","2112G100","2112G200","2112H100","2112H200"};
+
 
 
 
@@ -451,16 +456,266 @@ public class SubstationInfo {
      * 配电装置建筑基础数据
      */
     public static List<JkxlDetailFee> getPdzzjz(ImportExcel importExcel,ImportExcel importExcel1){
-        JkxlDetailFee total = getBashInfo(importExcel,importExcel1,"21120000",JZMX_PDZZJZ);
-        double[][] bashInfo = ExcelUtil.getBashArray(importExcel,PDZZJZSTR,2,new int[]{12,13, 14, 15, 17});
-        List<JkxlDetailFee> kvjg = getBashInfo(importExcel,importExcel1,KFJGSBWBS,KFJGSBSTR);
+        JkxlDetailFee total = getBashInfo(importExcel,importExcel1,"21120000",JZMX_PDZZJZ);//配电装置
+        List<JkxlDetailFee> total1 = getBashInfo(importExcel,importExcel1,PDZZJZWBS,PDZZJZSTR);
+        List<JkxlDetailFee> kvjg = getBashInfo(importExcel,importExcel1,KFJGSBWBS,KFJGSBSTR);//构架及设备基础无3级表头
+        List<JkxlDetailFee> kvtotal = new ArrayList<>(); //构架及设备基础
         for(int i=0;i<kvjg.size()/2;i++){
+            String wbs = kvjg.get(i*2).getWbsCode().substring(0,6);
+            double t1 = kvjg.get(i*2).getOriginalTotalCost();
+            double r1 = kvjg.get(i*2).getOriginalRgCost();
+            double c1 = kvjg.get(i*2).getOriginalCbrCost();
+            double f1 = kvjg.get(i*2).getOriginalFbrCost();
+            double j1 = kvjg.get(i*2).getOriginalJxCost();
+            double t2 = kvjg.get(i*2+1).getOriginalTotalCost();
+            double r2 = kvjg.get(i*2+1).getOriginalRgCost();
+            double c2 = kvjg.get(i*2+1).getOriginalCbrCost();
+            double f2 = kvjg.get(i*2+1).getOriginalFbrCost();
+            double j2 = kvjg.get(i*2+1).getOriginalJxCost();
+            JkxlDetailFee jkxlDetailFee =new JkxlDetailFee();
+            jkxlDetailFee.setOriginalTotalCost(t1+t2);
+            jkxlDetailFee.setOriginalRgCost(r1+r2);
+            jkxlDetailFee.setOriginalCbrCost(c1+c2);
+            jkxlDetailFee.setOriginalFbrCost(f1+f2);
+            jkxlDetailFee.setOriginalJxCost(j1+j2);
+            jkxlDetailFee.setWbsCode(wbs+"000");
+            kvtotal.add(jkxlDetailFee);
+        }
+        total1.addAll(kvtotal); //合并
+        for(JkxlDetailFee jkxlDetailFee:total1){
+            double rate = jkxlDetailFee.getOriginalRgCost()/total.getOriginalRgCost();
+            double zjgc = total.getZjgcFee()*rate;
+            jkxlDetailFee.setZjgcFee(zjgc);
+        }
+        String[] cf = {JZMX_ZBYQXT,JZMX_GYDKQXT,JZMX_CLBCXT,JZMX_JZWGBC,JZMX_ZYBYQXT};
+        String[] index = new String[cf.length];
+        for(int j=0;j<cf.length;j++){
+            String str = cf[j];
+            String str1 = "";
+            int lastRow = importExcel.getLastDataRowNum();
+            for(int i=0;i<lastRow;i++){
+                String type = importExcel.getValue(i+1,1);
+                if(type.equals("")){
+                    continue;
+                }
+                if(type.contains(str)){
+                    str1 = type.substring(0,3);
+                    break;
+                }
+            }
+          index[j] = str1;
+        }
+        double[][] d = new double[18][5];
+        int lastRow = importExcel.getLastDataRowNum();
+        int[] arr = {12,13,14,15,17};
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.contains(JZMX_GZJJJC)){
+                String st = type.substring(0,3);
+                if(st.equals(index[0])){
+                    for(int j=0;j<arr.length;j++){
+                        d[0][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[1])){
+                    for(int j=0;j<arr.length;j++){
+                        d[5][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[2])){
+                    for(int j=0;j<arr.length;j++){
+                        d[12][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[3])){
+                    for(int j=0;j<arr.length;j++){
+                        d[14][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                }
+            }
+            if(type.contains(JZMX_ZBYQJC)){
+                for(int j=0;j<arr.length;j++){
+                        d[1][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_ZBYQYK)){
+                for(int j=0;j<arr.length;j++){
+                    d[2][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_FHQ)){
+                String st = type.substring(0,3);
+                if(st.equals(index[0])){
+                    for(int j=0;j<arr.length;j++){
+                        d[3][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[1])){
+                    for(int j=0;j<arr.length;j++){
+                        d[8][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[4])){
+                    for(int j=0;j<arr.length;j++){
+                        d[17][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                }
+            }
+            if(type.contains(JZMX_SGYC)){
+                String st = type.substring(0,3);
+                if(st.equals(index[0])){
+                    for(int j=0;j<arr.length;j++){
+                        d[4][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                } else if(st.equals(index[1])){
+                    for(int j=0;j<arr.length;j++){
+                        d[9][j] = importExcel.getDouble(i+1,arr[j]);
+                    }
+                }
+            }
+            if(type.contains(JZMX_GYDKQ)){
+                for(int j=0;j<arr.length;j++){
+                    d[6][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_GYYCJLS)){
+                for(int j=0;j<arr.length;j++){
+                    d[7][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_CLBCSBJC)){
+                for(int j=0;j<arr.length;j++){
+                    d[10][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_CLBCSBJG)){
+                for(int j=0;j<arr.length;j++){
+                    d[11][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_SBZJJJC)){
+                for(int j=0;j<arr.length;j++){
+                    d[13][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_JZWGBCJC)){
+                for(int j=0;j<arr.length;j++){
+                    d[15][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
+            if(type.contains(JZMX_ZYBYQSBJC)){
+                for(int j=0;j<arr.length;j++){
+                    d[17][j] = importExcel.getDouble(i+1,arr[j]);
+                }
+            }
 
         }
+        List<JkxlDetailFee> detailFees = new ArrayList<>();
+        JkxlDetailFee jkxlDetailFee = null;
+        for(int k=0;k<d.length;k++){
+           jkxlDetailFee.setOriginalTotalCost(d[k][0]);
+           jkxlDetailFee.setOriginalRgCost(d[k][1]);
+           jkxlDetailFee.setOriginalCbrCost(d[k][2]);
+           jkxlDetailFee.setOriginalFbrCost(d[k][3]);
+           jkxlDetailFee.setOriginalJxCost(d[k][4]);
+           jkxlDetailFee.setWbsCode(DETWBS[k]);
+           detailFees.add(jkxlDetailFee);
+        }
 
+        //主变压器系统
+        JkxlDetailFee zby= total1.get(0);
+        List<JkxlDetailFee> zbys = detailFees.subList(0,5);
+        List<JkxlDetailFee> zbyss = ftFee(zby,zbys);
+
+        //高压电抗器系统
+        JkxlDetailFee gyd= total1.get(1);
+        List<JkxlDetailFee> gyds = detailFees.subList(5,10);
+        List<JkxlDetailFee> gydss = ftFee(gyd,gyds);
+        //串联补偿系统
+        JkxlDetailFee clbc= total1.get(2);
+        List<JkxlDetailFee> clbcs = detailFees.subList(10,14);
+        List<JkxlDetailFee> clbcss = ftFee(clbc,clbcs);
+        //静止无功补偿装置
+        JkxlDetailFee jzw= total1.get(5);
+        List<JkxlDetailFee> jzws = detailFees.subList(14,16);
+        List<JkxlDetailFee> jzwss = ftFee(jzw,jzws);
+        //站用变压器系统
+        JkxlDetailFee zyb= total1.get(6);
+        JkxlDetailFee zyba = kvjg.get(16);
+        JkxlDetailFee zybb = kvjg.get(17);
+        List<JkxlDetailFee> zybs = new ArrayList<>();
+        zybs.add(zyba);
+        zybs.add(zybb);
+        List<JkxlDetailFee> zybss = ftFee(zyb,zybs);
+        //1000kV构架及设备基础
+        JkxlDetailFee jg1000 = total1.get(11);
+        List<JkxlDetailFee> jg1000s = kvjg.subList(0,2);
+        List<JkxlDetailFee> jg1000ss = ftFee(jg1000,jg1000s);
+
+        //750kV构架及设备基础
+        JkxlDetailFee jg750 = total1.get(12);
+        List<JkxlDetailFee> jg750s = kvjg.subList(2,4);
+        List<JkxlDetailFee> jg750ss = ftFee(jg750,jg750s);
+
+        //500kV构架及设备基础
+        JkxlDetailFee jg500 = total1.get(13);
+        List<JkxlDetailFee> jg500s = kvjg.subList(4,6);
+        List<JkxlDetailFee> jg500ss = ftFee(jg500,jg500s);
+
+        //330kV构架及设备基础
+        JkxlDetailFee jg330 = total1.get(14);
+        List<JkxlDetailFee> jg330s = kvjg.subList(6,8);
+        List<JkxlDetailFee> jg300ss = ftFee(jg330,jg330s);
+        //220kV构架及设备基础
+        JkxlDetailFee jg220 = total1.get(15);
+        List<JkxlDetailFee> jg220s = kvjg.subList(8,10);
+        List<JkxlDetailFee> jg220ss = ftFee(jg220,jg220s);
+        //110kV构架及设备基础
+        JkxlDetailFee jg110 = total1.get(16);
+        List<JkxlDetailFee> jg110s = kvjg.subList(10,12);
+        List<JkxlDetailFee> jg110ss = ftFee(jg110,jg110s);
+        //66kV构架及设备基础
+        JkxlDetailFee jg66 = total1.get(17);
+        List<JkxlDetailFee> jg66s = kvjg.subList(12,14);
+        List<JkxlDetailFee> jg66ss = ftFee(jg66,jg66s);
+        //35kV构架及设备基础
+        JkxlDetailFee jg35 = total1.get(18);
+        List<JkxlDetailFee> jg35s = kvjg.subList(14,16);
+        List<JkxlDetailFee> jg35ss = ftFee(jg35,jg35s);
+        //10kV构架及设备基础
+        JkxlDetailFee jg10 = total1.get(19);
+        JkxlDetailFee jg10a = kvjg.get(16);
+        JkxlDetailFee jg10b = kvjg.get(17);
+        List<JkxlDetailFee> jg10s = new ArrayList<>();
+        jg10s.add(jg10a);
+        jg10s.add(jg10b);
+        List<JkxlDetailFee> jg10ss = ftFee(jg10,jg10s);
+        total1.addAll(zbyss);
+        total1.addAll(gydss);
+        total1.addAll(clbcss);
+        total1.addAll(jzwss);
+        total1.addAll(zybss);
+        total1.addAll(jg1000ss);
+        total1.addAll(jg750ss);
+        total1.addAll(jg500ss);
+        total1.addAll(jg300ss);
+        total1.addAll(jg220ss);
+        total1.addAll(jg110ss);
+        total1.addAll(jg66ss);
+        total1.addAll(jg35ss);
+        total1.addAll(jg10ss);
+     return total1;
 
+    }
 
-     return null;
+
+    private static List<JkxlDetailFee> ftFee(JkxlDetailFee jkxlDetailFee,List<JkxlDetailFee> list){
+        double gc = jkxlDetailFee.getZjgcFee();
+        double d = jkxlDetailFee.getOriginalTotalCost();
+        for(JkxlDetailFee jkxlDetailFee1:list){
+            double rate = jkxlDetailFee1.getOriginalRgCost()/d;
+            double d1 = gc*rate;
+            jkxlDetailFee1.setZjgcFee(d1);
+        }
+        return list;
 
     }