蔡德晨 5 年之前
父節點
當前提交
1cb19c5a4f

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

@@ -0,0 +1,332 @@
+package com.jeeplus.modules.sg.substation.service;
+
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.utils.sg.ExcelUtil;
+import com.jeeplus.modules.sg.overheadline.entity.JkxlAdjustFee;
+import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee;
+import com.jeeplus.modules.sg.overheadline.entity.Settlement;
+import com.jeeplus.modules.sg.overheadline.entity.WbsProject;
+import com.jeeplus.modules.sg.overheadline.mapper.OverheadLineMapper;
+import com.jeeplus.modules.sg.overheadline.service.FeeAdjustService;
+import com.jeeplus.modules.sg.overheadline.service.RuleRatioService;
+import com.jeeplus.modules.sg.overheadline.service.SettlementService;
+import com.jeeplus.modules.sg.overheadline.util.BashInfo;
+import com.jeeplus.modules.sg.overheadline.util.SettementUtil;
+import com.jeeplus.modules.sg.project.entity.WbsItem;
+import com.jeeplus.modules.sg.project.service.ItemService;
+import com.jeeplus.modules.sg.substation.util.SubstationInfo;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class SubstationService {
+    @Autowired
+    private OverheadLineMapper overheadLineMapper;
+    @Autowired
+    private FeeAdjustService feeAdjustService;
+    @Autowired
+    private RuleRatioService ruleRatioService;
+    @Autowired
+    private SettlementService settlementService;
+    @Autowired
+    private ItemService itemService;
+
+
+
+   public List<JkxlDetailFee> getList(String id,String type){
+       return overheadLineMapper.getList(id,type);
+   }
+
+
+   public List<JkxlDetailFee> findList(String id,String type){
+       List<JkxlDetailFee> list = overheadLineMapper.findList(id,type);
+       JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
+       jkxlAdjustFee.setId(id);
+       jkxlAdjustFee.setType(SubstationInfo.CE);
+       List<JkxlAdjustFee> jkxlAdjustFees = feeAdjustService.getTzFee(jkxlAdjustFee);
+       JkxlAdjustFee jkxlAdjustFee1 = jkxlAdjustFees.get(0);
+       double cFee = jkxlAdjustFee1.getFee();
+       double btTotal = 0.00;
+       double qtTotal = 0.00;
+       double azTotal = 0.00;
+       double otherTotal = 0.00;
+       for(JkxlDetailFee jkxlDetailFee : list){
+           double measuresFee1 = jkxlDetailFee.getMeasuresFee1()!=null? jkxlDetailFee.getMeasuresFee1():0.00;
+           double measuresFee2 = jkxlDetailFee.getMeasuresFee2()!=null? jkxlDetailFee.getMeasuresFee2():0.00;
+           double measuresFee3 = jkxlDetailFee.getMeasuresFee3()!=null? jkxlDetailFee.getMeasuresFee3():0.00;
+           double Tex = jkxlDetailFee.getTex()!=null? jkxlDetailFee.getTex():0.00;
+           double otherCost = jkxlDetailFee.getOtherCost()!=null? jkxlDetailFee.getOtherCost():0.00;
+           double Fees = jkxlDetailFee.getFees()!=null? jkxlDetailFee.getFees():0.00;
+           double qtFee = measuresFee1 + measuresFee2 + measuresFee3 + otherCost + Fees + Tex;
+           double rgFee = jkxlDetailFee.getRgCost()!=null? jkxlDetailFee.getRgCost():0.00;
+           double cbrFee = jkxlDetailFee.getCbrCost()!=null? jkxlDetailFee.getCbrCost():0.00;
+           double fbrFee = jkxlDetailFee.getFbrCost()!=null? jkxlDetailFee.getFbrCost():0.00;
+           double jxFee = jkxlDetailFee.getJxCost()!=null? jkxlDetailFee.getJxCost():0.00;
+           double azFee = rgFee + cbrFee + jxFee;
+           jkxlDetailFee.setQtFee(qtFee);
+           jkxlDetailFee.setAzFee(azFee);
+       }
+       for(JkxlDetailFee jkxlDetailFee : list){
+           //本体费用求和
+           if(jkxlDetailFee.getOriginalTotalCost() != null){
+               btTotal += jkxlDetailFee.getTotalFee();
+               azTotal += jkxlDetailFee.getAzFee();
+               otherTotal += jkxlDetailFee.getQtFee();
+           }
+           //其他费用求和
+           if(jkxlDetailFee.getOriginalTotalCost() == null && jkxlDetailFee.getTotalFee() != null){
+               qtTotal += jkxlDetailFee.getTotalFee();
+           }
+       }
+       for(JkxlDetailFee jkxlDetailFee : list){
+           if(jkxlDetailFee.getWbsCode().equals("30000000") || jkxlDetailFee.getWbsCode().equals("40000000")){
+               jkxlDetailFee.setTotalFee(btTotal+qtTotal);
+               jkxlDetailFee.setAzFee(azTotal);
+               jkxlDetailFee.setQtFee(otherTotal);
+               jkxlDetailFee.setcFee(cFee);
+               jkxlDetailFee.setJsFee(btTotal+qtTotal+cFee);
+           }
+           if(jkxlDetailFee.getWbsCode().equals("39000000") || jkxlDetailFee.getWbsCode().equals("49000000")){
+               jkxlDetailFee.setTotalFee(btTotal);
+               jkxlDetailFee.setAzFee(azTotal);
+               jkxlDetailFee.setQtFee(otherTotal);
+           }
+           if(jkxlDetailFee.getWbsCode().equals("44000000") ||jkxlDetailFee.getWbsCode().equals("34000000")){
+               jkxlDetailFee.setTotalFee(qtTotal);
+
+           }
+       }
+       for (int i=0;i<list.size();i++){
+           list.get(i).setIndex(i+1);
+       }
+       return list;
+
+   }
+
+   public JkxlDetailFee getDate(String id, String wbsCode){
+       return overheadLineMapper.getData(id,wbsCode);
+   }
+
+   public List<JkxlDetailFee> getAdjust(String id){
+       return overheadLineMapper.getAdjust(id);
+   }
+
+
+    @Transactional(readOnly = false)
+    public void updataDate(JkxlDetailFee jkxlDetailFee){
+        overheadLineMapper.updateDate(jkxlDetailFee);
+    }
+
+    @Transactional(readOnly = false)
+   public void saveProject(WbsProject wbsProject){
+       overheadLineMapper.saveProject(wbsProject);
+   }
+
+
+
+
+    public void save(MultipartFile file,String name,String id,String projectId,String type) throws IOException, InvalidFormatException {
+        WbsItem wbsItem = itemService.get(id);
+        if(wbsItem == null){
+            WbsItem wbsItem1 = new WbsItem();
+            wbsItem1.setProjectId(projectId);
+            wbsItem1.setId(id);
+            wbsItem1.setItemName(name);
+            wbsItem1.setType(type);
+            //保存项目
+            itemService.save(wbsItem1);
+        }
+        List<JkxlDetailFee> jkxlDetailFees = overheadLineMapper.findList(id,type);
+        if(jkxlDetailFees != null && jkxlDetailFees.size()>0){
+            overheadLineMapper.delete(id);
+            feeAdjustService.delete(id);
+            settlementService.delete(id);
+        }
+        //获取调差系数
+        double[] tcRate = new double[3];
+        tcRate[0] = ruleRatioService.getValueByName(SubstationInfo.RATIO_RGTC).getValue()/100;
+        tcRate[1] = ruleRatioService.getValueByName(SubstationInfo.RATIO_CLTC).getValue()/100;
+        tcRate[2] = ruleRatioService.getValueByName(SubstationInfo.RATIO_JXTC).getValue()/100;
+
+        //读取表格
+        ImportExcel total = new ImportExcel(file,1,new String[]{SubstationInfo.SHEET_HZB,SubstationInfo.SHEET_HZB1} );  //工程项目竣工结算汇总表
+        ImportExcel csqd1 = new ImportExcel(file,1,new String[]{SubstationInfo.SHEET_CSB,SubstationInfo.SHEET_CSB1});  // 措施项目清单计价表(一)
+        ImportExcel csqd2 = new ImportExcel(file,1,SubstationInfo.SHEET_CSB2);  // 措施项目清单计价表(二)
+        ImportExcel gf = new ImportExcel(file,1,SubstationInfo.SHEET_GFQD);  //规费项目清单计价表
+        ImportExcel qt = new ImportExcel(file,1,SubstationInfo.SHEET_QTFY);  //其他项目清单计价表
+        ImportExcel fbrcg = new ImportExcel(file,1,SubstationInfo.SHEET_ZBRCGSB );   //招标人采购材料设备计价表
+        double jzgc = ExcelUtil.getDouble(total,SubstationInfo.HZ_JZGC,1,2);//汇总表建筑金额
+        double azgc = ExcelUtil.getDouble(total,SubstationInfo.HZ_AZGC,1,2);//汇总表安装金额
+        double texRate = ExcelUtil.getTexRate(total); //获取税率
+        double fbfxFee = ExcelUtil.getDouble(total,SubstationInfo.JS_FBFX,1,2);  //分部分项工程费
+        double jzcsRate = BashInfo.getJzRate(csqd1); //获取建筑措施费率
+        double[] azcsRate = BashInfo.getAzRate(csqd1); //获取安装措施费率
+        double[] jzgfRate = BashInfo.getJzGfRate(gf);  //获取建筑规费率
+        double[] azgfRate = BashInfo.getAzGfRate(gf);  //获取安装规费率
+        double[] qtFees = BashInfo.getQtFees(qt);  //获取其他费用
+        double gcjsFee = BashInfo.getGcjsFee(total);  //获取工程结算价
+        if(jzgc !=0.00 && azgc != 0.00){
+            ImportExcel jzqd = new ImportExcel(file, 1, SubstationInfo.SHEET_JZFBFXJJ);  //建筑分部分项工程量清单计价表
+            ImportExcel azqd = new ImportExcel(file, 1, SubstationInfo.SHEET_AZFBFXJJ);  //安装分部分项工程量清单计价表
+            ImportExcel jzhz = new ImportExcel(file, 1, SubstationInfo.SHEET_JZHZB);   //建筑工程费用汇总表
+            ImportExcel azhz = new ImportExcel(file, 1, SubstationInfo.SHEET_HZHZB);   //安装工程费用汇总表
+            double zjgcJzTotal = ExcelUtil.getDouble(jzhz,SubstationInfo.QT_HJ,0,3);//建筑直接工程费合计
+            double zjgcAzTotal = ExcelUtil.getDouble(azhz,SubstationInfo.QT_HJ,0,3);//安装直接工程费合计
+            double csJzFee = SubstationInfo.getCsJzFee(csqd2);//建筑措施分摊费
+            double csAzFee = SubstationInfo.getCsAzFee(csqd2);//安装措施分摊费
+            double zjgcTotal = zjgcAzTotal+zjgcJzTotal;
+            double[] aqwmJzFees = ExcelUtil.getDoubleArray(csqd1,SubstationInfo.CS_AQWM,1, new int[]{3, 4});  //建筑安全文明施工费
+            double[] aqwmAzFees = BashInfo.getAqwfAzFee(csqd1);  //安装安全文明施工费
+            double fbrJzFee = BashInfo.getFbrJzFee(fbrcg); //建筑发包人采购计价表合计金额
+            double fbrAzFee = BashInfo.getFbrAzFee(fbrcg);  //安装发包人采购计价表合计金额
+            double zgJz = zjgcJzTotal-(aqwmJzFees[1]/(aqwmJzFees[0]/100));
+            double zgAz = zjgcAzTotal-(aqwmAzFees[1]/(aqwmAzFees[0]/100));
+            double jxslJz = new BigDecimal(zgJz/(fbrJzFee-zgJz)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //建筑进项税率
+            double jxslAz = new BigDecimal(zgAz/(fbrAzFee-zgAz)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //安装进项税率
+            //建筑部分基础数据
+            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> 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);  //辅助生产工程
+            List<JkxlDetailFee> fzscjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.FZSCWBS,SubstationInfo.FZSCSTR); //辅助生产建筑
+            List<JkxlDetailFee> zqxjz  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.ZQXWBS,SubstationInfo.ZQXSTR); //站区性建筑
+            List<JkxlDetailFee> tsgzw  = SubstationInfo.getBashInfos(jzqd,jzhz,SubstationInfo.TXGJWWBS,SubstationInfo.TXGJWSTR); //特殊构筑物
+            JkxlDetailFee zqlh = SubstationInfo.getBashInfo(jzqd,jzhz,"21240000",SubstationInfo.JZMX_ZQLH);  //站区绿化
+            List<JkxlDetailFee> dxgc  = SubstationInfo.getBashInfo(jzqd,jzhz,SubstationInfo.YDZYGWBS,SubstationInfo.YDZYGSTR); //与站址有关的单项工程
+            List<JkxlDetailFee> jzTotal = new ArrayList<>();
+            jzTotal.add(jz);
+            jzTotal.add(jzsc);
+            jzTotal.addAll(scjz);
+            jzTotal.addAll(gsxt);
+            jzTotal.addAll(xfxt);
+            jzTotal.add(jzfz);
+            jzTotal.addAll(fzscjz);
+            jzTotal.addAll(zqxjz);
+            jzTotal.addAll(tsgzw);
+            jzTotal.add(zqlh);
+            jzTotal.addAll(dxgc);
+            for(JkxlDetailFee jkxlDetailFee:jzTotal){
+                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
+                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
+                 double zjgcJzFee = jkxlDetailFee.getZjgcFee();
+                 double rateCs = zjgcJzFee/zjgcJzTotal;  //措施费分摊比例
+                 double rateQt = zjgcJzFee/zjgcTotal;    //其他费用分摊比例
+                 jkxlDetailFee.setRgCost(jkxlDetailFee.getOriginalRgCost()/(1+tcRate[0]));
+                 jkxlDetailFee.setCbrCost(jkxlDetailFee.getOriginalCbrCost()/(1+tcRate[1]));
+                 jkxlDetailFee.setFbrCost(originalFbrCost/(1+jxslJz));
+                 jkxlDetailFee.setJxCost(jkxlDetailFee.getOriginalJxCost()/(1+tcRate[2]));
+                 double measuresFee1 = (zjgcJzFee -(originalFbrCost/(1+jxslJz)*jxslJz))*jzcsRate; //措施费一(1)
+                 double measuresFee2 = csJzFee*rateCs;   //措施费一(2)
+                 double otherFee =qtFees[2]*rateQt; //其他费用
+                 double fees = (zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[0]+(zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[1]*0.2;  //规费
+                 double tax = (originalTotalCost+measuresFee1+measuresFee2+fees+otherFee-originalFbrCost)*texRate; //税金
+                 double totalfee = originalTotalCost+measuresFee1+measuresFee2+fees+otherFee+tax-originalFbrCost; //合计
+                 jkxlDetailFee.setMeasuresFee1(measuresFee1);
+                 jkxlDetailFee.setMeasuresFee2(measuresFee2);
+                 jkxlDetailFee.setFees(fees);
+                 jkxlDetailFee.setOtherCost(otherFee);
+                 jkxlDetailFee.setTex(tax);
+                 jkxlDetailFee.setTotalFee(totalfee);
+            }
+            //安装部分基础数据
+            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> wgbc  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.WGBCWBS,SubstationInfo.WGBCSTR); //无功补偿
+            List<JkxlDetailFee> kzzl  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.KZZLWBS,SubstationInfo.KZZLSTR); //控制及直流系统
+            List<JkxlDetailFee> zyd  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.ZYDWBS,SubstationInfo.ZYDSTR); //站用电系统
+            List<JkxlDetailFee> txyd  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.TXYDWBS,SubstationInfo.TXYDSTR); //通信及远动系统
+            List<JkxlDetailFee> yzts  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.QZTSWBS,SubstationInfo.QZTSSTR); //全站调试
+            List<JkxlDetailFee> fzsc  = SubstationInfo.getBashInfo(azqd,azhz,SubstationInfo.AFZSCWBS,SubstationInfo.AFZSCSTR); //辅助生产工程
+            JkxlDetailFee azdx = SubstationInfo.getBashInfo(azqd,azhz,"23300000",SubstationInfo.AZMX_ZZDXGC);  //与站址有关的单项工程
+            List<JkxlDetailFee> zwdy  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.ZWDYWBS,SubstationInfo.ZWDYSTR); //站外电源
+            List<JkxlDetailFee> zwtx  = SubstationInfo.getBashInfos(azqd,azhz,SubstationInfo.ZWTXWBS,SubstationInfo.ZWTXSTR); //站外通信
+            List<JkxlDetailFee> azTotal = new ArrayList<>();
+            azTotal.add(az);
+            azTotal.add(azsc);
+            azTotal.addAll(zbyq);
+            azTotal.addAll(pdzz);
+            azTotal.addAll(wgbc);
+            azTotal.addAll(kzzl);
+            azTotal.addAll(zyd);
+            azTotal.addAll(txyd);
+            azTotal.addAll(yzts);
+            azTotal.addAll(fzsc);
+            azTotal.add(azdx);
+            azTotal.addAll(zwdy);
+            azTotal.addAll(zwtx);
+            for(JkxlDetailFee jkxlDetailFee:azTotal){
+                double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
+                double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
+                double rgAzFee = jkxlDetailFee.getOriginalRgCost();
+                double zjgcAzFee = jkxlDetailFee.getZjgcFee();
+                double rateCs = zjgcAzFee/zjgcAzTotal;  //措施费分摊比例
+                double rateQt = zjgcAzFee/zjgcTotal;    //其他费用分摊比例
+                jkxlDetailFee.setRgCost(jkxlDetailFee.getOriginalRgCost()/(1+tcRate[0]));
+                jkxlDetailFee.setCbrCost(jkxlDetailFee.getOriginalCbrCost()/(1+tcRate[1]));
+                jkxlDetailFee.setFbrCost(originalFbrCost/(1+jxslAz));
+                jkxlDetailFee.setJxCost(jkxlDetailFee.getOriginalJxCost()/(1+tcRate[2]));
+                double measuresFee1 = (zjgcAzFee-originalFbrCost/(1+jxslAz)*jxslAz)*azcsRate[0]+(rgAzFee/(1+tcRate[0])*azcsRate[1]); //措施费一(2)
+                double measuresFee2 = csAzFee*rateCs;   //措施费一(2)
+                double otherFee =qtFees[2]*rateQt; //其他费用
+                double fees = rgAzFee/(1+tcRate[0])*azgfRate[0]+rgAzFee/(1+tcRate[0])*azgfRate[1]*1.2;  //规费
+                double tax = (originalTotalCost+measuresFee1+measuresFee2+fees+otherFee-originalFbrCost)*texRate; //税金
+                double totalfee = originalTotalCost+measuresFee1+measuresFee2+fees+otherFee+tax-originalFbrCost; //合计
+                jkxlDetailFee.setMeasuresFee1(measuresFee1);
+                jkxlDetailFee.setMeasuresFee2(measuresFee2);
+                jkxlDetailFee.setFees(fees);
+                jkxlDetailFee.setOtherCost(otherFee);
+                jkxlDetailFee.setTex(tax);
+                jkxlDetailFee.setTotalFee(totalfee);
+            }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        }
+
+
+
+    }
+
+
+
+
+
+
+
+
+}

