Parcourir la source

App总览-营业数据-环比

wangbo il y a 4 ans
Parent
commit
76ce3a4c89

+ 20 - 7
sms_water/src/main/java/com/huaxu/controller/AppPageReportController.java

@@ -161,13 +161,14 @@ public class AppPageReportController {
         LocalDate last3 = last2.minusMonths(11);
         List<DeviceWaterSupply> lastMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, last3.getYear(),last2.getMonthValue(),last2.getDayOfMonth(), last.getYear(),12,31);
         List<DeviceWaterSupply> lastSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, last.getYear(),1,1, last.getYear(),12,31);
-        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,now.getMonthValue()+12);
+
+        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,24);
 
         BigDecimal sameSellerAmount = new BigDecimal(0);
         BigDecimal lastSellerAmount = new BigDecimal(0);
 
         for( int i =0 ;i<sellerWaterList.size(); i++){
-            if(i<now.getMonthValue()){
+            if(i>=12){
                 sameSellerAmount = sameSellerAmount.add(sellerWaterList.get(i).getAmount());
             }
             else{
@@ -300,14 +301,26 @@ public class AppPageReportController {
     @RequestMapping(value = "getSellerComparisonForLast12Month",method = RequestMethod.GET)
     @ApiOperation(value = "App总览——营收数据-应收实收环比(本年)")
     public AjaxMessage<Object> getSellerComparisonForLast12Month(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        LocalDate now = LocalDate.now();
-        LocalDate last = now.minusMonths(11);
+        BigDecimal receivedSameYearComparison = new BigDecimal(0);
+        BigDecimal receivedLastYearComparison = new BigDecimal(0);
+        BigDecimal receivableSameYearComparison = new BigDecimal(0);
+        BigDecimal receivableLastYearComparison = new BigDecimal(0);
+        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,24);
 
+        for(int i=0;i<sellerWaterList.size();i++){
 
-        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,12);
-        BigDecimal receivableComparison = sellerWaterList.get(1).getAmount().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(0).getAmount().multiply(new BigDecimal(100)).divide(sellerWaterList.get(1).getAmount(),2);
-        BigDecimal receivedComparison = sellerWaterList.get(1).getAmount2().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(0).getAmount2().multiply(new BigDecimal(100)).divide(sellerWaterList.get(1).getAmount2(),2);
+            if(i>=12){
+                receivedSameYearComparison = receivedSameYearComparison.add(sellerWaterList.get(i).getAmount2());
+                receivableSameYearComparison =receivableSameYearComparison.add(sellerWaterList.get(i).getAmount());
+            }
+            else{
+                receivedLastYearComparison = receivedLastYearComparison.add(sellerWaterList.get(i).getAmount2());
+                receivableLastYearComparison =receivableLastYearComparison.add(sellerWaterList.get(i).getAmount());
+            }
+        }
 
+        BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.multiply(new BigDecimal(100)).divide(receivedLastYearComparison,2);
+        BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.multiply(new BigDecimal(100)).divide(receivableLastYearComparison,2);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("receivableComparison",receivableComparison);
         map.put("receivedComparison",receivedComparison);