瀏覽代碼

月,季度指标部分字段逻辑优化

hu 5 月之前
父節點
當前提交
20279e7049
共有 1 個文件被更改,包括 11 次插入25 次删除
  1. 11 25
      src/custom/restcontroller/webmanage/sale/salestarget_cucu/performancetargetboard.java

+ 11 - 25
src/custom/restcontroller/webmanage/sale/salestarget_cucu/performancetargetboard.java

@@ -93,7 +93,6 @@ public class performancetargetboard extends Controller {
         long year= content.getLong("year");
         long year= content.getLong("year");
         long month= content.getLong("month");
         long month= content.getLong("month");
         String monthstr = String.format("%02d", month);
         String monthstr = String.format("%02d", month);
-        String previousmonthstr = String.format("%02d", month-1);
         JSONObject jsonObject =new JSONObject();
         JSONObject jsonObject =new JSONObject();
 
 
         BigDecimal gcproportion =BigDecimal.ZERO;
         BigDecimal gcproportion =BigDecimal.ZERO;
@@ -116,12 +115,10 @@ public class performancetargetboard extends Controller {
         personnelsqlFactory.addParameter("siteid", siteid);
         personnelsqlFactory.addParameter("siteid", siteid);
         Rows salestargetrows = dbConnect.runSqlQuery(personnelsqlFactory.getSQL());
         Rows salestargetrows = dbConnect.runSqlQuery(personnelsqlFactory.getSQL());
         BigDecimal rw_month=BigDecimal.ZERO;
         BigDecimal rw_month=BigDecimal.ZERO;
-        BigDecimal rw_previousmonth=BigDecimal.ZERO;
         if(salestargetrows.isNotEmpty()){
         if(salestargetrows.isNotEmpty()){
             //月度任务(万)
             //月度任务(万)
             jsonObject.put("rw_month",salestargetrows.get(0).getBigDecimal("m"+month+"l"));
             jsonObject.put("rw_month",salestargetrows.get(0).getBigDecimal("m"+month+"l"));
             rw_month=salestargetrows.get(0).getBigDecimal("m"+month+"l");
             rw_month=salestargetrows.get(0).getBigDecimal("m"+month+"l");
-            rw_previousmonth=salestargetrows.get(0).getBigDecimal("m"+(month-1)+"l");
         }else{
         }else{
             jsonObject.put("rw_month",BigDecimal.ZERO);
             jsonObject.put("rw_month",BigDecimal.ZERO);
         }
         }
@@ -149,9 +146,6 @@ public class performancetargetboard extends Controller {
         BigDecimal huodong=paymentRowsMap.containsKey("活动预存账户")?paymentRowsMap.get("活动预存账户").toRowsMap("month").containsKey(monthstr)?paymentRowsMap.get("活动预存账户").toRowsMap("month").get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
         BigDecimal huodong=paymentRowsMap.containsKey("活动预存账户")?paymentRowsMap.get("活动预存账户").toRowsMap("month").containsKey(monthstr)?paymentRowsMap.get("活动预存账户").toRowsMap("month").get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
         BigDecimal fanli=rebateRowsMap.containsKey(monthstr)?rebateRowsMap.get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO;
         BigDecimal fanli=rebateRowsMap.containsKey(monthstr)?rebateRowsMap.get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO;
 
 
-        BigDecimal previousxainjin=paymentRowsMap.containsKey("现金账户")?paymentRowsMap.get("现金账户").toRowsMap("month").containsKey(previousmonthstr)?paymentRowsMap.get("现金账户").toRowsMap("month").get(previousmonthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
-        BigDecimal previoushuodong=paymentRowsMap.containsKey("活动预存账户")?paymentRowsMap.get("活动预存账户").toRowsMap("month").containsKey(previousmonthstr)?paymentRowsMap.get("活动预存账户").toRowsMap("month").get(previousmonthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
-        BigDecimal previousfanli=rebateRowsMap.containsKey(previousmonthstr)?rebateRowsMap.get(previousmonthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO;
         //回款完成额
         //回款完成额
         jsonObject.put("completedamount",xainjin.add(huodong).add(fanli));
         jsonObject.put("completedamount",xainjin.add(huodong).add(fanli));
 
 
@@ -159,13 +153,14 @@ public class performancetargetboard extends Controller {
         BigDecimal completedamountexceed100=BigDecimal.ZERO;
         BigDecimal completedamountexceed100=BigDecimal.ZERO;
         for(int i=1;i<=month;i++){
         for(int i=1;i<=month;i++){
             previousexceed=completedamountexceed100;
             previousexceed=completedamountexceed100;
+
             BigDecimal looprw_month=salestargetrows.isNotEmpty()?salestargetrows.get(0).getBigDecimal("m"+i+"l"):BigDecimal.ZERO;
             BigDecimal looprw_month=salestargetrows.isNotEmpty()?salestargetrows.get(0).getBigDecimal("m"+i+"l"):BigDecimal.ZERO;
-            BigDecimal loopxainjin=paymentRowsMap.containsKey("现金账户")?paymentRowsMap.get("现金账户").toRowsMap("month").containsKey(String.valueOf(i))?paymentRowsMap.get("现金账户").toRowsMap("month").get(String.valueOf(i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
-            BigDecimal loophuodong=paymentRowsMap.containsKey("活动预存账户")?paymentRowsMap.get("活动预存账户").toRowsMap("month").containsKey(String.valueOf(i))?paymentRowsMap.get("活动预存账户").toRowsMap("month").get(String.valueOf(i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
-            BigDecimal loopfanli=rebateRowsMap.containsKey(String.valueOf(i))?rebateRowsMap.get(String.valueOf(i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO;
+            BigDecimal loopxainjin=paymentRowsMap.containsKey("现金账户")?paymentRowsMap.get("现金账户").toRowsMap("month").containsKey(String.format("%02d", i))?paymentRowsMap.get("现金账户").toRowsMap("month").get(String.format("%02d", i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
+            BigDecimal loophuodong=paymentRowsMap.containsKey("活动预存账户")?paymentRowsMap.get("活动预存账户").toRowsMap("month").containsKey(String.format("%02d", i))?paymentRowsMap.get("活动预存账户").toRowsMap("month").get(String.format("%02d", i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
+            BigDecimal loopfanli=rebateRowsMap.containsKey(String.format("%02d", i))?rebateRowsMap.get(String.format("%02d", i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO;
 
 
-            BigDecimal loopgcgc=paymentRowsMap.containsKey("GC工程现金账户")?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").containsKey(String.valueOf(i))?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").get(String.valueOf(i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
-            BigDecimal loopzzgc=paymentRowsMap.containsKey("整装工程现金账户")?paymentRowsMap.get("整装工程现金账户").toRowsMap("month").containsKey(String.valueOf(i))?paymentRowsMap.get("整装工程现金账户").toRowsMap("month").get(String.valueOf(i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
+            BigDecimal loopgcgc=paymentRowsMap.containsKey("GC工程现金账户")?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").containsKey(String.format("%02d", i))?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").get(String.format("%02d", i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
+            BigDecimal loopzzgc=paymentRowsMap.containsKey("整装工程现金账户")?paymentRowsMap.get("整装工程现金账户").toRowsMap("month").containsKey(String.format("%02d", i))?paymentRowsMap.get("整装工程现金账户").toRowsMap("month").get(String.format("%02d", i)).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
 
 
             completedamountexceed100=loopxainjin.add(loophuodong).add(loopfanli).add(previousexceed)
             completedamountexceed100=loopxainjin.add(loophuodong).add(loopfanli).add(previousexceed)
                     .add(loopgcgc.max(looprw_month.multiply(gcproportion).multiply(BigDecimal.valueOf(10000))))
                     .add(loopgcgc.max(looprw_month.multiply(gcproportion).multiply(BigDecimal.valueOf(10000))))
@@ -176,7 +171,7 @@ public class performancetargetboard extends Controller {
 
 
 
 
         //上月完成额超出部分
         //上月完成额超出部分
-        jsonObject.put("previousexceed",previousexceed);
+        jsonObject.put("previousexceed",previousexceed.compareTo(BigDecimal.ZERO)>0?previousexceed:0);
 
 
         BigDecimal gcgc=paymentRowsMap.containsKey("GC工程现金账户")?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").containsKey(monthstr)?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
         BigDecimal gcgc=paymentRowsMap.containsKey("GC工程现金账户")?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").containsKey(monthstr)?paymentRowsMap.get("GC工程现金账户").toRowsMap("month").get(monthstr).get(0).getBigDecimal("amount"):BigDecimal.ZERO:BigDecimal.ZERO;
         //GC工程完成额
         //GC工程完成额
@@ -191,7 +186,7 @@ public class performancetargetboard extends Controller {
         jsonObject.put("zzcompletedamountexceed",zzgc.subtract(rw_month.multiply(zzproportion).multiply(BigDecimal.valueOf(10000))).compareTo(BigDecimal.ZERO)>0?zzgc.subtract(rw_month.multiply(zzproportion).multiply(BigDecimal.valueOf(10000))):0);
         jsonObject.put("zzcompletedamountexceed",zzgc.subtract(rw_month.multiply(zzproportion).multiply(BigDecimal.valueOf(10000))).compareTo(BigDecimal.ZERO)>0?zzgc.subtract(rw_month.multiply(zzproportion).multiply(BigDecimal.valueOf(10000))):0);
 
 
         //完成额超出100%部分
         //完成额超出100%部分
-        jsonObject.put("completedamountexceed100",completedamountexceed100);
+        jsonObject.put("completedamountexceed100",completedamountexceed100.compareTo(BigDecimal.ZERO)>0?completedamountexceed100:0);
         //实际完成额
         //实际完成额
         jsonObject.put("actualcompletedamount",jsonObject.getBigDecimal("completedamount").add(jsonObject.getBigDecimal("gccompletedamount")).add(jsonObject.getBigDecimal("zzcompletedamount")));
         jsonObject.put("actualcompletedamount",jsonObject.getBigDecimal("completedamount").add(jsonObject.getBigDecimal("gccompletedamount")).add(jsonObject.getBigDecimal("zzcompletedamount")));
         //实际完成百分比
         //实际完成百分比
@@ -213,15 +208,7 @@ public class performancetargetboard extends Controller {
         int selectmonth= content.getIntValue("month");
         int selectmonth= content.getIntValue("month");
         JSONObject jsonObject =new JSONObject();
         JSONObject jsonObject =new JSONObject();
 
 
-        BigDecimal gcproportion =BigDecimal.ZERO;
-        BigDecimal zzproportion =BigDecimal.ZERO;
-
         Rows salestargetbillrows =dbConnect.runSqlQuery("select * from sa_salestargetbill where siteid='"+siteid+"' and year="+year+" and targettype='人员目标'");
         Rows salestargetbillrows =dbConnect.runSqlQuery("select * from sa_salestargetbill where siteid='"+siteid+"' and year="+year+" and targettype='人员目标'");
-        Rows rows = dbConnect.runSqlQuery("select * from sys_site_parameter where siteid='" + siteid + "'");
-        if(rows.isNotEmpty()){
-            gcproportion=rows.get(0).getBigDecimal("gcproportion").divide(BigDecimal.valueOf(100));
-            zzproportion=rows.get(0).getBigDecimal("zzproportion").divide(BigDecimal.valueOf(100));
-        }
         long sa_salestargetbillid=0;
         long sa_salestargetbillid=0;
         if(salestargetbillrows.isNotEmpty()){
         if(salestargetbillrows.isNotEmpty()){
             sa_salestargetbillid=salestargetbillrows.get(0).getLong("sa_salestargetbillid");
             sa_salestargetbillid=salestargetbillrows.get(0).getLong("sa_salestargetbillid");
@@ -322,7 +309,7 @@ public class performancetargetboard extends Controller {
         //回款完成额
         //回款完成额
         jsonObject.put("completedamount",completedamount);
         jsonObject.put("completedamount",completedamount);
         //上季完成额超出部分
         //上季完成额超出部分
-        jsonObject.put("previousexceed",previousexceed);
+        jsonObject.put("previousexceed",previousexceed.compareTo(BigDecimal.ZERO)>0?previousexceed:0);
         //GC工程完成额
         //GC工程完成额
         jsonObject.put("gccompletedamount",gcgccompletedamount);
         jsonObject.put("gccompletedamount",gcgccompletedamount);
         //整装工程完成额
         //整装工程完成额
@@ -369,7 +356,6 @@ public class performancetargetboard extends Controller {
         personnelsqlFactory.addParameter("siteid", siteid);
         personnelsqlFactory.addParameter("siteid", siteid);
         Rows salestargetrows = dbConnect.runSqlQuery(personnelsqlFactory.getSQL());
         Rows salestargetrows = dbConnect.runSqlQuery(personnelsqlFactory.getSQL());
         BigDecimal rw_all=BigDecimal.ZERO;
         BigDecimal rw_all=BigDecimal.ZERO;
-        BigDecimal rw_year=BigDecimal.ZERO;
         BigDecimal completedamount=BigDecimal.ZERO;
         BigDecimal completedamount=BigDecimal.ZERO;
         BigDecimal gcgccompletedamount=BigDecimal.ZERO;
         BigDecimal gcgccompletedamount=BigDecimal.ZERO;
         BigDecimal zzgccompletedamount=BigDecimal.ZERO;
         BigDecimal zzgccompletedamount=BigDecimal.ZERO;
@@ -377,7 +363,6 @@ public class performancetargetboard extends Controller {
             for(Object month : months){
             for(Object month : months){
                 rw_all=rw_all.add(salestargetrows.get(0).getBigDecimal("m"+ (Integer)month+"l"));
                 rw_all=rw_all.add(salestargetrows.get(0).getBigDecimal("m"+ (Integer)month+"l"));
             }
             }
-            rw_year=salestargetrows.get(0).getBigDecimal("y1l");
         }
         }
         ArrayList<Long> list = new ArrayList<>();
         ArrayList<Long> list = new ArrayList<>();
         list.add(sa_saleareaid);
         list.add(sa_saleareaid);
@@ -425,7 +410,8 @@ public class performancetargetboard extends Controller {
             jsonObject.put("actualcompletedpercentage",jsonObject.getBigDecimal("actualcompletedamount").divide((rw_all.multiply(BigDecimal.valueOf(10000))),4, RoundingMode.HALF_UP));
             jsonObject.put("actualcompletedpercentage",jsonObject.getBigDecimal("actualcompletedamount").divide((rw_all.multiply(BigDecimal.valueOf(10000))),4, RoundingMode.HALF_UP));
         }
         }
         //和年度任务的差额
         //和年度任务的差额
-        jsonObject.put("differenceamount",rw_all.multiply(BigDecimal.valueOf(7000)).subtract(jsonObject.getBigDecimal("actualcompletedamount")));
+        BigDecimal differenceamount=rw_all.multiply(BigDecimal.valueOf(7000)).subtract(jsonObject.getBigDecimal("actualcompletedamount"));
+        jsonObject.put("differenceamount",differenceamount.compareTo(BigDecimal.ZERO)>0?differenceamount:0);
 
 
         return getSucReturnObject().setData(jsonObject).toString();
         return getSucReturnObject().setData(jsonObject).toString();