Przeglądaj źródła

税金,甲供

Enford 5 lat temu
rodzic
commit
3268e6898b

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

@@ -341,7 +341,7 @@ public List<JkxlDetailFee> findList(String id,String type){
         double wordtotal1 =  BashInfo.getJkCs(csqd);//获取措施费清单计价表一合计
         double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,new int[]{12,15});//获取分部分项比对数据清单
         List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,gfFees,cbperson);
-        Boolean f = SettementUtil.getFlag;
+        Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
         settlementService.save(settlements,id);
 
         //将本体工程费用明细存入集合
@@ -612,7 +612,7 @@ public List<JkxlDetailFee> findList(String id,String type){
             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;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalJzFees.length;i++){
@@ -694,7 +694,7 @@ public List<JkxlDetailFee> findList(String id,String type){
             }
             //结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalAzFees.length;i++){
@@ -802,7 +802,7 @@ public List<JkxlDetailFee> findList(String id,String type){
             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;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             //将本体工程费用明细存入集合
@@ -1108,7 +1108,7 @@ public List<JkxlDetailFee> findList(String id,String type){
             }
             //电缆结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalJzFees.length;i++){
@@ -1175,7 +1175,7 @@ public List<JkxlDetailFee> findList(String id,String type){
             }
             //结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalAzFees.length;i++){
@@ -1259,7 +1259,7 @@ public List<JkxlDetailFee> findList(String id,String type){
                     jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
             }
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             //将本体工程费用明细存入集合

+ 95 - 3
src/main/java/com/jeeplus/modules/sg/overheadline/util/SettementUtil.java

@@ -597,14 +597,14 @@ public class SettementUtil {
             }
         }
         doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-minus+addcount;//默认竣工结算比对金额 默认为不减去发包人
-        getFlag = false;//默认 变量为 flase 传给 其他方法进行判断
+//        getFlag = false;//默认 变量为 flase 传给 其他方法进行判断
         if (flag){//如果为true 说明存在 工程结算价
             doubles[0] = doubles[0]+ minus - addcount;//还原
         }
         if ((jgjeCount-5.0)>=doubles[0]||(jgjeCount+5.0)<=doubles[0]){
             //减去发包人
             doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-doubles[7]-minus+addcount;
-            getFlag = true;//改变 变量为 flase 传给 其他方法进行判断
+//            getFlag = true;//改变 变量为 flase 传给 其他方法进行判断
         }
         if (flag){//如果为true 说明存在 工程结算价
             doubles[0] = doubles[0]+ minus - addcount;
@@ -672,7 +672,8 @@ public class SettementUtil {
                     break;
             }
         }
-        if (getFlag){//为true时 减去发包人费
+        Boolean jgjsDeveloper = getJgjsDeveloper(settlements);
+        if (jgjsDeveloper){//为true时 减去发包人费
             count =addcount-fbrMoney-minus;
         }else {//否则
             count=addcount-minus;//不减去
@@ -1210,4 +1211,95 @@ public class SettementUtil {
         settlement.setRemarks(importExcel.getValue(i+1,3));
         return settlement;
     }
+
+
+    //判断是否减去发包人
+    public static Boolean getJgjsDeveloper(List<Settlement> settlements){
+        boolean flagDeveloper = false;
+        double[] doubles = new double[8]; //定义数组 (可改)
+        boolean flag= false; //用作判断是否存在 工程结算价/最终结算价 等等。
+        String name=""; //settlement对象名称
+        double money=0.0;//settlement对象金额
+        double minus = 0.0;// 减去的金额合计
+        double addcount = 0.0;//加上的金额合计
+        double jgjeCount = 0.0;//存放竣工结算价金额
+        for (Settlement settlement:settlements){
+            name = settlement.getEntryName();
+            money = settlement.getMoney();
+            if (name.equals(BDZ_TBNAME)){//如果为投标报价
+                name=BashInfo.JS_JGJS; //name=竣工结算
+            }
+            if(name.equals(BDZ_TBRNAME)){//如果为 投标人采购设备费
+                name=BashInfo.JS_CBRF; //承包人费
+            }
+            if (name.equals(BDZ_ZBRNAME)){ //如果为招标人费
+                name=BashInfo.JS_FBRF;//发包人采购材料费
+            }
+            //如果包含 “扣”  “减” “下浮”
+            if (name.contains(RESON_KYJ)||name.contains(RESON_XF)||name.contains(RESON_KYJ1)){
+                if (!name.equals(RESON_XFHZJ)){//如果 不等于下浮造价
+                    name = RESON_KYJ; //赋值name:“扣”
+                }
+            }
+            if (name.equals(RESON_ZZJS)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_ZZFC)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_ZGTB)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_XFHZJ)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            switch (name) {
+                case BashInfo.JS_FBFX://分部分项工程费
+                    doubles[1]=money;
+                    break;
+                case BashInfo.JS_CBRF://承包人采购设备费
+                    doubles[2]=money;
+                    break;
+                case BashInfo.JS_CSXM://措施项目费
+                    doubles[3]=money;
+                    break;
+                case BashInfo.JS_QTXM://其他项目费
+                    doubles[4]=money;
+                    break;
+                case BashInfo.JS_GF://规费
+                    doubles[5]=money;
+                    break;
+                case BashInfo.JS_SJ://税金
+                    doubles[6]=money;
+                    break;
+                case BashInfo.JS_FBRF://发包人采购材料费
+                    doubles[7]=money;
+                    break;
+                case RESON_KYJ://扣
+                    minus += money; //需要减去的金额累加
+                    break;
+                default: //如果以上不匹配
+                    if (name.equals(BashInfo.JS_JGJS)){//如果等于 "竣工结算价合计"
+                        jgjeCount=money; //存储  "竣工结算价合计" 金额
+                    }else if (!name.equals(BashInfo.JS_GCJS)){ //如果不等于 工程结算价
+                        addcount+=money; //需要加上的金额 累加
+                    }
+                    if (name.equals(BashInfo.JS_GCJS)){ //如果name为 工程结算价
+                        flag=true;//存在 工程结算价/最终结算价 等等
+                    }
+                    break;
+            }
+        }
+        doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-minus+addcount;//默认竣工结算比对金额 默认为不减去发包人
+
+        if (flag){//如果为true 说明存在 工程结算价
+            doubles[0] = doubles[0]+ minus - addcount;//还原
+        }
+        if ((jgjeCount-5.0)>=doubles[0]||(jgjeCount+5.0)<=doubles[0]){
+            //减去发包人
+            doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-doubles[7]-minus+addcount;
+            flagDeveloper = true;//改变 变量为 flase 传给 其他方法进行判断
+        }
+        return flagDeveloper;
+    }
 }

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

@@ -229,7 +229,7 @@ public class SubstationService {
             azTotal.addAll(zwtx);
             //结算汇总
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             settlementService.save(settlementBdzs,id);
             for(JkxlDetailFee jkxlDetailFee:jzTotal){
                  double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
@@ -517,7 +517,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;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             for(JkxlDetailFee jkxlDetailFee:jzTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
@@ -716,7 +716,7 @@ public class SubstationService {
             azTotal.addAll(zwtx);
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
             settlementService.save(settlementBdzs,id);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             for(JkxlDetailFee jkxlDetailFee:azTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();