From 8b7ea207f4ee4e7ef6e0d518c06f4a4581850675 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 03 五月 2021 19:54:28 +0800
Subject: [PATCH] 暂存代码

---
 service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java |  496 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 490 insertions(+), 6 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java b/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
old mode 100644
new mode 100755
index 3ef801b..e4866c6
--- a/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java
@@ -1,10 +1,16 @@
 package com.java110.report.bmo.reportFeeMonthStatistics.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.repair.RepairUserDto;
 import com.java110.dto.reportFeeMonthStatistics.ReportFeeMonthStatisticsDto;
-import com.java110.intf.IReportFeeMonthStatisticsInnerServiceSMO;
+import com.java110.dto.reportFeeMonthStatistics.ReportFeeMonthStatisticsTotalDto;
+import com.java110.intf.report.IReportFeeMonthStatisticsInnerServiceSMO;
 import com.java110.report.bmo.reportFeeMonthStatistics.IGetReportFeeMonthStatisticsBMO;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -96,7 +102,18 @@
             reportFeeMonthStatisticsDtos = new ArrayList<>();
         }
 
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
+        //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
+        List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+        List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
+        for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
+            reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
+            reportList.add(reportFeeMonthStatistics);
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
@@ -108,13 +125,48 @@
         int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDetailCount(reportFeeMonthStatisticsDto);
 
         List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+        //搴旀敹鎬婚噾棰�(澶ц)
+        Double allReceivableAmount = 0.0;
+        //瀹炴敹閲戦(澶ц)
+        Double allReceivedAmount = 0.0;
         if (count > 0) {
             reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeDetail(reportFeeMonthStatisticsDto);
+            List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryAllFeeDetail(reportFeeMonthStatisticsDto);
+            allReceivableAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivableAmount());
+            allReceivedAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivedAmount());
         } else {
             reportFeeMonthStatisticsDtos = new ArrayList<>();
         }
 
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
+        //搴旀敹鎬婚噾棰�(灏忚)
+        Double totalReceivableAmount = 0.0;
+        //瀹炴敹鎬婚噾棰�(灏忚)
+        Double totalReceivedAmount = 0.0;
+        List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
+        for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
+            //搴旀敹閲戦
+            Double receivableAmount = Double.valueOf(reportFeeMonthStatistics.getReceivableAmount());
+            //瀹炴敹閲戦
+            Double receivedAmount = Double.valueOf(reportFeeMonthStatistics.getReceivedAmount());
+            totalReceivableAmount = totalReceivableAmount + receivableAmount;
+            totalReceivedAmount = totalReceivedAmount + receivedAmount;
+        }
+
+        //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
+        List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+        for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
+            reportFeeMonthStatistics.setTotalReceivableAmount(String.format("%.2f", totalReceivableAmount));
+            reportFeeMonthStatistics.setTotalReceivedAmount(String.format("%.2f", totalReceivedAmount));
+            reportFeeMonthStatistics.setAllReceivableAmount(String.format("%.2f", allReceivableAmount));
+            reportFeeMonthStatistics.setAllReceivedAmount(String.format("%.2f", allReceivedAmount));
+            reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
+            reportList.add(reportFeeMonthStatistics);
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
@@ -142,6 +194,219 @@
     }
 
     @Override
