From b5e47a74ad88c453bf82fb8b870b69ac9d45503f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 06 八月 2021 16:08:51 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-report/src/main/java/com/java110/report/bmo/reportFeeMonthStatistics/impl/GetReportFeeMonthStatisticsBMOImpl.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 107 insertions(+), 12 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 a08e801..69f646c
--- 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,6 +1,7 @@
 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;
@@ -58,9 +59,18 @@
     public ResponseEntity<String> queryReportFeeSummary(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
         int count = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummaryCount(reportFeeMonthStatisticsDto);
 
-        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = null;
+        List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsDtos = new ArrayList<>();
         if (count > 0) {
-            reportFeeMonthStatisticsDtos = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummary(reportFeeMonthStatisticsDto);
+            List<ReportFeeMonthStatisticsDto> reportFeeMonthStatisticsList = reportFeeMonthStatisticsInnerServiceSMOImpl.queryReportFeeSummary(reportFeeMonthStatisticsDto);
+            for (ReportFeeMonthStatisticsDto reportFeeMonthStatistics : reportFeeMonthStatisticsList) {
+                //鑾峰彇搴旀敹閲戦
+                double receivableAmount = Double.parseDouble(reportFeeMonthStatistics.getReceivableAmount());
+                //鑾峰彇瀹炴敹閲戦
+                double receivedAmount = Double.parseDouble(reportFeeMonthStatistics.getReceivedAmount());
+                double chargeRate = (receivedAmount / receivableAmount) * 100.0;
+                reportFeeMonthStatistics.setChargeRate(String.format("%.2f", chargeRate) + "%");
+                reportFeeMonthStatisticsDtos.add(reportFeeMonthStatistics);
+            }
         } else {
             reportFeeMonthStatisticsDtos = new ArrayList<>();
         }
@@ -194,6 +204,7 @@
 
     @Override
     public ResponseEntity<String> queryPayFeeDetail(ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto) {
+
         JSONObject countInfo = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDetailCount(reportFeeMonthStatisticsDto);
 
         int count = Integer.parseInt(countInfo.get("count").toString());
@@ -282,7 +293,6 @@
                     reportFeeMonthStatistics.setPreferentialAmount(reportFeeMonthStatistics.getDiscountPrice());
                 } else {
                     reportFeeMonthStatistics.setPreferentialAmount("0");
-
                 }
                 //鍑忓厤閲戦
                 if (!StringUtil.isEmpty(reportFeeMonthStatistics.getDiscountSmallType()) && reportFeeMonthStatistics.getDiscountSmallType().equals("2")) {
@@ -324,19 +334,19 @@
                 } else {
                     reportFeeMonthStatistics.setVacantHousingReduction("0");
                 }
-
                 if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportFeeMonthStatistics.getPayerObjType())) {
                     reportFeeMonthStatistics.setObjName(reportFeeMonthStatistics.getFloorNum()
                             + "鏍�" + reportFeeMonthStatistics.getUnitNum()
                             + "鍗曞厓" + reportFeeMonthStatistics.getRoomNum() + "瀹�");
-                } else {
+                } 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);
@@ -374,9 +384,6 @@
             reportList.addAll(reportFeeMonthStatisticsDtos);
             reportFeeMonthStatisticsTotalDto = new ReportFeeMonthStatisticsTotalDto();
         }
-
-        /*FeeDetailResultVo resultVo = new FeeDetailResultVo(countInfo.getDouble("totalReceivableAmount"), countInfo.getDouble("totalReceivedAmount"),
-                (int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList);*/
 
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reportFeeMonthStatisticsDto.getRow()), count, reportList, reportFeeMonthStatisticsTotalDto);
 
@@ -463,6 +470,20 @@
     }
 
     /**
+     * 鏌ヨ鎶ヨ〃涓撳 缁熻淇℃伅
+     *
+     * @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
@@ -476,12 +497,26 @@
         //鑾峰彇鍛樺伐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;
+        //宸插洖璁挎�绘暟閲�
+        int returnNumber = 0;
         if (count > 0) {
             for (RepairUserDto repairUser : repairUsers) {
                 RepairUserDto repairUserInfo = new RepairUserDto();
@@ -499,6 +534,10 @@
                     int transferOrderAmount = 0;
                     //娲惧崟鏁伴噺
                     int dispatchAmount = 0;
+                    //鍥炶鏁伴噺
+                    int returnAmount = 0;
+                    //璇勫垎
+                    String score = "";
                     for (RepairUserDto repair : repairUserDtoList) {
                         //澶勭悊涓姸鎬�
                         if (repair.getState().equals("10001")) {
@@ -520,6 +559,12 @@
                         } else if (repair.getState().equals("10006")) {  //娲惧崟鐘舵��
                             int amount = Integer.parseInt(repair.getAmount());
                             dispatchAmount = dispatchAmount + amount;
+                        } else if (repair.getState().equals("10008")) {  //宸插洖璁跨姸鎬�
+                            int amount = Integer.parseInt(repair.getAmount());
+                            returnAmount = returnAmount + amount;
+                        }
+                        if (!StringUtil.isEmpty(repair.getScore())) {
+                            score = repair.getScore();
                         }
                     }
                     //鍛樺伐id
@@ -528,27 +573,77 @@
                     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));
+                    //鍥炶鏁伴噺
+                    repairUserInfo.setReturnAmount(Integer.toString(returnAmount));
+                    //鍥炶鎬绘暟閲�
+                    repairUserInfo.setReturnNumber(Integer.toString(returnNumber));
                     //鍛樺伐id鍜屽鍚嶄俊鎭泦鍚�
                     repairUserInfo.setRepairList(staffs);
+                    //鍛樺伐璇勫垎
+                    repairUserInfo.setScore(score);
                     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;
+                returnNumber = Integer.parseInt(repairUserInfo.getReturnAmount()) + returnNumber;
             }
         } else {
             repairUserList = new ArrayList<>();
         }
 
-        int size = repairUserList.size();
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) size / (double) repairUserDto.getRow()), size, repairUserList, staffs);
+        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));
+        repairUser.setReturnNumber(Integer.toString(returnNumber));
+
+        //鑾峰彇鎬绘潯鏁�
+        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);
 

--
Gitblit v1.8.0