蔡德晨 5 år sedan
förälder
incheckning
7b436d3130

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

@@ -213,6 +213,22 @@ public class ExcelUtil {
         return rate;
     }
 
+    /**
+     * 读取发包人采购
+     */
+    public static double getFbr(ImportExcel importExcel){
+        double rate = 0.00;
+        int lastRow = importExcel.getLastDataRowNum();
+        for(int i=2;i<lastRow;i++){
+            String st = importExcel.getValue(i+1,1);
+            if(st.contains("发包人采购") || st.contains("招标人采购")){
+                rate = importExcel.getDouble(i+1,2);
+                break;
+            }
+        }
+        return rate;
+    }
+
 
     /**
      * 读取人工调差系数

+ 97 - 16
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -245,11 +245,14 @@ public List<JkxlDetailFee> findList(String id,String type){
         //数据核验数据
         List<Settlement> settlementList =  SettementUtil.getComparison(total);
        double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
-       double wordtotal1 =  ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表一
+//       double wordtotal1 =  ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表一
+       double wordtotal1 =  BashInfo.getJkCs(csqd);//获取措施费清单计价表一
        double otherTotal =  ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
         double cbperson =  0.0;
        double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,new int[]{12,15});//获取分部分项比对数据清单
-       double feescount =  ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4);//获取规费合计
+//        divisiontotal[0] = divisiontotal[0]+csxmHj;
+        double gfFees = BashInfo.getJkGf(gf); //规费
+//       double feescount =  ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4);//获取规费合计
        //数据核验并保存数据库
         double wordtotal2 =  0.0;  //措施费二合计
         if(ImportExcel.getSheet(csqd2) != null){
@@ -266,13 +269,11 @@ public List<JkxlDetailFee> findList(String id,String type){
             cbperson = ExcelUtil.getDouble(cbrsb,BashInfo.QT_HJ,0,6);//承包人合计
         }
         double cbrfee = ExcelUtil.getDouble(total,BashInfo.QT_CBRSB,1,2);
-       double csFee = ExcelUtil.getDouble(gzhz,BashInfo.HZ_CH,1,2);
        double[] originalTotalFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,2); //获取合计费
        double[] zjgcFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,3);  //获取直接工程费
        double[][] originalFees = ExcelUtil.getDoubleArrays(importExcel,BashInfo.MX_ALL,2, new int[]{13, 14, 15, 17}); //获取原始费用
        double texRate = ExcelUtil.getTexRate(total); //获取税率
 //        double rgRate = ExcelUtil.getRgRate(zyrg);   //获取人工调差系数
-       double totalFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,12);  //获取架空线路合计金额
        double totalRgFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,13);  //获取人工费合计金额
        double[] csRate = BashInfo.getCsRate(csqd); //获取措施费率
 //       double[] gfRate = BashInfo.getGfRate(gf);  //获取规费率
@@ -285,15 +286,25 @@ public List<JkxlDetailFee> findList(String id,String type){
        double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
        double jxsl = zg/(fbrFee-zg); //进项税率
        double csFees = BashInfo.getCsFee(csqd); //安装措施费
-       double gfFees = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4); //规费
+//       double gfFees = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4); //规费
+
        //结算汇总
-        List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,feescount,cbperson);
+        List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,gfFees,cbperson);
         Boolean f = SettementUtil.getFlag;
         settlementService.save(settlements,id);
         //获取结算表中基础数据
         double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
         double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
-        double textotal = ExcelUtil.getTex(total);
+        double textotal = ExcelUtil.getTex(total); //获取税金
+        double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
+        //措施项目
+        double csxmHj = ExcelUtil.getDouble(gzhz,BashInfo.HZ_CH,1,2);//措施项目合计
+        double[] csxmFees = ExcelUtil.getDoubleArray(importExcel,BashInfo.CS,2,new int[]{13, 14, 15, 17});//措施项目费
+        originalTotalFees[5] = originalTotalFees[5] + csxmHj;
+        originalFees[5][0] = originalFees[5][0] + csxmFees[0];
+        originalFees[5][1] = originalFees[5][1] + csxmFees[1];
+        originalFees[5][2] = originalFees[5][2] + csxmFees[2];
+        originalFees[5][3] = originalFees[5][3] + csxmFees[3];
        //将本体工程费用明细存入集合
        List<JkxlDetailFee> list = new ArrayList<>();
        for(int i=0;i<originalTotalFees.length;i++){
@@ -301,7 +312,7 @@ public List<JkxlDetailFee> findList(String id,String type){
            double totalfee = 0.00;  //合计
            JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
            double originalTotalCost = originalTotalFees[i]; //原合计
-           double otherRate = originalTotalCost/totalFee;   //其他费用分摊比例
+           double otherRate = originalTotalCost/builtTotal;   //其他费用分摊比例
            double orRate = new BigDecimal(otherRate).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); //四舍五入
            double otherFee = qtFees[2]*otherRate;  //其他费用
            double zjgcFee = zjgcFees[i];//直接工程费
@@ -421,6 +432,22 @@ public List<JkxlDetailFee> findList(String id,String type){
             jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
 
         }
+        //分摊发包人
+        if(f){
+            double fbrfee = 0.00;
+            for(JkxlDetailFee jkxlDetailFee : list){
+                fbrfee += jkxlDetailFee.getOriginalFbrCost();
+            }
+            double cs = fbrFees-fbrfee;
+            if(cs!=0.00) {
+                for (JkxlDetailFee jkxlDetailFee1 : list) {
+                    double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                    jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                    jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                }
+            }
+
+        }
         //计算差额
         for(JkxlDetailFee jkxlDetailFee : list){
             tz += jkxlDetailFee.getTotalFee();
@@ -456,13 +483,6 @@ public List<JkxlDetailFee> findList(String id,String type){
        jkxlAdjustFee2.setType(BashInfo.CE);
        jkxlAdjustFee2.setFee(gxFee);
        feeAdjustService.save(jkxlAdjustFee2);
-       if(csFee!= 0.00){
-           JkxlAdjustFee jkxlAdjustFee3 = new JkxlAdjustFee();
-           jkxlAdjustFee3.setId(id);
-           jkxlAdjustFee3.setType(BashInfo.HZ_CH);
-           jkxlAdjustFee3.setFee(csFee);
-           feeAdjustService.save(jkxlAdjustFee3);
-       }
    }
 
     //电缆线路保存数据
@@ -535,6 +555,7 @@ public List<JkxlDetailFee> findList(String id,String type){
         double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
         double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
         double textotal = ExcelUtil.getTex(total);
+        double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
         List<JkxlDetailFee> list = new ArrayList<>();
         if(jzgc !=0.00 && azgc == 0.00){
             ImportExcel jzqd = new ImportExcel(file,1,BashInfo.SHEET_JZFBFXJJ,true);  //建筑分部分项工程量清单计价表
@@ -556,6 +577,14 @@ public List<JkxlDetailFee> findList(String id,String type){
                 double zgJz = zjgcJzTotal-(aqwmJzFees[1]/(aqwmJzFees[0]/100));
                 jxslJz = zgJz/(fbrJzFee-zgJz); //建筑进项税率
             }
+            //措施项目
+            double csxmHj = ExcelUtil.getDouble(jzhz,BashInfo.HZ_CH,1,2);//措施项目合计
+            double[] csxmFees = ExcelUtil.getDoubleArray(jzqd,BashInfo.CS,2,new int[]{13, 14, 15, 17});//措施项目费
+            originalTotalJzFees[2] = originalTotalJzFees[2] + csxmHj;
+            originalJzFees[2][0] = originalJzFees[2][0] + csxmFees[0];
+            originalJzFees[2][1] = originalJzFees[2][1] + csxmFees[1];
+            originalJzFees[2][2] = originalJzFees[2][2] + csxmFees[2];
+            originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
             //电缆结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
             Boolean f = SettementUtil.getFlag;
@@ -602,7 +631,21 @@ public List<JkxlDetailFee> findList(String id,String type){
                 jkxlDetailFee.setId(id);
                 list.add(jkxlDetailFee);
             }
-
+            //分摊发包人
+            if(f){
+               double fbrfee = 0.00;
+               for(JkxlDetailFee jkxlDetailFee : list){
+                fbrfee += jkxlDetailFee.getOriginalFbrCost();
+               }
+               double cs = fbrFees-fbrfee;
+               if(cs != 0.00) {
+                 for (JkxlDetailFee jkxlDetailFee1 : list) {
+                    double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                    jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                    jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                  }
+               }
+           }
         } else if(jzgc ==0.00 && azgc != 0.00){
             ImportExcel azqd = new ImportExcel(file,1,BashInfo.SHEET_AZFBFXJJ,true);  //安装分部分项工程量清单计价表
             ImportExcel azhz = new ImportExcel(file,1,BashInfo.SHEET_HZHZB ,true);   //电缆线路安装工程费用汇总表
@@ -673,6 +716,21 @@ public List<JkxlDetailFee> findList(String id,String type){
                 jkxlDetailFee.setId(id);
                 list.add(jkxlDetailFee);
             }
+            //分摊发包人
+            if(f){
+                double fbrfee = 0.00;
+                for(JkxlDetailFee jkxlDetailFee : list){
+                    fbrfee += jkxlDetailFee.getOriginalFbrCost();
+                }
+                double cs = fbrFees-fbrfee;
+                if(cs != 0.00) {
+                    for (JkxlDetailFee jkxlDetailFee1 : list) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                }
+            }
 
         } else {
             ImportExcel jzqd = new ImportExcel(file, 1, BashInfo.SHEET_JZFBFXJJ,true);  //建筑分部分项工程量清单计价表
@@ -712,6 +770,14 @@ public List<JkxlDetailFee> findList(String id,String type){
                     double zgAz = zjgcAzTotal - (aqwmAzFees[1] / (aqwmAzFees[0] / 100));
                     jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
             }
+            //措施项目
+            double csxmHj = ExcelUtil.getDouble(jzhz,BashInfo.HZ_CH,1,2);//措施项目合计
+            double[] csxmFees = ExcelUtil.getDoubleArray(jzqd,BashInfo.MX_CSXM,2,new int[]{13, 14, 15, 17});//措施项目费
+            originalTotalJzFees[2] = originalTotalJzFees[2] + csxmHj;
+            originalJzFees[2][0] = originalJzFees[2][0] + csxmFees[0];
+            originalJzFees[2][1] = originalJzFees[2][1] + csxmFees[1];
+            originalJzFees[2][2] = originalJzFees[2][2] + csxmFees[2];
+            originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
 
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
             Boolean f = SettementUtil.getFlag;
@@ -802,6 +868,21 @@ public List<JkxlDetailFee> findList(String id,String type){
                 jkxlDetailFee.setId(id);
                 list.add(jkxlDetailFee);
             }
+            //分摊发包人
+            if(f){
+                double fbrfee = 0.00;
+                for(JkxlDetailFee jkxlDetailFee : list){
+                    fbrfee += jkxlDetailFee.getOriginalFbrCost();
+                }
+                double cs = fbrFees-fbrfee;
+                if(cs != 0.00) {
+                    for (JkxlDetailFee jkxlDetailFee1 : list) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                }
+            }
         }
         double tz = 0.00; //总合计金额
         double texTotal = 0.00; //税合计金额

+ 78 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/util/BashInfo.java

@@ -43,10 +43,12 @@ public class BashInfo {
     public static final String JXGC = "4 架线工程";
     public static final String FJAZGC = "5 附件安装工程";
     public static final String FZGC = "6 辅助工程";
+    public static final String CS = "7 措施项目";
 
     public static final String MX_TSF = "1 土石方";
     public static final String MX_GZW = "2 构筑物";
     public static final String MX_FZGC = "3 辅助工程";
+    public static final String MX_CSXM = "4 措施项目";
     public static final String MX_DLQ = "1 电缆桥、支架制作安装";
     public static final String MX_DLFS = "2 电缆敷设";
     public static final String MX_DLFJ = "3 电缆附件";
@@ -248,6 +250,82 @@ public class BashInfo {
      }
 
     /**
+     * 架空线路规费合计
+     * @param importExcel
+     * @return
+     */
+    public static double getJkCs(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        List list = new ArrayList();
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,0);
+            list.add(type);
+        }
+        if(!list.contains(QT_HJ)){
+            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,4);
+                }
+            }
+        }else {
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 0);
+                if (type.equals("")) {
+                    continue;
+                }
+                if (type.equals(QT_HJ)) {
+                    d = importExcel.getDouble(i + 1, 4);
+                    break;
+                }
+            }
+        }
+        return d;
+    }
+
+    /**
+     * 架空线路规费合计
+     * @param importExcel
+     * @return
+     */
+    public static double getJkGf(ImportExcel importExcel){
+        int lastRow = importExcel.getLastDataRowNum();
+        double d = 0.00;
+        List list = new ArrayList();
+        for(int i=0;i<lastRow;i++){
+            String type = importExcel.getValue(i+1,0);
+            list.add(type);
+        }
+        if(!list.contains(QT_HJ)){
+            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,4);
+                }
+            }
+        }else {
+            for (int i = 0; i < lastRow; i++) {
+                String type = importExcel.getValue(i + 1, 0);
+                if (type.equals("")) {
+                    continue;
+                }
+                if (type.equals(QT_HJ)) {
+                    d = importExcel.getDouble(i + 1, 4);
+                    break;
+                }
+            }
+        }
+        return d;
+    }
+
+    /**
      * 获取电缆安装工程措施费率
      */
     public static double[] getAzRate(ImportExcel importExcel){

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

@@ -135,6 +135,7 @@ public class SubstationService {
        double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
        double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
        double textotal = ExcelUtil.getTex(total);
+       double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
         if(jzgc !=0.00 && azgc != 0.00){
             ImportExcel jzqd = new ImportExcel(file, 1, SubstationInfo.SHEET_JZFBFXJJ,true);  //建筑分部分项工程量清单计价表
             ImportExcel azqd = new ImportExcel(file, 1, SubstationInfo.SHEET_AZFBFXJJ,true);  //安装分部分项工程量清单计价表
@@ -390,6 +391,24 @@ public class SubstationService {
                 jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
 
             }
+            //分摊发包人
+            if(f){
+                double fbrfee = jzTotal.get(0).getOriginalFbrCost()+azTotal.get(0).getOriginalFbrCost();
+                double cs = fbrFees-fbrfee;
+                if(cs!=0.00) {
+                    for (JkxlDetailFee jkxlDetailFee1 : jzTotal) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                    for (JkxlDetailFee jkxlDetailFee1 : azTotal) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                }
+
+            }
             //计算差额
             double tz = jzTotal.get(0).getTotalFee()+azTotal.get(0).getTotalFee();//总合计金额
 
@@ -475,6 +494,7 @@ public class SubstationService {
             //结算汇总保存
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
             settlementService.save(settlementBdzs,id);
+            Boolean f = SettementUtil.getFlag;
             for(JkxlDetailFee jkxlDetailFee:jzTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
@@ -489,7 +509,7 @@ public class SubstationService {
                 double fees = (zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*(jzgfRate[0]+jzgfRate[1]*0.2);  //规费
 //                double tax = (originalTotalCost+measuresFee1+measuresFee2+fees+otherFee-originalFbrCost)*texRate; //税金
 //                double totalfee = originalTotalCost+measuresFee1+measuresFee2+fees+otherFee+tax-originalFbrCost; //合计
-                if(flagJz){
+                if(f){
                     tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
                     totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
                 } else {
@@ -564,6 +584,19 @@ public class SubstationService {
                 jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
 
             }
+            //分摊发包人
+            if(f){
+                double fbrfee = jzTotal.get(0).getOriginalFbrCost();
+                double cs = fbrFees-fbrfee;
+                if(cs!=0.00) {
+                    for (JkxlDetailFee jkxlDetailFee1 : jzTotal) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                }
+
+            }
             double tz = jzTotal.get(0).getTotalFee();//总合计金额
 
             if(wsbFees != null && wsbFees.size()>0){
@@ -613,11 +646,9 @@ public class SubstationService {
             double[] aqwmAzFees = BashInfo.getAqwfAzFee(csqd1);  //安装安全文明施工费
             double fbrAzFee = ExcelUtil.getDouble(azqd,SubstationInfo.AZMX_BDZAZ,2,15);
             double jxslAz = 0.00;
-            if(texRate>0.05) {
-                if (fbrAzFee != 0.00) {
+            if (fbrAzFee != 0.00) {
                     double zgAz = zjgcAzTotal - aqwmAzFees[1] / aqwmAzFees[0] * 100;
                     jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
-                }
             }
             //安装部分基础数据
             JkxlDetailFee az = SubstationInfo.getTolalInfo(azqd,azhz,"23000000",SubstationInfo.AZMX_BDZAZ);  //安装合计
@@ -652,6 +683,7 @@ public class SubstationService {
             boolean flagAz = SubstationInfo.getFlag(azTotal);
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
             settlementService.save(settlementBdzs,id);
+            Boolean f = SettementUtil.getFlag;
             for(JkxlDetailFee jkxlDetailFee:azTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
@@ -670,7 +702,7 @@ public class SubstationService {
                 double fees = azGf*rateRg;  //规费
 //                double tax = (originalTotalCost+measuresFee1+measuresFee2+fees+otherFee-originalFbrCost)*texRate; //税金
 //                double totalfee = originalTotalCost+measuresFee1+measuresFee2+fees+otherFee+tax-originalFbrCost; //合计
-                if(flagAz){
+                if(f){
                     tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
                     totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
                 } else {
@@ -742,7 +774,18 @@ public class SubstationService {
                 jkxlDetailFee.setTex(jkxlDetailFee.getTex()+tex);
                 jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
             }
+            if(f){
+                double fbrfee = azTotal.get(0).getOriginalFbrCost();
+                double cs = fbrFees-fbrfee;
+                if(cs!=0.00) {
+                    for (JkxlDetailFee jkxlDetailFee1 : azTotal) {
+                        double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
+                        jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
+                        jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
+                    }
+                }
 
+            }
             double tz = azTotal.get(0).getTotalFee();//总合计金额
 
             if(wsbFees != null && wsbFees.size()>0){