Quellcode durchsuchen

App总览-营业数据-营收实收

wangbo vor 4 Jahren
Ursprung
Commit
9c86ff98c5

+ 69 - 21
sms_water/src/main/java/com/huaxu/controller/AppPageReportController.java

@@ -44,10 +44,11 @@ public class AppPageReportController {
     @ApiOperation(value = "App总览——生产数据(本月)")
     public AjaxMessage<Map<String,Object>> getProductionDataForMonth(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> supplyWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水源",4,1);
         List<DeviceWaterSupply> makingWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水厂",3,1);
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,1);
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intake", supplyWaterList);
         map.put("making", makingWaterList);
         map.put("seller", sellerWaterList);
@@ -66,10 +67,11 @@ public class AppPageReportController {
     public AjaxMessage<Map<String,Object>> getProductionDataForSameYear(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate localDate = LocalDate.now();
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> supplyWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水源",4,localDate.getMonthValue());
         List<DeviceWaterSupply> makingWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水厂",3,localDate.getMonthValue());
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,localDate.getMonthValue());
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intake", supplyWaterList);
         map.put("making", makingWaterList);
         map.put("seller", sellerWaterList);
@@ -88,10 +90,11 @@ public class AppPageReportController {
     @ApiOperation(value = "App总览——生产数据(近一年)")
     public AjaxMessage<Map<String,Object>> getProductionDataFor12Month(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> supplyWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水源",4,12);
         List<DeviceWaterSupply> makingWaterList = appPageReportService.deviceWaterReportForMonth(companyOrgId,"水厂",3,12);
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,12);
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intake", supplyWaterList);
         map.put("making", makingWaterList);
         map.put("seller", sellerWaterList);
@@ -104,11 +107,12 @@ public class AppPageReportController {
     public AjaxMessage<Object> getProductionComparisonForSameMonth(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate now = LocalDate.now();
         LocalDate last = now.minusMonths(1);
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sameMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, now.getYear(),now.getMonthValue(),1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
         List<DeviceWaterSupply> lastMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, last.getYear(),last.getMonthValue(),1, last.getYear(),last.getMonthValue(),last.getDayOfMonth());
         List<DeviceWaterSupply> sameSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, now.getYear(),now.getMonthValue(),1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
         List<DeviceWaterSupply> lastSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, last.getYear(),last.getMonthValue(),1, last.getYear(),last.getMonthValue(),last.getDayOfMonth());
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intakeComparison",appPageReportService.CalculationComparison(sameMakingWaterList,lastMakingWaterList));
         map.put("makingComparison",appPageReportService.CalculationComparison(sameSupplyWaterList,lastSupplyWaterList));
         List<DeviceWaterSupply> sameSellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,2);
@@ -121,7 +125,7 @@ public class AppPageReportController {
     public AjaxMessage<Object> getProductionComparisonForSameYear(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate now = LocalDate.now();
         LocalDate last = now.minusYears(1);
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sameMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, now.getYear(),1,1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
         List<DeviceWaterSupply> lastMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, last.getYear(),1,1, last.getYear(),12,31);
         List<DeviceWaterSupply> sameSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, now.getYear(),1,1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
@@ -137,6 +141,7 @@ public class AppPageReportController {
                 lastSellerAmount = lastSellerAmount.add(sellerWaterList.get(i).getAmount());
             }
         }
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intakeComparison",appPageReportService.CalculationComparison(sameMakingWaterList,lastMakingWaterList));
         map.put("makingComparison",appPageReportService.CalculationComparison(sameSupplyWaterList,lastSupplyWaterList));
         map.put("sellerComparison", lastSellerAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameSellerAmount.multiply(new BigDecimal(100)).divide(lastSellerAmount,2));
@@ -149,7 +154,7 @@ public class AppPageReportController {
         LocalDate now = LocalDate.now();
         LocalDate last = now.minusMonths(11);
 
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sameMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, last.getYear(),last.getMonthValue(),last.getDayOfMonth(), now.getYear(),now.getMonthValue(),now.getDayOfMonth());
         List<DeviceWaterSupply> sameSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, last.getYear(),last.getMonthValue(),last.getDayOfMonth(),now.getYear(),now.getMonthValue(),now.getDayOfMonth());
         LocalDate last2 = last.minusDays(1);
@@ -169,6 +174,7 @@ public class AppPageReportController {
                 lastSellerAmount = lastSellerAmount.add(sellerWaterList.get(i).getAmount());
             }
         }
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("intakeComparison",appPageReportService.CalculationComparison(sameMakingWaterList,lastMakingWaterList));
         map.put("makingComparison",appPageReportService.CalculationComparison(sameSupplyWaterList,lastSupplyWaterList));
         map.put("sellerComparison",lastSellerAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameSellerAmount.multiply(new BigDecimal(100)).divide(lastSellerAmount,2));
