From 049aff8f70e038a177ec271ea02ab2dd4912c31d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 23 二月 2024 03:26:45 +0800
Subject: [PATCH] 优化代码

---
 service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java |  144 +++++++++++++++++++++++-------------------------
 1 files changed, 69 insertions(+), 75 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java b/service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java
index 5ed2f2a..0c4e6da 100644
--- a/service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java
+++ b/service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java
@@ -5,6 +5,7 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.Java110ThreadPoolFactory;
 import com.java110.dto.floor.FloorDto;
 import com.java110.dto.report.QueryStatisticsDto;
 import com.java110.dto.report.ReportFloorFeeStatisticsDto;
@@ -13,6 +14,7 @@
 import com.java110.report.statistics.IFloorFeeStatistics;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.ListUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +34,9 @@
 
     @Autowired
     private IFloorFeeStatistics floorFeeStatisticsImpl;
+
+    @Autowired
+    private IFeeStatistics feeStatisticsImpl;
 
     @Autowired
     private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
@@ -60,6 +65,10 @@
         //todo 鏌ヨ妤兼爧
         FloorDto floorDto = new FloorDto();
         floorDto.setCommunityId(reqJson.getString("communityId"));
+        if(reqJson.containsKey("page")) {
+            floorDto.setPage(reqJson.getIntValue("page"));
+            floorDto.setRow(reqJson.getIntValue("row"));
+        }
         List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
 
         if (ListUtil.isNull(floorDtos)) {
@@ -67,45 +76,30 @@
             return;
         }
 
-        List<String> floorIds = new ArrayList<>();
         List<Map> datas = new ArrayList<>();
