From 045023133d111be97ad52f097b4b99a2cf5a8311 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 06 九月 2024 00:22:47 +0800
Subject: [PATCH] 考核结果导出优化2

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |  111 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 72 insertions(+), 39 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
index 1294a76..8f6ab0a 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -317,19 +317,30 @@
         roleControl(checkIndexCar);
         List<CheckIndexCar> checkIndexCars = indexCarService.selectCheckIndexCarList(checkIndexCar);
         //璁$畻骞冲潎鍊兼斁鍦╡xcel鏈�鍚�
-        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexCars)) {
-            //鍏堝尯鍒嗗悇涓尯鍘匡紝鍐嶅尯鍒嗚�冩牳鏍囩
-            Map<Long, List<CheckIndexCar>> carMap = checkIndexCars.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
-            carMap.forEach((deptId,list)->{
-                List<CheckIndexCar> provinceList = list.stream().filter(car -> CheckConstants.Examine_Tag_Province.equals(car.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(provinceList)) {
-                    checkIndexCars.add(CheckIndexCar.calculateAverage(provinceList));
-                }
-                List<CheckIndexCar> countyList = list.stream().filter(car -> CheckConstants.Examine_Tag_County.equals(car.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(countyList)) {
-                    checkIndexCars.add(CheckIndexCar.calculateAverage(countyList));
-                }
-            });
+        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexCars)) {
+            //鍏堝尯鍒嗚�冩牳鏍囩锛屽啀鍖哄垎鍖哄幙
+            List<CheckIndexCar> countyList = checkIndexCars.stream().filter(car -> CheckConstants.Examine_Tag_County.equals(car.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(countyList)) {
+                Map<Long, List<CheckIndexCar>> carMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
+                List<CheckIndexCar> cars = new ArrayList<>();
+                carMap.forEach((deptId, list) -> {
+                    CheckIndexCar car = CheckIndexCar.calculateAverage(list);
+                    cars.add(car);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexCars.addAll(cars.stream().sorted(Comparator.comparing(CheckIndexCar::getScore).reversed()).collect(Collectors.toList()));
+            }
+            List<CheckIndexCar> provinceList = checkIndexCars.stream().filter(car -> CheckConstants.Examine_Tag_Province.equals(car.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(provinceList)) {
+                Map<Long, List<CheckIndexCar>> carMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
+                List<CheckIndexCar> cars = new ArrayList<>();
+                carMap.forEach((deptId, list) -> {
+                    CheckIndexCar car = CheckIndexCar.calculateAverage(list);
+                    cars.add(car);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexCars.addAll(cars.stream().sorted(Comparator.comparing(CheckIndexCar::getScore).reversed()).collect(Collectors.toList()));
+            }
         }
         List<CheckIndexCarVO> checkIndexCarVOS = new ArrayList<>();
         for (CheckIndexCar indexCar : checkIndexCars) {
@@ -348,19 +359,30 @@
         roleControl(checkIndexFace);
         List<CheckIndexFace> checkIndexFaces = indexFaceService.selectCheckIndexFaceList(checkIndexFace);
         //璁$畻骞冲潎鍊兼斁鍦╡xcel鏈�鍚�
-        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexFaces)) {
-            //鍏堝尯鍒嗗悇涓尯鍘匡紝鍐嶅尯鍒嗚�冩牳鏍囩
-            Map<Long, List<CheckIndexFace>> faceMap = checkIndexFaces.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
-            faceMap.forEach((deptId,list)->{
-                List<CheckIndexFace> provinceList = list.stream().filter(face -> CheckConstants.Examine_Tag_Province.equals(face.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(provinceList)) {
-                    checkIndexFaces.add(CheckIndexFace.calculateAverage(provinceList));
-                }
-                List<CheckIndexFace> countyList = list.stream().filter(face -> CheckConstants.Examine_Tag_County.equals(face.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(countyList)) {
-                    checkIndexFaces.add(CheckIndexFace.calculateAverage(countyList));
-                }
-            });
+        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexFaces)) {
+            //鍏堝尯鍒嗚�冩牳鏍囩锛屽啀鍖哄垎鍖哄幙
+            List<CheckIndexFace> countyList = checkIndexFaces.stream().filter(face -> CheckConstants.Examine_Tag_County.equals(face.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(countyList)) {
+                Map<Long, List<CheckIndexFace>> faceMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
+                List<CheckIndexFace> faces = new ArrayList<>();
+                faceMap.forEach((deptId, list) -> {
+                    CheckIndexFace face = CheckIndexFace.calculateAverage(list);
+                    faces.add(face);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexFaces.addAll(faces.stream().sorted(Comparator.comparing(CheckIndexFace::getScore).reversed()).collect(Collectors.toList()));
+            }
+            List<CheckIndexFace> provinceList = checkIndexFaces.stream().filter(face -> CheckConstants.Examine_Tag_Province.equals(face.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(provinceList)) {
+                Map<Long, List<CheckIndexFace>> faceMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
+                List<CheckIndexFace> faces = new ArrayList<>();
+                faceMap.forEach((deptId, list) -> {
+                    CheckIndexFace face = CheckIndexFace.calculateAverage(list);
+                    faces.add(face);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexFaces.addAll(faces.stream().sorted(Comparator.comparing(CheckIndexFace::getScore).reversed()).collect(Collectors.toList()));
+            }
         }
         List<CheckIndexFaceVO> checkIndexFaceVOS = new ArrayList<>();
         for (CheckIndexFace indexFace : checkIndexFaces) {
@@ -379,19 +401,30 @@
         roleControl(checkIndexVideo);
         List<CheckIndexVideo> checkIndexVideos = indexVideoService.selectCheckIndexVideoList(checkIndexVideo);
         //璁$畻骞冲潎鍊兼斁鍦╡xcel鏈�鍚�
-        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexVideos)) {
-            //鍏堝尯鍒嗗悇涓尯鍘匡紝鍐嶅尯鍒嗚�冩牳鏍囩
-            Map<Long, List<CheckIndexVideo>> videoMap = checkIndexVideos.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
-            videoMap.forEach((deptId,list)->{
-                List<CheckIndexVideo> provinceList = list.stream().filter(video -> CheckConstants.Examine_Tag_Province.equals(video.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(provinceList)) {
-                    checkIndexVideos.add(CheckIndexVideo.calculateAverage(provinceList));
-                }
-                List<CheckIndexVideo> countyList = list.stream().filter(video -> CheckConstants.Examine_Tag_County.equals(video.getExamineTag())).collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(countyList)) {
-                    checkIndexVideos.add(CheckIndexVideo.calculateAverage(countyList));
-                }
-            });
+        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexVideos)) {
+            //鍏堝尯鍒嗚�冩牳鏍囩锛屽啀鍖哄垎鍖哄幙
+            List<CheckIndexVideo> countyList = checkIndexVideos.stream().filter(video -> CheckConstants.Examine_Tag_County.equals(video.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(countyList)) {
+                Map<Long, List<CheckIndexVideo>> videoMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
+                List<CheckIndexVideo> videos = new ArrayList<>();
+                videoMap.forEach((deptId, list) -> {
+                    CheckIndexVideo video = CheckIndexVideo.calculateAverage(list);
+                    videos.add(video);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexVideos.addAll(videos.stream().sorted(Comparator.comparing(CheckIndexVideo::getScore).reversed()).collect(Collectors.toList()));
+            }
+            List<CheckIndexVideo> provinceList = checkIndexVideos.stream().filter(video -> CheckConstants.Examine_Tag_Province.equals(video.getExamineTag())).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(provinceList)) {
+                Map<Long, List<CheckIndexVideo>> videoMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
+                List<CheckIndexVideo> videos = new ArrayList<>();
+                videoMap.forEach((deptId, list) -> {
+                    CheckIndexVideo video = CheckIndexVideo.calculateAverage(list);
+                    videos.add(video);
+                });
+                //鏍规嵁绉垎闄嶅簭
+                checkIndexVideos.addAll(videos.stream().sorted(Comparator.comparing(CheckIndexVideo::getScore).reversed()).collect(Collectors.toList()));
+            }
         }
         List<CheckIndexVideoVO> checkIndexVideoVOS = new ArrayList<>();
         for (CheckIndexVideo indexVideo : checkIndexVideos) {

--
Gitblit v1.8.0