From 6e8c95d31d85b53857e4e3ce12ea303eb0ea42eb Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 19 八月 2021 00:47:48 +0800
Subject: [PATCH] 优化代码

---
 service-report/src/main/java/com/java110/report/smo/impl/ReportFeeYearCollectionInnerServiceSMOImpl.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 1 deletions(-)

diff --git a/service-report/src/main/java/com/java110/report/smo/impl/ReportFeeYearCollectionInnerServiceSMOImpl.java b/service-report/src/main/java/com/java110/report/smo/impl/ReportFeeYearCollectionInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index aa55ddb..d7c37da
--- a/service-report/src/main/java/com/java110/report/smo/impl/ReportFeeYearCollectionInnerServiceSMOImpl.java
+++ b/service-report/src/main/java/com/java110/report/smo/impl/ReportFeeYearCollectionInnerServiceSMOImpl.java
@@ -16,6 +16,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -63,15 +64,68 @@
         //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
 
         int page = reportFeeYearCollectionDto.getPage();
+        List<ReportFeeYearCollectionDto> reportFeeYearCollections = null;
+
+        //涓嶅垎椤电洿鎺ユ煡鍏ㄩ噺鏁版嵁
+        if (reportFeeYearCollectionDto.getRow() > 10000) {
+            List<Map> reportFeeYearCollectionMaps =
+                    reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfos(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto));
+
+            reportFeeYearCollections = doCreateReportFeeYearCollections(reportFeeYearCollectionMaps);
+            return reportFeeYearCollections;
+        }
 
         if (page != PageDto.DEFAULT_PAGE) {
             reportFeeYearCollectionDto.setPage((page - 1) * reportFeeYearCollectionDto.getRow());
         }
 
-        List<ReportFeeYearCollectionDto> reportFeeYearCollections = BeanConvertUtil.covertBeanList(reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)), ReportFeeYearCollectionDto.class);
+        reportFeeYearCollections = BeanConvertUtil.covertBeanList(reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)), ReportFeeYearCollectionDto.class);
 
         freshDetails(reportFeeYearCollections);
         return reportFeeYearCollections;
+    }
+
+    /**
+     * 鍒涘缓瀵硅薄
+     *
+     * @param reportFeeYearCollectionMaps
+     * @return
+     */
+    private List<ReportFeeYearCollectionDto> doCreateReportFeeYearCollections(List<Map> reportFeeYearCollectionMaps) {
+        List<ReportFeeYearCollectionDto> reportFeeYearCollectionDtos = new ArrayList<>();
+        ReportFeeYearCollectionDto reportFeeYearCollectionDto = null;
+
+        for (Map reportFeeYearCollectionMap : reportFeeYearCollectionMaps) {
+            if (!hasReportFeeYearCollectionDto(reportFeeYearCollectionMap, reportFeeYearCollectionDtos)) {
+                reportFeeYearCollectionDto = BeanConvertUtil.covertBean(reportFeeYearCollectionMap, ReportFeeYearCollectionDto.class);
+                reportFeeYearCollectionDtos.add(reportFeeYearCollectionDto);
+            }
+        }
+        List<ReportFeeYearCollectionDetailDto> reportFeeYearCollectionDetailDtos = null;
+        ReportFeeYearCollectionDetailDto reportFeeYearCollectionDetailDto = null;
+        for (ReportFeeYearCollectionDto tmpReportFeeYearCollectionDto : reportFeeYearCollectionDtos) {
+            reportFeeYearCollectionDetailDtos = new ArrayList<>();
+            for (Map reportFeeYearCollectionMap : reportFeeYearCollectionMaps) {
+                if (tmpReportFeeYearCollectionDto.getCollectionId().equals(reportFeeYearCollectionMap.get("collectionId"))) {
+                    reportFeeYearCollectionDetailDto = BeanConvertUtil.covertBean(reportFeeYearCollectionMap, ReportFeeYearCollectionDetailDto.class);
+                    reportFeeYearCollectionDetailDtos.add(reportFeeYearCollectionDetailDto);
+                }
+            }
+            tmpReportFeeYearCollectionDto.setReportFeeYearCollectionDetailDtos(reportFeeYearCollectionDetailDtos);
+        }
+
+        return reportFeeYearCollectionDtos;
+    }
+
+    private boolean hasReportFeeYearCollectionDto(Map reportFeeYearCollectionMap, List<ReportFeeYearCollectionDto> reportFeeYearCollectionDtos) {
+
+        for (ReportFeeYearCollectionDto reportFeeYearCollectionDto : reportFeeYearCollectionDtos) {
+            if (reportFeeYearCollectionDto.getCollectionId().equals(reportFeeYearCollectionMap.get("collectionId"))) {
+                return true;
+            }
+        }
+
+        return false;
     }
 
     private void freshDetails(List<ReportFeeYearCollectionDto> reportFeeYearCollections) {
@@ -90,6 +144,7 @@
                 = reportFeeYearCollectionDetailInnerServiceSMOImpl.queryReportFeeYearCollectionDetails(reportFeeYearCollectionDetailDto);
 
         List<ReportFeeYearCollectionDetailDto> tmpReportFeeYearCollectionDetailDtos = null;
+        //寰幆 涓昏〃
         for (ReportFeeYearCollectionDto reportFeeYearCollectionDto : reportFeeYearCollections) {
             tmpReportFeeYearCollectionDetailDtos = new ArrayList<>();
             for (ReportFeeYearCollectionDetailDto tmpReportFeeYearCollectionDetailDto : reportFeeYearCollectionDetailDtos) {
@@ -112,6 +167,16 @@
         return reportFeeYearCollectionServiceDaoImpl.queryReportFeeYearCollectionsCount(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto));
     }
 
+    @Override
+    public List<Map> getReportFeeYearCollectionInfo(@RequestBody Map beanCovertMap) {
+        return reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(beanCovertMap);
+    }
+
+    @Override
+    public void saveReportFeeYearCollectionInfo(@RequestBody Map beanCovertMap) {
+         reportFeeYearCollectionServiceDaoImpl.saveReportFeeYearCollectionInfo(beanCovertMap);
+    }
+
     public IReportFeeYearCollectionServiceDao getReportFeeYearCollectionServiceDaoImpl() {
         return reportFeeYearCollectionServiceDaoImpl;
     }

--
Gitblit v1.8.0