-        Map<String,Object> dataInfo = null;
-        for(FloorDto floorDto1:floorDtos){
-            floorIds.add(floorDto1.getFloorId());
-            dataInfo = new HashMap<>();
-            dataInfo.put("floorId",floorDto1.getFloorId());
-            dataInfo.put("floorName",floorDto1.getFloorName());
-            dataInfo.put("floorNum",floorDto1.getFloorNum());
-            datas.add(dataInfo);
+        Java110ThreadPoolFactory java110ThreadPoolFactory = null;
+        try {
+            java110ThreadPoolFactory = Java110ThreadPoolFactory.getInstance().createThreadPool(5);
+            for (FloorDto floorDto1 : floorDtos) {
+                queryStatisticsDto.setFloorId(floorDto1.getFloorId());
+                QueryStatisticsDto tmpQueryStatisticsDto = BeanConvertUtil.covertBean(queryStatisticsDto,QueryStatisticsDto.class);
+                java110ThreadPoolFactory.submit(() -> {
+                    //todo 娆犺垂鎴锋暟
+                    List<Map> floorDatas = feeStatisticsImpl.getFloorFeeSummary(tmpQueryStatisticsDto);
+                    if (!ListUtil.isNull(floorDatas)) {
+                        datas.add(floorDatas.get(0));
+                    }
+                    return datas;
+                });
+            }
+            java110ThreadPoolFactory.get();
+        } finally {
+            if (java110ThreadPoolFactory != null) {
+                java110ThreadPoolFactory.stop();
+            }
         }
-        queryStatisticsDto.setFloorIds(floorIds.toArray(new String[floorIds.size()]));
-
-        //todo 娆犺垂鎴垮眿鏁� oweRoomCount
-        List<ReportFloorFeeStatisticsDto> oweRoomCounts = floorFeeStatisticsImpl.getFloorOweRoomCount(queryStatisticsDto);
-
-        //todo 鏀惰垂鎴垮眿鏁� feeRoomCount
-        List<ReportFloorFeeStatisticsDto> feeRoomCounts = floorFeeStatisticsImpl.getFloorFeeRoomCount(queryStatisticsDto);
-
-        //todo 瀹炴敹閲戦 receivedFee
-        List<ReportFloorFeeStatisticsDto> receivedFees = floorFeeStatisticsImpl.getFloorReceivedFee(queryStatisticsDto);
-
-        //todo 棰勬敹閲戦 preReceivedFee
-        List<ReportFloorFeeStatisticsDto> preReceivedFees = floorFeeStatisticsImpl.getFloorPreReceivedFee(queryStatisticsDto);
-
-        //todo 鍘嗗彶娆犺垂閲戦 hisOweFee
-        List<ReportFloorFeeStatisticsDto> hisOweFees = floorFeeStatisticsImpl.getFloorHisOweFee(queryStatisticsDto);
-
-        //todo 褰撴湡搴旀敹閲戦 curReceivableFee
-        List<ReportFloorFeeStatisticsDto> curReceivableFees = floorFeeStatisticsImpl.getFloorCurReceivableFee(queryStatisticsDto);
-
-        //todo 褰撴湡瀹炴敹閲戦 curReceivedFee
-        List<ReportFloorFeeStatisticsDto> curReceivedFees = floorFeeStatisticsImpl.getFloorCurReceivedFee(queryStatisticsDto);
-
-        //todo 娆犺垂杩藉洖 hisReceivedFee
-        List<ReportFloorFeeStatisticsDto> hisReceivedFees = floorFeeStatisticsImpl.getFloorHisOweFee(queryStatisticsDto);
 
         //todo 鎷兼帴鏁版嵁
-        computeData(datas,oweRoomCounts,feeRoomCounts,receivedFees,preReceivedFees,hisOweFees,curReceivableFees,curReceivedFees,hisReceivedFees);
 
         //List<Map> datas = feeStatisticsImpl.getFloorFeeSummary(queryStatisticsDto);
 
@@ -153,82 +147,82 @@
                              List<ReportFloorFeeStatisticsDto> curReceivedFees,
                              List<ReportFloorFeeStatisticsDto> hisReceivedFees) {
         //todo 娆犺垂鎴垮眿鏁� oweRoomCount
-        for(Map data :datas){
-            data.put("oweRoomCount","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:oweRoomCounts){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("oweRoomCount",reportFloorFeeStatisticsDto.getOweRoomCount());
+        for (Map data : datas) {
+            data.put("oweRoomCount", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : oweRoomCounts) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("oweRoomCount", reportFloorFeeStatisticsDto.getOweRoomCount());
                 }
             }
         }
 
         //todo 鏀惰垂鎴垮眿鏁� feeRoomCount
-        for(Map data :datas){
-            data.put("feeRoomCount","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:feeRoomCounts){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("feeRoomCount",reportFloorFeeStatisticsDto.getFeeRoomCount());
+        for (Map data : datas) {
+            data.put("feeRoomCount", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : feeRoomCounts) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("feeRoomCount", reportFloorFeeStatisticsDto.getFeeRoomCount());
                 }
             }
         }
 
         //todo 瀹炴敹閲戦 receivedFee
-        for(Map data :datas){
-            data.put("receivedFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:receivedFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("receivedFee",reportFloorFeeStatisticsDto.getReceivedFee());
+        for (Map data : datas) {
+            data.put("receivedFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : receivedFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("receivedFee", reportFloorFeeStatisticsDto.getReceivedFee());
                 }
             }
         }
 
         //todo 棰勬敹閲戦 preReceivedFee
-        for(Map data :datas){
-            data.put("preReceivedFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:preReceivedFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("preReceivedFee",reportFloorFeeStatisticsDto.getPreReceivedFee());
+        for (Map data : datas) {
+            data.put("preReceivedFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : preReceivedFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("preReceivedFee", reportFloorFeeStatisticsDto.getPreReceivedFee());
                 }
             }
         }
 
 
         //todo 鍘嗗彶娆犺垂閲戦 hisOweFee
-        for(Map data :datas){
-            data.put("hisOweFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:hisOweFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("hisOweFee",reportFloorFeeStatisticsDto.getHisOweFee());
+        for (Map data : datas) {
+            data.put("hisOweFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : hisOweFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("hisOweFee", reportFloorFeeStatisticsDto.getHisOweFee());
                 }
             }
         }
 
         //todo 褰撴湡搴旀敹閲戦 curReceivableFee
-        for(Map data :datas){
-            data.put("curReceivableFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:curReceivableFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("curReceivableFee",reportFloorFeeStatisticsDto.getCurReceivableFee());
+        for (Map data : datas) {
+            data.put("curReceivableFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : curReceivableFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("curReceivableFee", reportFloorFeeStatisticsDto.getCurReceivableFee());
                 }
             }
         }
 
         //todo 褰撴湡瀹炴敹閲戦 curReceivedFee
 
-        for(Map data :datas){
-            data.put("curReceivedFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:curReceivedFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("curReceivedFee",reportFloorFeeStatisticsDto.getCurReceivedFee());
+        for (Map data : datas) {
+            data.put("curReceivedFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : curReceivedFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("curReceivedFee", reportFloorFeeStatisticsDto.getCurReceivedFee());
                 }
             }
         }
         //todo 娆犺垂杩藉洖 hisReceivedFee
-        for(Map data :datas){
-            data.put("hisReceivedFee","0");
-            for(ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto:hisReceivedFees){
-                if(reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))){
-                    data.put("hisReceivedFee",reportFloorFeeStatisticsDto.getHisReceivedFee());
+        for (Map data : datas) {
+            data.put("hisReceivedFee", "0");
+            for (ReportFloorFeeStatisticsDto reportFloorFeeStatisticsDto : hisReceivedFees) {
+                if (reportFloorFeeStatisticsDto.getFloorId().equals(data.get("floorId"))) {
+                    data.put("hisReceivedFee", reportFloorFeeStatisticsDto.getHisReceivedFee());
                 }
             }
         }

--
Gitblit v1.8.0