Browse Source

App总览-营业数据-环比

wangbo 4 years ago
parent
commit
95108badf7

+ 39 - 12
sms_water/src/main/java/com/huaxu/controller/AppPageReportController.java

@@ -184,21 +184,28 @@ public class AppPageReportController {
 
     /**
      * @Author wangbo
-     * @Description App 营业总览数据-本月应收实收回收率数据
+     * @Description App 营业总览数据-本月应收实收回收率普通用户用量大用户用量数据
      * @param companyOrgId 公司ID
      * @return
      */
     @RequestMapping(value = "getBusinessDataForSameMonth",method = RequestMethod.GET)
-    @ApiOperation(value = "App总览——营业总览应收实收回收率数据(本月)")
+    @ApiOperation(value = "App总览——营业总览应收实收回收率普通用户用量大用户用量数据(本月)")
     public AjaxMessage<Map<String,Object>> getSameMonthBusinessData(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
 
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,1);
+        BigDecimal sum = sellerWaterList.get(0).getGeneralUserAmount().add(sellerWaterList.get(0).getBigUserAmount());
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:sellerWaterList.get(0).getGeneralUserAmount().multiply(new BigDecimal(100)).divide(sum,2);
+
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", sellerWaterList.get(0).getReceivableAmount());
         map.put("totalReceived", sellerWaterList.get(0).getReceivedAmount());
         map.put("amount",sellerWaterList);
-        map.put("rate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).divide(sellerWaterList.get(0).getReceivableAmount(),2));
+        map.put("generalUser",sellerWaterList.get(0).getGeneralUserAmount());
+        map.put("bigUser",sellerWaterList.get(0).getBigUserAmount());
+        map.put("generalUserRate",generalRate);
+        map.put("bigUserRate",new BigDecimal(100).subtract(generalRate));
+        map.put("recoveryRate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).divide(sellerWaterList.get(0).getReceivableAmount(),2));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -209,23 +216,32 @@ public class AppPageReportController {
      * @return
      */
     @RequestMapping(value = "getBusinessDataForSameYear",method = RequestMethod.GET)
-    @ApiOperation(value = "App总览——营业总览应收实收回收率数据(本年)")
+    @ApiOperation(value = "App总览——营业总览应收实收回收率普通用户用量大用户用量数据(本年)")
     public AjaxMessage<Map<String,Object>> getBusinessDataForSameYear(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate now = LocalDate.now();
-
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,now.getMonthValue());
         BigDecimal totalReceivableAmount = new BigDecimal(0);
         BigDecimal totalReceivedAmount = new BigDecimal(0);
+        BigDecimal totalGeneralUser = new BigDecimal(0);
+        BigDecimal totalBigUser = new BigDecimal(0);
         for(DeviceWaterSupply amount: sellerWaterList){
-            totalReceivableAmount.add(amount.getReceivableAmount());
-            totalReceivedAmount.add(amount.getReceivedAmount());
+            totalReceivableAmount =totalReceivableAmount.add(amount.getReceivableAmount());
+            totalReceivedAmount=totalReceivedAmount.add(amount.getReceivedAmount());
+            totalGeneralUser=totalGeneralUser.add(amount.getGeneralUserAmount());
+            totalBigUser=totalBigUser.add(amount.getBigUserAmount());
         }
+        BigDecimal sum =totalBigUser.add(totalGeneralUser);
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.multiply(new BigDecimal(100)).divide(sum,2);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
         map.put("amountDetails",sellerWaterList);
-        map.put("rate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).divide(sellerWaterList.get(0).getReceivableAmount(),2));
+        map.put("generalUser",totalGeneralUser);
+        map.put("bigUser",totalBigUser);
+        map.put("generalUserRate",generalRate);
+        map.put("bigUserRate",new BigDecimal(100).subtract(generalRate));
+        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.multiply(new BigDecimal(100)).divide(totalReceivableAmount,2));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -236,22 +252,33 @@ public class AppPageReportController {
      * @return
      */
     @RequestMapping(value = "getBusinessDataForLast12Month",method = RequestMethod.GET)
-    @ApiOperation(value = "App总览——营业总览应收实收回收率数据(近一年)")
+    @ApiOperation(value = "App总览——营业总览应收实收回收率普通用户用量大用户用量数据(近一年)")
     public AjaxMessage<Map<String,Object>> getBusinessDataForLast12Month(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
 
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,12);
         BigDecimal totalReceivableAmount = new BigDecimal(0);
         BigDecimal totalReceivedAmount = new BigDecimal(0);
+        BigDecimal totalGeneralUser = new BigDecimal(0);
+        BigDecimal totalBigUser = new BigDecimal(0);
         for(DeviceWaterSupply amount: sellerWaterList){
-            totalReceivableAmount.add(amount.getReceivableAmount());
-            totalReceivedAmount.add(amount.getReceivedAmount());
+            totalReceivableAmount =totalReceivableAmount.add(amount.getReceivableAmount());
+            totalReceivedAmount=totalReceivedAmount.add(amount.getReceivedAmount());
+            totalGeneralUser=totalGeneralUser.add(amount.getGeneralUserAmount());
+            totalBigUser=totalBigUser.add(amount.getBigUserAmount());
         }
+
+        BigDecimal sum =totalBigUser.add(totalGeneralUser);
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.multiply(new BigDecimal(100)).divide(sum,2);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
         map.put("amountDetails",sellerWaterList);
-        map.put("rate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).divide(sellerWaterList.get(0).getReceivableAmount(),2));
+        map.put("generalUser",totalGeneralUser);
+        map.put("bigUser",totalBigUser);
+        map.put("generalUserRate",generalRate);
+        map.put("bigUserRate",new BigDecimal(100).subtract(generalRate));
+        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.multiply(new BigDecimal(100)).divide(totalReceivableAmount,2));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 

+ 0 - 2
sms_water/src/main/java/com/huaxu/controller/AppReportMonitorController.java

@@ -37,8 +37,6 @@ public class AppReportMonitorController {
     @Autowired
     private AppReportMonitorService appReportMonitorService;
 
-
-
     @RequestMapping(value = "getSceneByCompany",method = RequestMethod.GET)
     @ApiOperation(value = "App报表展示————公司查询(点击公司查询水厂)")
     public AjaxMessage<List<SceneEntity>> getSceneByCompany(