|
@@ -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;
|
|
|
|
|
|
}
|
|
|
|