+ 815 - 0
src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

@@ -0,0 +1,815 @@
+package com.jeeplus.modules.sg.substation.util;
+
+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;
+
+public class SubstationInfo {
+    public static final String SHEET_FBFXJJ = "分部分项工程量清单计价表";
+    public static final String SHEET_HZB = "工程项目竣工结算汇总表";
+    public static final String SHEET_HZB1 = "工程项目投标报价汇总表";
+    public static final String SHEET_CSB = "措施项目清单计价表(一)";
+    public static final String SHEET_CSB1 = "措施项目清单计价表一";
+    public static final String SHEET_CSB2 = "措施项目清单计价表(二)";
+    public static final String SHEET_QTFY = "其他项目清单计价表";
+    public static final String SHEET_GFQD = "规费项目清单计价表";
+    public static final String SHEET_TBRCGCL = "投标人采购材料计价表";
+    public static final String SHEET_TBRCGSB = "投标人采购设备计价表";
+    public static final String SHEET_ZBRCGSB = "招标人采购材料(设备)计价表";
+    public static final String SHEET_JZFBFXJJ = "建筑分部分项工程量清单计价表";
+    public static final String SHEET_AZFBFXJJ = "安装分部分项工程量清单计价表";
+    public static final String SHEET_JZHZB = "变电站建筑工程费用汇总表";
+    public static final String SHEET_HZHZB = "变电站安装工程费用汇总表";
+
+
+    public static final String JZMX_BJZ = "变电站建筑工程";
+    public static final String JZMX_ZYGC = "主要生产工程";
+    public static final String JZMX_ZYSCJZ = "主要生产建筑";
+    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_330JDS = "330kV继电器室";
+    public static final String JZMX_220JDS = "220kV继电器室";
+    public static final String JZMX_110JDS = "110kV继电器室";
+    public static final String JZMX_66JDS = "66kV继电器室";
+    public static final String JZMX_35JDS = "35kV继电器室";
+    public static final String JZMX_10JDS = "10kV继电器室";
+    public static final String JZMX_ZYPDZZS = "站用配电装置室";
+    public static final String JZMX_1000PDZZS = "1000kV配电装置室";
+    public static final String JZMX_750PDZZS = "750kV配电装置室";
+    public static final String JZMX_500PDZZS = "500kV配电装置室";
+    public static final String JZMX_330PDZZS = "330kV配电装置室";
+    public static final String JZMX_220PDZZS = "220kV配电装置室";
+    public static final String JZMX_110PDZZS = "110kV配电装置室";
+    public static final String JZMX_66PDZZS = "66kV配电装置室";
+    public static final String JZMX_35PDZZS = "35kV配电装置室";
+    public static final String JZMX_10PDZZS = "10kV配电装置室";
+    public static final String JZMX_GDCLBC = "固定串联补偿装置控制室";
+    public static final String JZMX_KKGYDKQ = "可控高压电抗器晶闸管阀室";
+    public static final String JZMX_KKCLBCZZ= "可控串联补偿装置控制室";
+    public static final String JZMX_JZWGBCZZ= "静止无功补偿装置晶闸管阀室";
+
+    public static final String JZMX_PDZZJZ = "配电装置建筑";
+    public static final String JZMX_ZBYQXT = "主变压器系统";
+    public static final String JZMX_GZJJJC = "构支架及基础";
+    public static final String JZMX_ZBYQJC = "主变压器设备基础";
+    public static final String JZMX_ZBYQYK = "主变压器油坑及卵石";
+    public static final String JZMX_FHQ = "防火墙";
+    public static final String JZMX_SGYC = "事故油池";
+
+    public static final String JZMX_JGSBJC = "构架及设备基础";
+    public static final String JZMX_1000JGJC = "1000kV构架及基础";
+    public static final String JZMX_1000SBZJ = "1000kV设备支架及基础";
+    public static final String JZMX_750JGJC = "750kV构架及基础";
+    public static final String JZMX_750SBZJ = "750kV设备支架及基础";
+    public static final String JZMX_500JGJC = "500kV构架及基础";
+    public static final String JZMX_500SBZJ = "500kV设备支架及基础";
+    public static final String JZMX_330JGJC = "330kV构架及基础";
+    public static final String JZMX_330SBZJ = "330kV设备支架及基础";
+    public static final String JZMX_220JGJC = "220kV构架及基础";
+    public static final String JZMX_220SBZJ = "220kV设备支架及基础";
+    public static final String JZMX_110JGJC = "110kV构架及基础";
+    public static final String JZMX_110SBZJ = "110kV设备支架及基础";
+    public static final String JZMX_66JGJC = "66kV构架及基础";
+    public static final String JZMX_66SBZJ = "66kV设备支架及基础";
+    public static final String JZMX_35JGJC = "35kV构架及基础";
+    public static final String JZMX_35SBZJ = "35kV设备支架及基础";
+    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_CLBCXT = "串联补偿系统";
+    public static final String JZMX_CLBCSBJC = "串联补偿设备平台基础";
+    public static final String JZMX_CLBCSBJG = "串联补偿设备平台结构";
+//    public static final String JZMX_GZJJJC = "构支架及基础";
+    public static final String JZMX_SBZJJJC = "设备支架及基础";
+    public static final String JZMX_DYDRQ = "低压电容器";
+    public static final String JZMX_DYDKQ= "低压电抗器";
+    public static final String JZMX_JZWGBC= "静止无功补偿装置";
+//    public static final String JZMX_GZJJJC= "构支架及基础";
+    public static final String JZMX_JZWGBCJC= "静止无功补偿装置设备基础";
+    public static final String JZMX_ZYBYQXT= "站用变压器系统";
+    public static final String JZMX_ZYBYQSBJC= "站用变压器设备基础";
+//    public static final String JZMX_FHQ= "防火墙";
+    public static final String JZMX_BLZT= "避雷针塔";
+    public static final String JZMX_DLGD= "电缆沟道";
+    public static final String JZMX_LGJDP= "栏栅及地坪";
+    public static final String JZMX_PDZZQY= "配电装置区域地面封闭";
+
+    public static final String JZMX_GSXTJZ= "供水系统建筑";
+    public static final String JZMX_ZQGSGD= "站区供水管道";
+    public static final String JZMX_ZHSBF= "综合水泵房";
+    public static final String JZMX_SJ= "深井";
+    public static final String JZMX_XSC= "蓄水池";
+
+    public static final String JZMX_XFXT= "消防系统";
+    public static final String JZMX_XFSBF= "消防水泵房";
+    public static final String JZMX_YLFS= "雨淋阀室";
+    public static final String JZMX_ZQXFGD= "站区消防管道";
+    public static final String JZMX_XFQC= "消防器材";
+    public static final String JZMX_TSXFXT= "特殊消防系统";
+    public static final String JZMX_XFSC= "消防水池";
+
+    public static final String JZMX_FZSCGC= "辅助生产工程";
+    public static final String JZMX_FZSCJZ= "辅助生产建筑";
+    public static final String JZMX_ZHL= "综合楼";
+    public static final String JZMX_JWS= "警卫室";
+    public static final String JZMX_YSBF= "雨水泵房";
+
+    public static final String JZMX_ZQXJZ= "站区性建筑";
+    public static final String JZMX_CDPZ= "场地平整";
+    public static final String JZMX_ZQDLJGC= "站区道路及广场";
+    public static final String JZMX_ZQPS= "站区排水";
+    public static final String JZMX_WQJDM= "围墙及大门";
+
+    public static final String JZMX_TSGZW= "特殊构筑物";
+    public static final String JZMX_DTQJDSQ= "挡土墙及挡水墙";
+    public static final String JZMX_FHPSG= "防洪排水沟";
+    public static final String JZMX_HP= "护坡";
+
+    public static final String JZMX_ZQLH= "站区绿化";
+
+    public static final String JZMX_ZZDXGC= "与站址有关的单项工程";
+    public static final String JZMX_DJCL= "地基处理";
+    public static final String JZMX_ZWDL= "站外道路";
+    public static final String JZMX_ZWSY= "站外水源";
+    public static final String JZMX_ZWPS= "站外排水";
+    public static final String JZMX_SGJS= "施工降水";
+    public static final String JZMX_LSGC= "临时工程";
+
+
+    public static final String AZMX_BDZAZ= "变电站安装工程";
+    public static final String AZMX_ZYSCGC= "主要生产工程";
+
+    public static final String AZMX_ZBYQXT= "主变压器系统";
+    public static final String AZMX_ZBYQ= "主变压器";
+
+    public static final String AZMX_PDZZ= "配电装置";
+    public static final String AZMX_WLPDZZ= "屋内配电装置";
+    public static final String AZMX_WWPDZZ= "屋外配电装置";
+
+    public static final String AZMX_WGBC= "无功补偿";
+    public static final String AZMX_GYDKQ= "高压电抗器";
+    public static final String AZMX_GDGYDKQ= "固定高压电抗器";
+    public static final String AZMX_KKGYDKQ= "可控高压电抗器";
+    public static final String AZMX_CLBCZZ= "串联补偿装置";
+    public static final String AZMX_GDCLDKQ= "固定串联补偿装置";
+    public static final String AZMX_KKCLDKQ= "可控串联补偿装置";
+    public static final String AZMX_DYDRQ= "低压电容器";
+    public static final String AZMX_DYDKQ= "低压电抗器";
+    public static final String AZMX_JZWGBCZZ= "静止无功补偿装置";
+
+    public static final String AZMX_KZJZLXT= "控制及直流系统";
+    public static final String AZMX_JSJJKXT= "计算机监控系统";
+    public static final String AZMX_JDBH= "继电保护";
+    public static final String AZMX_JLXTUPS= "直流系统及不间断电源";
+    public static final String AZMX_ZLFZXI= "智能辅助控制系统";
+    public static final String AZMX_ZXJKXT= "在线监测系统";
+
+    public static final String AZMX_ZYDXT= "站用电系统";
+    public static final String AZMX_ZYBYQ= "站用变压器";
+    public static final String AZMX_ZYPDZZ= "站用配电装置";
+    public static final String AZMX_ZQZM= "站区照明";
+
+    public static final String AZMX_DLJJD= "电缆及接地";
+    public static final String AZMX_QZDL= "全站电缆";
+    public static final String AZMX_DLDL= "电力电缆";
+    public static final String AZMX_KZDL= "控制电缆";
+    public static final String AZMX_DLFZSS= "电缆辅助设施";
+    public static final String AZMX_DLFH= "电缆防火";
+    public static final String AZMX_QZJD= "全站接地";
+
+    public static final String AZMX_TXJYDXT= "通信及远动系统";
+    public static final String AZMX_TXXT= "通信系统";
+    public static final String AZMX_YDJJFXT= "远动及计费系统";
+
+    public static final String AZMX_QZTS= "全站调试";
+    public static final String AZMX_FXTTS= "分系统调试";
+    public static final String AZMX_ZTQDTS= "整套启动调试";
+    public static final String AZMX_TSXMTS= "特殊项目调试";
+
+    public static final String AZMX_FZSCGC= "辅助生产工程";
+    public static final String AZMX_JXJXPSB= "检修及修配设备";
+    public static final String AZMX_SYSB= "试验设备";
+    public static final String AZMX_SF6CLSB= "油及SF6处理设备";
+    public static final String AZMX_ZZDXGC= "与站址有关的单项工程";
+    public static final String AZMX_ZWDY= "站外电源";
+    public static final String AZMX_ZWDYXL= "站外电源线路";
+    public static final String AZMX_ZWDYJG= "站外电源间隔";
+    public static final String AZMX_ZWTX= "站外通信";
+    public static final String AZMX_ZWTXXL= "站外通信线路";
+
+
+
+    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 = "安全文明施工费";
+    public static final String GF_WXZY = "危险作业意外伤害保险费";
+    public static final String QT_SGCDZY = "施工场地租用费";
+    public static final String QT_ZBDL = "招标代理";
+    public static final String QT_HJ = "合计";
+    public static final String QT_XJ = "小计";
+    public static final String BZZSSL = "补增值税税率调整差额";
+    public static final String KJJGCC = "扣减甲供材超供材料费";
+    public static final String KJYJSG = "扣夜间施工增加费";
+    public static final String GCJS = "工程结算价";
+    public static final String TBJG = "竣工结算价合计";
+    public static final String TBJG1 = "投标报价";
+    public static final String CE = "差额";
+    public static final String CS_JZ = "建筑措施项目";
+    public static final String CS_JZ_1 = "一";
+    public static final String CS_AZ = "安装措施项目";
+    public static final String GF_AZ = "安装规费项目";
+
+
+    public static final String DLJZ = "电缆建筑";
+    public static final String DLAZ = "电缆安装";
+
+    public static final String HZ_JZGC = "建筑工程";
+    public static final String HZ_AZGC = "安装工程";
+
+
+    public static final String TZ_RGF = "人工费";
+    public static final String TZ_CBRCG = "承包分采购";
+    public static final String TZ_FBRCG = "发包人采购";
+    public static final String TZ_JX = "机械费";
+    public static final String TZ_CSF1 = "措施费-1";
+    public static final String TZ_CSF2 = "措施费-2";
+    public static final String TZ_CSF3 = "措施费二";
+    public static final String TZ_QTF = "其他费";
+    public static final String TZ_GF = "规费";
+    public static final String TZ_SF = "税费";
+
+    public static final String JS_FBFX="分部分项工程费";
+    public static final String JS_CBRF="承包人采购设备费";
+    public static final String JS_CSXM="措施项目费";
+    public static final String JS_QTXM="其他项目费";
+    public static final String JS_GF="规费";
+    public static final String JS_SJ="税金";
+    public static final String JS_FBRF="发包人采购材料费";
+    public static final String JS_JGJS="竣工结算价合计";
+    public static final String JS_BZZS="补增值税税率调整差额";
+    public static final String JS_KJJG="扣减甲供材超供材料费";
+    public static final String JS_GCJS="工程结算价";
+    public static final String JS_REASON="数据核验正确";
+
+
+    //主要生产建筑
+    public static String[] ZYSCWBS = {"21110000","21111000","21112000","21113000","21114000","21115000","21116000","21117000","21118000","21119000"
+            ,"2111A000","2111B000","2111C000","2111D000","2111F000","2111G000","2111H000","2111J000","2111K000", "2111L000","2111M000",
+            "2111N000","211P000","211Q000","211R000"};
+    public static String[] ZYSCJZSTR = {JZMX_ZYSCJZ,JZMX_ZKTXL,JZMX_1000JDS,JZMX_750JDS,JZMX_500JDS,JZMX_330JDS,JZMX_220JDS,JZMX_110JDS,JZMX_66JDS,JZMX_35JDS,JZMX_ZYPDZZS,JZMX_1000PDZZS,JZMX_750PDZZS,
+            JZMX_500PDZZS,JZMX_330PDZZS,JZMX_220PDZZS,JZMX_110PDZZS,JZMX_66PDZZS,JZMX_35PDZZS,JZMX_10PDZZS,JZMX_GDCLBC,JZMX_KKGYDKQ,JZMX_KKCLBCZZ,JZMX_JZWGBCZZ};
+
+
+
+    //供水系统建筑
+    public static String[] GSXTWBS = {"21130000","21131000","21133000","21134000","21135000"};
+    public static String[] GSXTSTR = {JZMX_GSXTJZ,JZMX_ZQGSGD,JZMX_ZHSBF,JZMX_SJ,JZMX_XSC};
+
+    //消防系统
+    public static String[] XFXTWBS = {"21140000","21141000","21142000","21143000","21144000","21145000","21146000"};
+    public static String[] XFXTSTR = {JZMX_XFXT,JZMX_XFSBF,JZMX_YLFS,JZMX_ZQXFGD,JZMX_XFQC,JZMX_TSXFXT,JZMX_XFSC};
+
+    //辅助生产建筑
+    public static String[] FZSCWBS = {"21210000","21211000","21212000","1213000"};
+    public static String[] FZSCSTR = {JZMX_FZSCJZ,JZMX_ZHL,JZMX_JWS,JZMX_YSBF};
+
+
+    //站区性建筑
+    public static String[] ZQXWBS = {"21220000","21221000","21222000","21223000","21224000"};
+    public static String[] ZQXSTR = {JZMX_ZQXJZ,JZMX_CDPZ,JZMX_ZQDLJGC,JZMX_ZQPS,JZMX_WQJDM};
+
+    //特殊构筑物
+    public static String[] TXGJWWBS = {"21230000","21231000","21232000","21233000"};
+    public static String[] TXGJWSTR = {JZMX_TSGZW,JZMX_DTQJDSQ,JZMX_FHPSG,JZMX_HP};
+
+
+    //与站址有关的单项工程
+    public static String[] YDZYGWBS = {"21300000","21310000","21320000","21330000","21340000","21350000","21360000"};
+    public static String[] YDZYGSTR = {JZMX_ZZDXGC,JZMX_DJCL,JZMX_ZWDL,JZMX_ZWSY,JZMX_ZWPS,JZMX_SGJS,JZMX_LSGC};
+
+
+
+    //主变压器系统
+    public static String[] ZBYQWBS = {"23110000","23111000"};
+    public static String[] ZBYQSTR = {AZMX_ZBYQXT,AZMX_ZBYQ};
+
+    //配电装置
+    public static String[] PDZZWBS = {"23120000","23121000","23122000"};
+    public static String[] PDZZSTR = {AZMX_PDZZ,AZMX_WLPDZZ,AZMX_WWPDZZ};
+
+    //无功补偿
+    public static String[] WGBCWBS = {"23130000","23131000","23131100","23131200","23132000","23132100","23132200","23133000","23134000","23135000"};
+    public static String[] WGBCSTR = {AZMX_WGBC,AZMX_GYDKQ,AZMX_GDGYDKQ,AZMX_KKGYDKQ,AZMX_CLBCZZ,AZMX_GDCLDKQ,AZMX_KKCLDKQ,AZMX_DYDRQ,AZMX_DYDKQ,AZMX_JZWGBCZZ};
+
+    //控制及直流系统
+    public static String[] KZZLWBS = {"23140000","23141000","23142000","23143000","23144000","23145000"};
+    public static String[] KZZLSTR = {AZMX_KZJZLXT,AZMX_JSJJKXT,AZMX_JDBH,AZMX_JLXTUPS,AZMX_ZLFZXI,AZMX_ZXJKXT};
+
+    //站用电系统
+    public static String[] ZYDWBS = {"23150000","23151000","23152000","23153000"};
+    public static String[] ZYDSTR = {AZMX_ZYDXT,AZMX_ZYBYQ,AZMX_ZYPDZZ,AZMX_ZQZM};
+
+    //电缆及接地
+    public static String[] DLJDWBS = {"23160000","23161000","23161100","23161200","23161300","23161400","23162000"};
+    public static String[] DLJDSTR = {AZMX_DLJJD,AZMX_QZDL,AZMX_DLDL,AZMX_KZDL,AZMX_DLFZSS,AZMX_DLFH,AZMX_QZJD};
+
+    //通信及远动系统
+    public static String[] TXYDWBS = {"23170000","23171000","23172000"};
+    public static String[] TXYDSTR = {AZMX_TXJYDXT,AZMX_TXXT,AZMX_YDJJFXT};
+
+    //全站调试
+    public static String[] QZTSWBS = {"23180000","23181000","23182000","23183000"};
+    public static String[] QZTSSTR = {AZMX_QZTS,AZMX_FXTTS,AZMX_ZTQDTS,AZMX_TSXMTS};
+
+    //辅助生产工程
+    public static String[] AFZSCWBS = {"23200000","23210000","23220000","23230000"};
+    public static String[] AFZSCSTR = {AZMX_FZSCGC,AZMX_JXJXPSB,AZMX_SYSB,AZMX_SF6CLSB};
+
+    //站外电源
+    public static String[] ZWDYWBS = {"23310000","23311000","23312000"};
+    public static String[] ZWDYSTR = {AZMX_ZWDY,AZMX_ZWDYXL,AZMX_ZWDYJG};
+
+    //站外通信
+    public static String[] ZWTXWBS = {"23320000","23321000"};
+    public static String[] ZWTXSTR = {AZMX_ZWTX,AZMX_ZWTXXL};
+
+
+    /**
+     * 获取基础数据
+     */
+    public static JkxlDetailFee getBashInfo(ImportExcel importExcel,ImportExcel importExcel1,String wbs,String str){
+        double[] doubles = ExcelUtil.getDoubleArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
+        double d = ExcelUtil.getDouble(importExcel1,str,1,3);  //直接工程费
+        JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
+        jkxlDetailFee.setWbsCode(wbs);
+        jkxlDetailFee.setOriginalTotalCost(doubles[0]);
+        jkxlDetailFee.setOriginalRgCost(doubles[1]);
+        jkxlDetailFee.setOriginalFbrCost(doubles[2]);
+        jkxlDetailFee.setOriginalCbrCost(doubles[3]);
+        jkxlDetailFee.setOriginalJxCost(doubles[4]);
+        jkxlDetailFee.setZjgcFee(d);
+        return jkxlDetailFee;
+    }
+
+
+    /**
+     *
+     */
+    public static List<JkxlDetailFee> getBashInfo(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
+        double[][] doubles = ExcelUtil.getDoubleArrays(importExcel,str,2,new int[]{12,13, 14, 15, 17});
+        List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
+        JkxlDetailFee jkxlDetailFee = null;
+        for(int i=0;i<str.length;i++){
+            double d = ExcelUtil.getDouble(importExcel1,str[i],1,3);  //直接工程费
+            jkxlDetailFee = new JkxlDetailFee();
+            jkxlDetailFee.setWbsCode(wbs[i]);
+            jkxlDetailFee.setOriginalTotalCost(doubles[i][0]);
+            jkxlDetailFee.setZjgcFee(d);
+            jkxlDetailFee.setOriginalRgCost(doubles[i][1]);
+            jkxlDetailFee.setOriginalFbrCost(doubles[i][2]);
+            jkxlDetailFee.setOriginalCbrCost(doubles[i][3]);
+            jkxlDetailFee.setOriginalJxCost(doubles[i][4]);
+            jkxlDetailFees.add(jkxlDetailFee);
+        }
+        return jkxlDetailFees;
+    }
+
+    /**
+     *获得基础数据,工程费分摊
+     */
+    public static List<JkxlDetailFee> getBashInfos(ImportExcel importExcel,ImportExcel importExcel1,String[] wbs,String[] str){
+         double[][] doubles = ExcelUtil.getDoubleArrays(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 = 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][2]);
+             jkxlDetailFee.setOriginalCbrCost(doubles[j][3]);
+             jkxlDetailFee.setOriginalJxCost(doubles[j][4]);
+             jkxlDetailFee.setWbsCode(wbs[j]);
+             jkxlDetailFees.add(jkxlDetailFee);
+         }
+         return jkxlDetailFees;
+    }
+
+
+    /**
+     * 建筑安装基础数据
+     */
+    public static JkxlDetailFee getTolalInfo(ImportExcel importExcel,ImportExcel importExcel1,String wbs,String str){
+        double[] doubles = ExcelUtil.getDoubleArray(importExcel,str,2,new int[]{12,13, 14, 15, 17});
+        double d = ExcelUtil.getDouble(importExcel1,QT_HJ,0,3);  //直接工程费
+        JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
+        jkxlDetailFee.setWbsCode(wbs);
+        jkxlDetailFee.setOriginalTotalCost(doubles[0]);
+        jkxlDetailFee.setOriginalRgCost(doubles[1]);
+        jkxlDetailFee.setOriginalFbrCost(doubles[2]);
+        jkxlDetailFee.setOriginalCbrCost(doubles[3]);
+        jkxlDetailFee.setOriginalJxCost(doubles[4]);
+        jkxlDetailFee.setZjgcFee(d);
+        return jkxlDetailFee;
+    }
+
+    /**
+     * 配电装置建筑基础数据
+     */
+    public static List<JkxlDetailFee> getPdzzjz(ImportExcel importExcel,ImportExcel importExcel1){
+        String[] wbsIds = {"21120000","21121000","21121100","21121200","21121300","21121400","21121500"};
+        String[] str = {JZMX_PDZZJZ,JZMX_ZBYQXT,JZMX_GZJJJC,JZMX_ZBYQJC,JZMX_ZBYQYK,JZMX_FHQ,JZMX_SGYC};
+        double d = ExcelUtil.getDouble(importExcel1,JZMX_PDZZJZ,1,3);  //直接工程费
+
+        return null;
+    }
+
+
+    /**
+     * 建筑工程措施费2
+     */
+    public static double getCsJzFee(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,2);
+            if(!type.contains(CS_JZ)){
+                return d;
+            }
+        }
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.equals(CS_JZ_1)){
+                d = importExcel.getDouble(i+1,10);
+                break;
+            }
+        }
+        return d;
+    }
+
+
+    /**
+     * 安装工程措施费2
+     */
+    public static double getCsAzFee(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,2);
+            if(!type.contains(CS_AZ)){
+                return d;
+            }
+        }
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.equals(CS_JZ_1)){
+                d = importExcel.getDouble(i+1,10);
+            }
+        }
+        return d;
+    }
+
+
+    /**
+     * 获取电缆建筑工程措施费率
+     */
+     public static double getJzRate(ImportExcel importExcel){
+         int lastRow = importExcel.getLastDataRowNum();
+         double rate = 0.00;
+         for(int i=2;i<lastRow;i++){
+             String type = importExcel.getValue(i+1,1);
+             if(type.equals(CS_AZ)){
+                 break;
+             }
+             rate += importExcel.getDouble(i+1,3);
+         }
+       return rate/100;
+     }
+
+    /**
+     * 获取电缆安装工程措施费率
+     */
+    public static double[] getAzRate(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        int azRow = 0;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals(CS_AZ)){
+                azRow = i+1;
+                break;
+            }
+        }
+        double lsRate = 0.00;
+        double aqRate = 0.00;
+        double totalRate = 0.00;
+        for(int i=azRow;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals(CS_LS)){
+                lsRate = importExcel.getDouble(i+1,3);
+            }
+            if(type.equals(CS_AQWM)){
+                aqRate = importExcel.getDouble(i+1,3);
+            }
+            totalRate += importExcel.getDouble(i+1,3);
+        }
+        double[] rate = new double[2];
+        rate[0] = (lsRate+aqRate)/100;
+        rate[1] = (totalRate-lsRate-aqRate)/100;
+        return  rate;
+    }
+
+
+
+    /**
+     *架空线路获取规费率
+     */
+    public static double[] getGfRate(ImportExcel importExcel) {
+        int lastRow = importExcel.getLastDataRowNum();
+        double totalRate = 0.00;
+        double wxzyRate = 0.00;
+        for (int i = 2; i < lastRow; i++) {
+            String type = importExcel.getValue(i + 1, 1);
+            if (type.equals(GF_WXZY)) {
+                wxzyRate = importExcel.getDouble(i + 1, 3);
+            }
+            if (!importExcel.getValue(i + 1, 2).equals("")) {
+                totalRate += importExcel.getDouble(i + 1, 3);
+            }
+        }
+        double[] rate = new double[2];
+        rate[0] = wxzyRate / 100;
+        rate[1] = (totalRate - wxzyRate) / 100;
+        return rate;
+    }
+
+    /**
+     *电缆建筑获取规费率
+     */
+    public static double[] getJzGfRate(ImportExcel importExcel) {
+        int lastRow = importExcel.getLastDataRowNum();
+        double totalRate = 0.00;
+        double wxzyRate = 0.00;
+        for (int i = 2; i < lastRow; i++) {
+            String type = importExcel.getValue(i + 1, 1);
+            if (type.equals(GF_WXZY)) {
+                wxzyRate = importExcel.getDouble(i + 1, 3);
+            }
+            if (!importExcel.getValue(i + 1, 2).equals("")) {
+                totalRate += importExcel.getDouble(i + 1, 3);
+            }
+            if(type.equals(GF_AZ)){
+                break;
+            }
+        }
+        double[] rate = new double[2];
+        rate[0] = wxzyRate / 100;
+        rate[1] = (totalRate - wxzyRate) / 100;
+        return rate;
+    }
+
+    /**
+     *电缆安装获取规费率
+     */
+    public static double[] getAzGfRate(ImportExcel importExcel) {
+        int lastRow = importExcel.getLastDataRowNum();
+        int azRow = 0;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals(GF_AZ)){
+                azRow = i+1;
+                break;
+            }
+        }
+        double totalRate = 0.00;
+        double wxzyRate = 0.00;
+        for (int i = azRow; i < lastRow; i++) {
+            String type = importExcel.getValue(i + 1, 1);
+            if (type.equals(GF_WXZY)) {
+                wxzyRate = importExcel.getDouble(i + 1, 3);
+            }
+            if (!importExcel.getValue(i + 1, 2).equals("")) {
+                totalRate += importExcel.getDouble(i + 1, 3);
+            }
+        }
+        double[] rate = new double[2];
+        rate[0] = wxzyRate / 100;
+        rate[1] = (totalRate - wxzyRate) / 100;
+        return rate;
+    }
+
+    /**
+     * 获取其他费用
+     */
+    public static double[] getQtFees(ImportExcel importExcel) {
+        int lastRow = importExcel.getLastDataRowNum();
+        double cdFree = 0.00;
+        double zbFree = 0.00;
+        double totalFree = 0.00;
+        for(int i=2;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            String type1 = importExcel.getValue(i+1,0);
+            if(type.equals(QT_SGCDZY)){
+                cdFree = importExcel.getDouble(i+1,2);
+                continue;
+            }
+            if(type.contains(QT_ZBDL)){
+                zbFree = importExcel.getDouble(i+1,2);
+                continue;
+            }
+            if(type1.equals(QT_HJ)){
+                totalFree = importExcel.getDouble(i+1,2);
+                continue;
+            }
+        }
+        double[] rate = new double[3];
+        rate[0] = cdFree;
+        rate[1] = zbFree;
+        rate[2] = totalFree-cdFree-zbFree;
+        return  rate;
+    }
+
+    /**
+     * 获取发包人安装费
+     * @param importExcel
+     * @return
+     */
+    public static double getFbrAzFee(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,0);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.equals(QT_XJ)){
+                d = importExcel.getDouble(i+1,6);
+            }
+        }
+        return d;
+    }
+
+
+    public static double[] getAqwfAzFee(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        double e = 0.00;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals("")){
+                continue;
+            }
+            if(type.equals(CS_AQWM)){
+                d = importExcel.getDouble(i+1,3);
+                e = importExcel.getDouble(i+1,4);
+            }
+        }
+        double[] r = new double[2];
+        r[0] = d;
+        r[1] = e;
+
+        return r;
+    }
+
+    /**
+     * 获取工程结算价
+     */
+    public static double getGcjsFee(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double gcjs = 0.00;
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,1);
+            if(type.equals(SubstationInfo.TBJG) || type.equals(SubstationInfo.GCJS)){
+                gcjs = importExcel.getDouble(i+1,2);
+            }
+        }
+        return  gcjs;
+
+    }
+    /*
+     获取《工程项目竣工结算汇总表》匹配数据
+    */
+    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;
+            }
+            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);
+                    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);
+                    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);
+                    break;
+                case SubstationInfo.JS_SJ:
+
+                    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;
+    }
+}