+    public ResponseEntity<String> queryPayFeeDetail(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+        JSONObject countInfo = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetailCount(reportFeeMonthStatisticsDto);
+
+        int count = Integer.parseInt(countInfo.get("count").toString());
+
+        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+        ReportFeeMonthStatisticsTotalDto reportFeeMonthStatisticsTotalDto = new ReportFeeMonthStatisticsTotalDto();
+        List<ReportFeeMonthStatisticsDto> reportList = new ArrayList<>();
+        //鏌ヨ璇ュ皬鍖轰笅鐨勮垂鐢ㄩ」鐩�
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(reportFeeMonthStatisticsDto.getCommunityId());
+        List<FeeConfigDto> feeConfigDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        //搴旀敹鎬婚噾棰�(澶ц)
+        Double allReceivableAmount = 0.0;
+        //瀹炴敹閲戦(澶ц)
+        Double allReceivedAmount = 0.0;
+        //浼樻儬閲戦(澶ц)
+        Double allPreferentialAmount = 0.0;
+        //鍑忓厤閲戦(澶ц)
+        Double allDeductionAmount = 0.0;
+        //婊炵撼閲�(澶ц)
+        Double allLateFee = 0.0;
+        //绌虹疆鎴挎墦鎶�(澶ц)
+        Double allVacantHousingDiscount = 0.0;
+        //绌虹疆鎴垮噺鍏�(澶ц)
+        Double allVacantHousingReduction = 0.0;
+        if (count > 0) {
+            //鏌ヨ缂磋垂鏄庣粏
+            reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetail(reportFeeMonthStatisticsDto);
+            //鏌ヨ搴旀敹銆佸疄鏀舵�婚噾棰�(澶ц)
+            List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryAllPayFeeDetail(reportFeeMonthStatisticsDto);
+            //鏌ヨ(浼樻儬銆佸噺鍏嶃�佹粸绾抽噾銆佺┖缃埧鎵撴姌銆佺┖缃埧鍑忓厤閲戦绛�)澶ц鎬婚噾棰�
+            List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsSum = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetailSum(reportFeeMonthStatisticsDto);
+            allReceivableAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivableAmount());
+            allReceivedAmount = Double.valueOf(reportFeeMonthStatisticsList.get(0).getAllReceivedAmount());
+            for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsSum) {
+                //杩欓噷鏄煡璇㈠嚭鐨勯噾棰濇�诲拰
+                String discountPrice = reportFeeMonthStatistics.getDiscountPrice();
+                //浼樻儬閲戦(澶ц)
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("1")) {
+                    allPreferentialAmount = Double.valueOf(discountPrice);
+                }
+                //鍑忓厤閲戦(澶ц)
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("2")) {
+                    allDeductionAmount = Double.valueOf(discountPrice);
+                }
+                //婊炵撼閲�(澶ц)
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("3")) {
+                    allLateFee = Double.valueOf(discountPrice);
+                }
+                //绌虹疆鎴挎墦鎶橀噾棰�(澶ц)
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("4")) {
+                    allVacantHousingDiscount = Double.valueOf(discountPrice);
+                }
+                //绌虹疆鎴垮噺鍏嶉噾棰�(澶ц)
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("5")) {
+                    allVacantHousingReduction = Double.valueOf(discountPrice);
+                }
+            }
+            //搴旀敹鎬婚噾棰�(灏忚)
+            Double totalReceivableAmount = 0.0;
+            //瀹炴敹鎬婚噾棰�(灏忚)
+            Double totalReceivedAmount = 0.0;
+            //浼樻儬閲戦(灏忚)
+            Double totalPreferentialAmount = 0.0;
+            //鍑忓厤閲戦(灏忚)
+            Double totalDeductionAmount = 0.0;
+            //绌虹疆鎴挎墦鎶橀噾棰�(灏忚)
+            Double totalVacantHousingDiscount = 0.0;
+            //绌虹疆鎴垮噺鍏嶉噾棰�(灏忚)
+            Double totalVacantHousingReduction = 0.0;
+            //婊炵撼閲�(灏忚)
+            Double totalLateFee = 0.0;
+            for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsDtos) {
+                //搴旀敹閲戦
+                Double receivableAmount = Double.valueOf(reportFeeMonthStatistics.getReceivableAmount());
+                //瀹炴敹閲戦
+                Double receivedAmount = Double.valueOf(reportFeeMonthStatistics.getReceivedAmount());
+                totalReceivableAmount = totalReceivableAmount + receivableAmount;
+                totalReceivedAmount = totalReceivedAmount + receivedAmount;
+                //浼樻儬閲戦
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("1")) {
+                    //鑾峰彇浼樻儬閲戦
+                    Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
+                    totalPreferentialAmount = totalPreferentialAmount + discountPrice;
+                    //浼樻儬閲戦
+                    reportFeeMonthStatistics.setPreferentialAmount(reportFeeMonthStatistics.getDiscountPrice());
+                } else {
+                    reportFeeMonthStatistics.setPreferentialAmount("0");
+
+                }
+                //鍑忓厤閲戦
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("2")) {
+                    //鑾峰彇鍑忓厤閲戦
+                    Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
+                    totalDeductionAmount = totalDeductionAmount + discountPrice;
+                    //鍑忓厤閲戦
+                    reportFeeMonthStatistics.setDeductionAmount(reportFeeMonthStatistics.getDiscountPrice());
+                } else {
+                    reportFeeMonthStatistics.setDeductionAmount("0");
+                }
+                //婊炵撼閲�
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("3")) {
+                    //鑾峰彇婊炵撼閲戦噾棰�
+                    Double discountPrice = (Double.valueOf(reportFeeMonthStatistics.getDiscountPrice())) * (-1);
+                    totalLateFee = totalLateFee + discountPrice;
+                    //婊炵撼閲�
+                    reportFeeMonthStatistics.setLateFee(reportFeeMonthStatistics.getDiscountPrice());
+                } else {
+                    reportFeeMonthStatistics.setLateFee("0");
+                }
+                //绌虹疆鎴挎墦鎶�
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("4")) {
+                    //绌虹疆鎴挎墦鎶橀噾棰�
+                    Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
+                    totalVacantHousingDiscount = totalVacantHousingDiscount + discountPrice;
+                    //绌虹疆鎴挎墦鎶�
+                    reportFeeMonthStatistics.setVacantHousingDiscount(reportFeeMonthStatistics.getDiscountPrice());
+                } else {
+                    reportFeeMonthStatistics.setVacantHousingDiscount("0");
+                }
+                //绌虹疆鎴垮噺鍏�
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("5")) {
+                    //绌虹疆鎴垮噺鍏嶉噾棰�
+                    Double discountPrice = Double.valueOf(reportFeeMonthStatistics.getDiscountPrice());
+                    totalVacantHousingReduction = totalVacantHousingReduction + discountPrice;
+                    //绌虹疆鎴垮噺鍏�
+                    reportFeeMonthStatistics.setVacantHousingReduction(reportFeeMonthStatistics.getDiscountPrice());
+                } else {
+                    reportFeeMonthStatistics.setVacantHousingReduction("0");
+                }
+
+                if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportFeeMonthStatistics.getPayerObjType())) {
+                    reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getFloorNum()
+                            + "鏍�" + reportFeeMonthStatistics.getUnitNum()
+                            + "鍗曞厓" + reportFeeMonthStatistics.getRoomNum() + "瀹�");
+                } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(reportFeeMonthStatistics.getPayerObjType())) {
+                    reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getCarNum());
+                }else{
+                    reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getContractCode());
+
+                }
+
+                if (!StringUtil.isEmpty(reportFeeMonthStatistics.getImportFeeName())) {
+                    reportFeeMonthStatistics.setFeeName(reportFeeMonthStatistics.getImportFeeName());
+                }
+
+                //璐圭敤椤圭洰
+                reportFeeMonthStatistics.setFeeConfigDtos(feeConfigDtos);
+                reportList.add(reportFeeMonthStatistics);
+            }
+            //搴旀敹鎬婚噾棰�(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalReceivableAmount(String.format("%.2f", totalReceivableAmount));
+            //瀹炴敹閲戦(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalReceivedAmount(String.format("%.2f", totalReceivedAmount));
+            //浼樻儬閲戦(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalPreferentialAmount(String.valueOf(totalPreferentialAmount));
+            //鍑忓厤閲戦(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalDeductionAmount(String.valueOf(totalDeductionAmount));
+            //婊炵撼閲�(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalLateFee(String.valueOf(totalLateFee));
+            //绌虹疆鎴挎墦鎶�(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalVacantHousingDiscount(String.valueOf(totalVacantHousingDiscount));
+            //绌虹疆鎴垮噺鍏�(灏忚)
+            reportFeeMonthStatisticsTotalDto.setTotalVacantHousingReduction(String.valueOf(totalVacantHousingReduction));
+            //搴旀敹閲戦(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllReceivableAmount(String.format("%.2f", allReceivableAmount));
+            //瀹炴敹閲戦(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllReceivedAmount(String.format("%.2f", allReceivedAmount));
+            //浼樻儬閲戦(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllPreferentialAmount(String.valueOf(allPreferentialAmount));
+            //鍑忓厤閲戦(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllDeductionAmount(String.valueOf(allDeductionAmount));
+            //婊炵撼閲�(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllLateFee(String.valueOf(allLateFee));
+            //绌虹疆鎴挎墦鎶橀噾棰�(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllVacantHousingDiscount(String.valueOf(allVacantHousingDiscount));
+            //绌虹疆鎴垮噺鍏嶉噾棰�(澶ц)
+            reportFeeMonthStatisticsTotalDto.setAllVacantHousingReduction(String.valueOf(allVacantHousingReduction));
+        } else {
+            reportFeeMonthStatisticsDtos = new ArrayList<>();
+            reportList.addAll(reportFeeMonthStatisticsDtos);
+            reportFeeMonthStatisticsTotalDto = new ReportFeeMonthStatisticsTotalDto();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList, reportFeeMonthStatisticsTotalDto);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> queryDeadlineFee(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+        int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryDeadlineFeeCount(reportFeeMonthStatisticsDto);
+
+        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+        if (count > 0) {
+            reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryDeadlineFee(reportFeeMonthStatisticsDto);
+
+            freshReportDeadlineDay(reportFeeMonthStatisticsDtos);
+        } else {
+            reportFeeMonthStatisticsDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportFeeMonthStatisticsDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    @Override
     public ResponseEntity<String> queryPrePaymentCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
 
         List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
@@ -149,6 +414,209 @@
         reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPrePaymentCount(reportFeeMonthStatisticsDto);
 
         ResultVo resultVo = new ResultVo(reportFeeMonthStatisticsDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> queryDeadlinePaymentCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
+        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+
+        reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryDeadlinePaymentCount(reportFeeMonthStatisticsDto);
+
+        ResultVo resultVo = new ResultVo(reportFeeMonthStatisticsDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> queryOwePaymentCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
+        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+        List<ReportFeeMonthStatisticsDto> reportAllFeeMonthStatisticsDtos = null;
+
+        reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryOwePaymentCount(reportFeeMonthStatisticsDto);
+
+        reportAllFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryAllPaymentCount(reportFeeMonthStatisticsDto);
+        int normalFee = 0;
+        for (ReportFeeMonthStatisticsDto aReportFeeMonthStatisticsDto : reportAllFeeMonthStatisticsDtos) {
+            for (ReportFeeMonthStatisticsDto oweReportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
+                String objCount = aReportFeeMonthStatisticsDto.getObjCount();
+                if (aReportFeeMonthStatisticsDto.getFeeName().equals(oweReportFeeMonthStatisticsDto.getFeeName())) {
+                    aReportFeeMonthStatisticsDto.setObjCount(oweReportFeeMonthStatisticsDto.getObjCount());
+                    normalFee = Integer.parseInt(objCount) - Integer.parseInt(oweReportFeeMonthStatisticsDto.getObjCount());
+                    aReportFeeMonthStatisticsDto.setNormalCount(normalFee + "");
+                }
+            }
+        }
+
+
+        ResultVo resultVo = new ResultVo(reportAllFeeMonthStatisticsDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    /**
+     * 鏌ヨ鎶ヨ〃涓撳 缁熻淇℃伅
+     * @param reportFeeMonthStatisticsDto
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryReportProficientCount(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+        JSONObject result = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportProficientCount(reportFeeMonthStatisticsDto);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(result.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    /**
+     * 鏌ヨ鎶ヤ慨淇℃伅
+     *
+     * @param repairUserDto
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryRepair(RepairUserDto repairUserDto) {
+        //鏌ヨ鍛樺伐鎶ヤ慨琛ㄥ憳宸ヤ俊鎭�
+        List<RepairUserDto> repairUsers = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+        int count = repairUsers.size();
+        //鑾峰彇鍛樺伐id鍜屽鍚嶉泦鍚�
+        List<RepairUserDto> staffs;
+        if (StringUtil.isEmpty(repairUserDto.getStaffId())) {
+            repairUserDto.setPage(-1);
+            staffs = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+        } else {
+            repairUserDto.setPage(-1);
+            repairUserDto.setStaffId(null);
+            staffs = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairForStaff(repairUserDto);
+        }
+        List<RepairUserDto> repairUserList = new ArrayList<>();
+        //澶勭悊涓�绘暟閲�
+        int dealNumber = 0;
+        //缁撳崟鎬绘暟閲�
+        int statementNumber = 0;
+        //閫�鍗曟�绘暟閲�
+        int chargebackNumber = 0;
+        //杞崟鎬绘暟閲�
+        int transferOrderNumber = 0;
+        //娲惧崟鎬绘暟閲�
+        int dispatchNumber = 0;
+        if (count > 0) {
+            for (RepairUserDto repairUser : repairUsers) {
+                RepairUserDto repairUserInfo = new RepairUserDto();
+                //鍛樺伐id
+                repairUserDto.setStaffId(repairUser.getStaffId());
+                List<RepairUserDto> repairUserDtoList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryRepairWithOutPage(repairUserDto);
+                if (repairUserDtoList != null && repairUserDtoList.size() > 0) {
+                    //澶勭悊涓暟閲�
+                    int dealAmount = 0;
+                    //缁撳崟鏁伴噺
+                    int statementAmount = 0;
+                    //閫�鍗曟暟閲�
+                    int chargebackAmount = 0;
+                    //杞崟鏁伴噺
+                    int transferOrderAmount = 0;
+                    //娲惧崟鏁伴噺
+                    int dispatchAmount = 0;
+                    for (RepairUserDto repair : repairUserDtoList) {
+                        //澶勭悊涓姸鎬�
+                        if (repair.getState().equals("10001")) {
+                            //鑾峰彇鏁伴噺
+                            int amount = Integer.parseInt(repair.getAmount());
+                            dealAmount = dealAmount + amount;
+                        } else if (repair.getState().equals("10002")) {  //缁撳崟鐘舵��
+                            //鑾峰彇鏁伴噺
+                            int amount = Integer.parseInt(repair.getAmount());
+                            statementAmount = statementAmount + amount;
+                        } else if (repair.getState().equals("10003")) {  //閫�鍗曠姸鎬�
+                            //鑾峰彇鏁伴噺
+                            int amount = Integer.parseInt(repair.getAmount());
+                            chargebackAmount = chargebackAmount + amount;
+                        } else if (repair.getState().equals("10004")) {  //杞崟鐘舵��
+                            //鑾峰彇鏁伴噺
+                            int amount = Integer.parseInt(repair.getAmount());
+                            transferOrderAmount = transferOrderAmount + amount;
+                        } else if (repair.getState().equals("10006")) {  //娲惧崟鐘舵��
+                            int amount = Integer.parseInt(repair.getAmount());
+                            dispatchAmount = dispatchAmount + amount;
+                        }
+                    }
+                    //鍛樺伐id
+                    repairUserInfo.setStaffId(repairUser.getStaffId());
+                    //鍛樺伐濮撳悕
+                    repairUserInfo.setStaffName(repairUser.getStaffName());
+                    //澶勭悊涓姤淇暟閲�
+                    repairUserInfo.setDealAmount(Integer.toString(dealAmount));
+                    //澶勭悊涓姤淇�绘暟閲�
+                    repairUserInfo.setDealNumber(Integer.toString(dealNumber));
+                    //缁撳崟鎶ヤ慨鏁伴噺
+                    repairUserInfo.setStatementAmount(Integer.toString(statementAmount));
+                    //缁撳崟鎶ヤ慨鎬绘暟閲�
+                    repairUserInfo.setStatementNumber(Integer.toString(statementNumber));
+                    //閫�鍗曟姤淇暟閲�
+                    repairUserInfo.setChargebackAmount(Integer.toString(chargebackAmount));
+                    //閫�鍗曟姤淇�绘暟閲�
+                    repairUserInfo.setChargebackNumber(Integer.toString(chargebackNumber));
+                    //杞崟鎶ヤ慨鏁伴噺
+                    repairUserInfo.setTransferOrderAmount(Integer.toString(transferOrderAmount));
+                    //杞崟鎶ヤ慨鎬绘暟閲�
+                    repairUserInfo.setTransferOrderNumber(Integer.toString(transferOrderNumber));
+                    //娲惧崟鎶ヤ慨鏁伴噺
+                    repairUserInfo.setDispatchAmount(Integer.toString(dispatchAmount));
+                    //娲惧崟鎶ヤ慨鎬绘暟閲�
+                    repairUserInfo.setDispatchNumber(Integer.toString(dispatchNumber));
+                    //鍛樺伐id鍜屽鍚嶄俊鎭泦鍚�
+                    repairUserInfo.setRepairList(staffs);
+                    repairUserList.add(repairUserInfo);
+                } else {
+                    continue;
+                }
+                dealNumber = Integer.parseInt(repairUserInfo.getDealAmount()) + dealNumber;
+                statementNumber = Integer.parseInt(repairUserInfo.getStatementAmount()) + statementNumber;
+                chargebackNumber = Integer.parseInt(repairUserInfo.getChargebackAmount()) + chargebackNumber;
+                transferOrderNumber = Integer.parseInt(repairUserInfo.getTransferOrderAmount()) + transferOrderNumber;
+                dispatchNumber = Integer.parseInt(repairUserInfo.getDispatchAmount()) + dispatchNumber;
+            }
+        } else {
+            repairUserList = new ArrayList<>();
+        }
+
+        RepairUserDto repairUser = new RepairUserDto();
+        repairUser.setDealNumber(Integer.toString(dealNumber));
+        repairUser.setStatementNumber(Integer.toString(statementNumber));
+        repairUser.setChargebackNumber(Integer.toString(chargebackNumber));
+        repairUser.setTransferOrderNumber(Integer.toString(transferOrderNumber));
+        repairUser.setDispatchNumber(Integer.toString(dispatchNumber));
+
+        //鑾峰彇鎬绘潯鏁�
+        int size = staffs.size();
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) repairUserDto.getRow()), repairUserList.size(), repairUserList, staffs, repairUser);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> queryNoFeeRooms(RoomDto roomDto) {
+        int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryNoFeeRoomsCount(roomDto);
+
+        List<RoomDto> roomDtos = null;
+        if (count > 0) {
+            roomDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryNoFeeRooms(roomDto);
+        } else {
+            roomDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) roomDto.getRow()), count, roomDtos);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
@@ -173,7 +641,7 @@
                 }
 
                 try {
-                    tmpReportFeeMonthStatisticsDto.setOweDay(DateUtil.daysBetween(DateUtil.getCurrentDate(), DateUtil.getDateFromString(tmpReportFeeMonthStatisticsDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A)));
+                    tmpReportFeeMonthStatisticsDto.setOweDay(DateUtil.daysBetween(DateUtil.getDateFromString(tmpReportFeeMonthStatisticsDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A), DateUtil.getCurrentDate()));
                 } catch (ParseException e) {
                     logger.error("璐圭敤缁撴潫鏃堕棿閿欒" + tmpReportFeeMonthStatisticsDto.getEndTime(), e);
                 }
@@ -191,11 +659,11 @@
 
     private void freshReportOweDay(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
 
-        Date monthFirstDate = DateUtil.getNextMonthFirstDate();
+        Date nowDate = DateUtil.getCurrentDate();
 
         for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
             try {
-                int day = DateUtil.daysBetween(monthFirstDate, DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
+                int day = DateUtil.daysBetween(nowDate, DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getFeeCreateTime(),
                         DateUtil.DATE_FORMATE_STRING_A));
                 reportFeeMonthStatisticsDto.setOweDay(day);
             } catch (Exception e) {
@@ -205,5 +673,21 @@
         }
     }
 
+    private void freshReportDeadlineDay(List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos) {
+
+        Date nowDate = DateUtil.getCurrentDate();
+
+        for (ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto : reportFeeMonthStatisticsDtos) {
+            try {
+                int day = DateUtil.daysBetween(DateUtil.getDateFromString(reportFeeMonthStatisticsDto.getDeadlineTime(),
+                        DateUtil.DATE_FORMATE_STRING_A), nowDate);
+                reportFeeMonthStatisticsDto.setOweDay(day);
+            } catch (Exception e) {
+                logger.error("璁$畻娆犺垂澶╂暟澶辫触", e);
+            }
+
+        }
+    }
+
 
 }

--
Gitblit v1.8.0