@@ -185,8 +191,9 @@ public class AppPageReportController {
     @ApiOperation(value = "App总览——营业总览应收实收回收率数据(本月)")
     public AjaxMessage<Map<String,Object>> getSameMonthBusinessData(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,1);
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", sellerWaterList.get(0).getAmount());
         map.put("totalReceived", sellerWaterList.get(0).getAmount2());
         map.put("amount",sellerWaterList);
@@ -205,7 +212,7 @@ public class AppPageReportController {
     public AjaxMessage<Map<String,Object>> getBusinessDataForSameYear(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate now = LocalDate.now();
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,now.getMonthValue());
         BigDecimal totalReceivableAmount = new BigDecimal(0);
         BigDecimal totalReceivedAmount = new BigDecimal(0);
@@ -213,6 +220,7 @@ public class AppPageReportController {
             totalReceivableAmount.add(amount.getAmount());
             totalReceivedAmount.add(amount.getAmount2());
         }
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
         map.put("amountDetails",sellerWaterList);
@@ -230,7 +238,7 @@ public class AppPageReportController {
     @ApiOperation(value = "App总览——营业总览应收实收回收率数据(近一年)")
     public AjaxMessage<Map<String,Object>> getBusinessDataForLast12Month(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
-        Map<String,Object> map = new HashMap<String,Object>();
+
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,12);
         BigDecimal totalReceivableAmount = new BigDecimal(0);
         BigDecimal totalReceivedAmount = new BigDecimal(0);
@@ -238,6 +246,7 @@ public class AppPageReportController {
             totalReceivableAmount.add(amount.getAmount());
             totalReceivedAmount.add(amount.getAmount2());
         }
+        Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
         map.put("amountDetails",sellerWaterList);
@@ -246,25 +255,64 @@ public class AppPageReportController {
     }
 
 
+    @RequestMapping(value = "getSellerComparisonForSameMonth",method = RequestMethod.GET)
+    @ApiOperation(value = "App总览——营收数据-应收实收环比(本月)")
+    public AjaxMessage<Object> getSellerComparisonForSameMonth(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
 
-    @RequestMapping(value = "getReceivableComparisonForSameMonth",method = RequestMethod.GET)
-    @ApiOperation(value = "App总览——营收数据-应收环比(本月)")
-    public AjaxMessage<Object> getReceivableComparisonForSameMonth(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
+        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,2);
+        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);
+        Map<String,Object> map = new HashMap<String,Object>();
+        map.put("receivableComparison",receivableComparison);
+        map.put("receivedComparison",receivedComparison);
+        return new AjaxMessage<>(ResultStatus.OK,map);
+    }
+
+    @RequestMapping(value = "getSellerComparisonForSameYear",method = RequestMethod.GET)
+    @ApiOperation(value = "App总览——营收数据-应收实收环比(本年)")
+    public AjaxMessage<Object> getSellerComparisonForSameYear(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
         LocalDate now = LocalDate.now();
-        LocalDate last = now.minusMonths(1);
+
+        List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,12+now.getMonthValue());
+        BigDecimal receivedSameYearComparison = new BigDecimal(0);
+        BigDecimal receivedLastYearComparison = new BigDecimal(0);
+        BigDecimal receivableSameYearComparison = new BigDecimal(0);
+        BigDecimal receivableLastYearComparison = new BigDecimal(0);
+        for(int i=0 ;i<sellerWaterList.size();i++){
+            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>();
-        List<DeviceWaterSupply> sameMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, now.getYear(),now.getMonthValue(),1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
-        List<DeviceWaterSupply> lastMakingWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水源",4, last.getYear(),last.getMonthValue(),1, last.getYear(),last.getMonthValue(),last.getDayOfMonth());
-        List<DeviceWaterSupply> sameSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, now.getYear(),now.getMonthValue(),1, now.getYear(),now.getMonthValue(),now.getDayOfMonth());
-        List<DeviceWaterSupply> lastSupplyWaterList = appPageReportService.deviceWaterReportForDay(companyOrgId,"水厂",3, last.getYear(),last.getMonthValue(),1, last.getYear(),last.getMonthValue(),last.getDayOfMonth());
-        map.put("intakeComparison",appPageReportService.CalculationComparison(sameMakingWaterList,lastMakingWaterList));
-        map.put("makingComparison",appPageReportService.CalculationComparison(sameSupplyWaterList,lastSupplyWaterList));
-        List<DeviceWaterSupply> sameSellerWaterList = appPageReportService.deviceSellerWaterReportForMonth(companyOrgId,2);
-        map.put("sellerComparison", sameSellerWaterList.get(0).getAmount().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameSellerWaterList.get(0).getAmount().multiply(new BigDecimal(100)).divide(sameSellerWaterList.get(1).getAmount(),2));
+        map.put("receivableComparison",receivableComparison);
+        map.put("receivedComparison",receivedComparison);
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
+    @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);
 
 
+        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);
+
+        Map<String,Object> map = new HashMap<String,Object>();
+        map.put("receivableComparison",receivableComparison);
+        map.put("receivedComparison",receivedComparison);
+        return new AjaxMessage<>(ResultStatus.OK,map);
+    }
+
 
 }