ソースを参照

Merge remote-tracking branch 'origin/master'

xs 5 年 前
コミット
50bf542ebd

+ 32 - 26
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -347,16 +347,6 @@ public List<JkxlDetailFee> findList(String id,String type){
         for(JkxlDetailFee jkxlDetailFee : list){
            texTotal += jkxlDetailFee.getTex();
         }
-        //补税
-        if(btex != 0.00){
-            for(JkxlDetailFee jkxlDetailFee : list){
-                double tex = jkxlDetailFee.getTex();
-                double total1 = jkxlDetailFee.getTotalFee();
-                double rate = tex/texTotal;
-                jkxlDetailFee.setTex(tex+btex*rate);
-                jkxlDetailFee.setTotalFee(total1+btex*rate);
-            }
-        }
         //其他费用补税
         if(qtFees[0]+qtFees[1] != 0.00) {
             for (JkxlDetailFee jkxlDetailFee : list) {
@@ -368,6 +358,21 @@ public List<JkxlDetailFee> findList(String id,String type){
                 jkxlDetailFee.setTotalFee(total1 + tzTex);
             }
         }
+        //补税
+        if(btex != 0.00){
+            double tex1 = 0.00;
+            for(JkxlDetailFee jkxlDetailFee : list){
+                tex1 += jkxlDetailFee.getTex();
+            }
+            for(JkxlDetailFee jkxlDetailFee : list){
+                double tex = jkxlDetailFee.getTex();
+                double total1 = jkxlDetailFee.getTotalFee();
+                double rate = tex/tex1;
+                double tztex = btex*rate;
+                jkxlDetailFee.setTex(tex+tztex);
+                jkxlDetailFee.setTotalFee(total1+tztex);
+            }
+        }
         //承包人采购设备费
         if(cbrfee != 0.00){
             for(JkxlDetailFee jkxlDetailFee : list){
@@ -382,19 +387,17 @@ public List<JkxlDetailFee> findList(String id,String type){
         double cstotal2 = 0.00;
         double cstotal3 = 0.00;
         double gftotal = 0.00;
-        double textotal = 0.00;
         for(JkxlDetailFee jkxlDetailFee2 :list){
             cstotal1 += jkxlDetailFee2.getMeasuresFee1();
             cstotal2 += jkxlDetailFee2.getMeasuresFee2();
             cstotal3 += jkxlDetailFee2.getMeasuresFee3();
             gftotal  += jkxlDetailFee2.getFees();
-            textotal += jkxlDetailFee2.getTex();
         }
         for(JkxlDetailFee jkxlDetailFee1 : list){
            double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
            double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
            double gfft = (jsGf-gftotal)*ftRate;
-           double sgft = (jsTex-textotal)*ftRate;
+           double sgft = (csft+gfft)*texRate;
            jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
            jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
            jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+sgft);
@@ -825,16 +828,6 @@ public List<JkxlDetailFee> findList(String id,String type){
         for(JkxlDetailFee jkxlDetailFee : list){
             texTotal += jkxlDetailFee.getTex();
         }
-        //补税
-        if(btex != 0.00){
-            for(JkxlDetailFee jkxlDetailFee : list){
-                double tex = jkxlDetailFee.getTex();
-                double total1 = jkxlDetailFee.getTotalFee();
-                double rate = tex/texTotal;
-                jkxlDetailFee.setTex(tex+btex*rate);
-                jkxlDetailFee.setTotalFee(total1+btex*rate);
-            }
-        }
         //其他费用补税
         if(qtFees[0]+qtFees[1] != 0.00) {
             for (JkxlDetailFee jkxlDetailFee : list) {
@@ -846,6 +839,20 @@ public List<JkxlDetailFee> findList(String id,String type){
                 jkxlDetailFee.setTotalFee(total1 + tzTex);
             }
         }
+        //补税
+        if(btex != 0.00){
+            double tex1 = 0.00;
+            for(JkxlDetailFee jkxlDetailFee : list){
+                tex1 += jkxlDetailFee.getTex();
+            }
+            for(JkxlDetailFee jkxlDetailFee : list){
+                double tex = jkxlDetailFee.getTex();
+                double total1 = jkxlDetailFee.getTotalFee();
+                double rate = tex/tex1;
+                jkxlDetailFee.setTex(tex+btex*rate);
+                jkxlDetailFee.setTotalFee(total1+btex*rate);
+            }
+        }
         //承包人设备费
         if(cbrfee != 0.00){
             for(JkxlDetailFee jkxlDetailFee : list){
@@ -870,17 +877,16 @@ public List<JkxlDetailFee> findList(String id,String type){
             cstotal2 += jkxlDetailFee2.getMeasuresFee2();
             cstotal3 += jkxlDetailFee2.getMeasuresFee3();
             gftotal  += jkxlDetailFee2.getFees();
-//            textotal += jkxlDetailFee2.getTex();
             zjgcTotal += jkxlDetailFee2.getZjgcFee();
         }
         for(JkxlDetailFee jkxlDetailFee1 : list){
             double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
             double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
             double gfft = (jsGf-gftotal)*ftRate;
-//            double sgft = (jsTex-textotal)*ftRate;
+            double sgft = (csft+gfft)*texRate;
             jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
             jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
-//            jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+sgft);
+            jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+sgft);
             jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft);
         }
         //计算差额

+ 106 - 38
src/main/java/com/jeeplus/modules/sg/substation/service/SubstationService.java

@@ -126,6 +126,10 @@ public class SubstationService {
        double azCsFee = BashInfo.getAzCsfee(csqd1);
        //安装规费
        double azGf = BashInfo.getAzGf(gf);
+       //获取结算表中基础数据
+       double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
+       double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
+       double jsTex = ExcelUtil.getTex(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);  //安装分部分项工程量清单计价表
@@ -245,7 +249,7 @@ public class SubstationService {
                  double measuresFee3 = csJzFee*rateCs; //措施费二
                  double otherFee =qtFees[2]*rateQt; //其他费用
                  double fees = (zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*(jzgfRate[0]+jzgfRate[1]*0.2);  //规费
-                if(flagJz && flagAz){
+                if(f){
                     tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
                     totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
                 } else {
@@ -288,7 +292,7 @@ public class SubstationService {
                 double otherFee =qtFees[2]*rateQt; //其他费用
 //                double fees = rgAzFee/(1+tcRate[0])*azgfRate[0]+rgAzFee/(1+tcRate[0])*azgfRate[1]*1.6;  //规费
                 double fees = azGf*rateRg;  //规费
-                if(flagJz && flagAz){
+                if(f){
                     tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
                     totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
                 } else {
@@ -312,22 +316,6 @@ public class SubstationService {
 
             //补税
             double texTotal = jzTotal.get(0).getTex()+azTotal.get(0).getTex();//税合计金额
-            if(btex != 0.00){
-            for(JkxlDetailFee jkxlDetailFee : jzTotal){
-                    double tex = jkxlDetailFee.getTex();
-                    double total1 = jkxlDetailFee.getTotalFee();
-                    double rate = tex/texTotal;
-                    jkxlDetailFee.setTex(tex+btex*rate);
-                    jkxlDetailFee.setTotalFee(total1+btex*rate);
-            }
-            for(JkxlDetailFee jkxlDetailFee : azTotal){
-                    double tex = jkxlDetailFee.getTex();
-                    double total1 = jkxlDetailFee.getTotalFee();
-                    double rate = tex/texTotal;
-                    jkxlDetailFee.setTex(tex+btex*rate);
-                    jkxlDetailFee.setTotalFee(total1+btex*rate);
-            }
-            }
 
             //其他费用补税
             if(qtFees[0]+qtFees[1] != 0.00) {
@@ -348,7 +336,51 @@ public class SubstationService {
                     jkxlDetailFee.setTotalFee(total1 + tzTex);
                 }
             }
-
+            //补税
+            if(btex != 0.00){
+                double tex1 = jzTotal.get(0).getTex()+azTotal.get(0).getTex();//税合计金额
+                for(JkxlDetailFee jkxlDetailFee : jzTotal){
+                    double tex = jkxlDetailFee.getTex();
+                    double total1 = jkxlDetailFee.getTotalFee();
+                    double rate = tex/tex1;
+                    jkxlDetailFee.setTex(tex+btex*rate);
+                    jkxlDetailFee.setTotalFee(total1+btex*rate);
+                }
+                for(JkxlDetailFee jkxlDetailFee : azTotal){
+                    double tex = jkxlDetailFee.getTex();
+                    double total1 = jkxlDetailFee.getTotalFee();
+                    double rate = tex/tex1;
+                    jkxlDetailFee.setTex(tex+btex*rate);
+                    jkxlDetailFee.setTotalFee(total1+btex*rate);
+                }
+            }
+            //分摊差额
+            double cstotal1 = jzTotal.get(0).getMeasuresFee1()+azTotal.get(0).getMeasuresFee1();
+            double cstotal2 = jzTotal.get(0).getMeasuresFee2()+azTotal.get(0).getMeasuresFee2();
+            double cstotal3 = jzTotal.get(0).getMeasuresFee3()+azTotal.get(0).getMeasuresFee3();
+            double gftotal = jzTotal.get(0).getFees()+azTotal.get(0).getFees();
+
+            for(JkxlDetailFee jkxlDetailFee1 : jzTotal){
+                double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
+                double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
+                double gfft = (jsGf-gftotal)*ftRate;
+                double texft = (csft+gfft)*texRate;
+                jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
+                jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
+                jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+texft);
+                jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft+texft);
+            }
+            for(JkxlDetailFee jkxlDetailFee1 : azTotal){
+                double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
+                double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
+                double gfft = (jsGf-gftotal)*ftRate;
+                double texft = (csft+gfft)*texRate;
+                jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
+                jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
+                jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+texft);
+                jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft+texft);
+            }
+            //计算差额
             double tz = jzTotal.get(0).getTotalFee()+azTotal.get(0).getTotalFee();//总合计金额
 
             if(wsbFees != null && wsbFees.size()>0){
@@ -475,17 +507,8 @@ public class SubstationService {
             jzDetail.setTex(jztex);
             jzTotal.set(0,jzDetail);
 
-            //补税
+
             double jztexTotal = jzTotal.get(0).getTex();
-            if(btex != 0.00){
-                for(JkxlDetailFee jkxlDetailFee : jzTotal){
-                    double tex = jkxlDetailFee.getTex();
-                    double total1 = jkxlDetailFee.getTotalFee();
-                    double rate = tex/jztexTotal;
-                    jkxlDetailFee.setTex(tex+btex*rate);
-                    jkxlDetailFee.setTotalFee(total1+btex*rate);
-                }
-            }
             //其他费用补税
             if(qtFees[0]+qtFees[1] != 0.00) {
                 for (JkxlDetailFee jkxlDetailFee : jzTotal) {
@@ -497,6 +520,33 @@ public class SubstationService {
                     jkxlDetailFee.setTotalFee(total1 + tzTex);
                 }
             }
+            //补税
+            if(btex != 0.00){
+                double jztex1 = jzTotal.get(0).getTex();
+                for(JkxlDetailFee jkxlDetailFee : jzTotal){
+                    double tex = jkxlDetailFee.getTex();
+                    double total1 = jkxlDetailFee.getTotalFee();
+                    double rate = tex/jztex1;
+                    jkxlDetailFee.setTex(tex+btex*rate);
+                    jkxlDetailFee.setTotalFee(total1+btex*rate);
+                }
+            }
+            //分摊差额
+            double cstotal1 = jzTotal.get(0).getMeasuresFee1();
+            double cstotal2 = jzTotal.get(0).getMeasuresFee2();
+            double cstotal3 = jzTotal.get(0).getMeasuresFee3();
+            double gftotal = jzTotal.get(0).getFees();
+
+            for(JkxlDetailFee jkxlDetailFee1 : jzTotal){
+                double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcJzTotal;
+                double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
+                double gfft = (jsGf-gftotal)*ftRate;
+                double texft = (csft+gfft)*texRate;
+                jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
+                jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
+                jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+texft);
+                jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft+texft);
+            }
 
             double tz = jzTotal.get(0).getTotalFee();//总合计金额
 
@@ -631,15 +681,6 @@ public class SubstationService {
 
             //补税
             double aztexTotal = azTotal.get(0).getTex();
-            if(btex != 0.00){
-                for(JkxlDetailFee jkxlDetailFee : azTotal){
-                    double tex = jkxlDetailFee.getTex();
-                    double total1 = jkxlDetailFee.getTotalFee();
-                    double rate = tex/aztexTotal;
-                    jkxlDetailFee.setTex(tex+btex*rate);
-                    jkxlDetailFee.setTotalFee(total1+btex*rate);
-                }
-            }
             //其他费用补税
             if(qtFees[0]+qtFees[1] != 0.00) {
                 for (JkxlDetailFee jkxlDetailFee : azTotal) {
@@ -651,6 +692,33 @@ public class SubstationService {
                     jkxlDetailFee.setTotalFee(total1 + tzTex);
                 }
             }
+            //补税
+            if(btex != 0.00){
+                double tex1 = azTotal.get(0).getTex();
+                for(JkxlDetailFee jkxlDetailFee : azTotal){
+                    double tex = jkxlDetailFee.getTex();
+                    double total1 = jkxlDetailFee.getTotalFee();
+                    double rate = tex/aztexTotal;
+                    jkxlDetailFee.setTex(tex+btex*rate);
+                    jkxlDetailFee.setTotalFee(total1+btex*rate);
+                }
+            }
+            //分摊差额
+            double cstotal1 = azTotal.get(0).getMeasuresFee1();
+            double cstotal2 = azTotal.get(0).getMeasuresFee2();
+            double cstotal3 = azTotal.get(0).getMeasuresFee3();
+            double gftotal = azTotal.get(0).getFees();
+
+            for(JkxlDetailFee jkxlDetailFee1 : azTotal){
+                double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcAzTotal;
+                double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
+                double gfft = (jsGf-gftotal)*ftRate;
+                double texft = (csft+gfft)*texRate;
+                jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
+                jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
+                jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+texft);
+                jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft+texft);
+            }
 
             double tz = azTotal.get(0).getTotalFee();//总合计金额