From ed17071e1db9208dbda562655f7fb541db4f2ea4 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 06 九月 2024 12:48:10 +0800
Subject: [PATCH] 考核积分bug,分保留一位小数

---
 ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml                    |   19 +++++----
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |   42 ++++++++++++---------
 2 files changed, 34 insertions(+), 27 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 8f6ab0a..4a3be48 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
@@ -173,7 +173,9 @@
                 checkScores = scoreMapper.selectCheckScoreMap(checkScore);
             }
         }
-        return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
+        //鍒嗘暟淇濈暀涓�浣嶅皬鏁�
+        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
+        return  checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
     }
 
     private void getCheckScore(CheckScore checkScore, Calendar calendar) {
@@ -193,7 +195,7 @@
     }
 
     /**
-     * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃
+     * 鏌ヨ鑰冩牳绉垎鍗$墖鎶樼嚎鍥�
      *
      * @param checkScore 鑰冩牳绉垎
      * @return 鑰冩牳绉垎
@@ -217,6 +219,8 @@
             checkScore.setDate(date);
         }
         List<CheckScore> checkScores = scoreMapper.selectCheckScoreList(checkScore);
+        //鍒嗘暟淇濈暀涓�浣嶅皬鏁�
+        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
         return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
     }
 
@@ -231,7 +235,9 @@
     public List<CheckScore> page(CheckScore checkScore) {
         //鍖哄幙鍙兘鐪嬪凡鍙戝竷
         roleControl(checkScore);
-        return scoreMapper.selectCheckScoreList(checkScore);
+        List<CheckScore> scoreList = scoreMapper.selectCheckScoreList(checkScore);
+        scoreList.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
+        return scoreList;
     }
 
     /**
@@ -291,24 +297,24 @@
      */
     @Override
     public void exportIndex(HttpServletResponse response, CheckResultExportDTO exportDTO) throws IOException {
-        String date = exportDTO.getDate();
+//        String date = exportDTO.getDate();
         //濡傛灉璇锋眰鍙傛暟鏃堕棿涓虹┖锛屾煡杩欐潯璁板綍鐨勬椂闂�
-        if (StringUtils.isEmpty(exportDTO.getDate()) && CollectionUtils.isEmpty(exportDTO.getQuarter())) {
-            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
-            if (exportDTO.getId() != null) {
-                CheckScore checkScore = getById(exportDTO.getId());
-                Date createTime = checkScore.getCreateTime();
-                date = formatter.format(createTime);
-            } else {
-                //闃叉鍗$墖椤甸潰瀵煎嚭涓嶄紶scoreId锛屽鑷存姤閿�
-                date = formatter.format(new Date());
-            }
-        }
+//        if (StringUtils.isEmpty(exportDTO.getDate()) && CollectionUtils.isEmpty(exportDTO.getQuarter())) {
+//            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
+//            if (exportDTO.getId() != null) {
+//                CheckScore checkScore = getById(exportDTO.getId());
+//                Date createTime = checkScore.getCreateTime();
+//                date = formatter.format(createTime);
+//            } else {
+//                //闃叉鍗$墖椤甸潰瀵煎嚭涓嶄紶scoreId锛屽鑷存姤閿�
+//                date = formatter.format(new Date());
+//            }
+//        }
 
         /** 瀵间笁寮爏heet */
         //杞﹁締
         CheckIndexCar checkIndexCar = new CheckIndexCar();
-        checkIndexCar.setDate(date);
+//        checkIndexCar.setDate(date);
         checkIndexCar.setQuarter(exportDTO.getQuarter());
         checkIndexCar.setDeptId(exportDTO.getDeptId());
         checkIndexCar.setDeptIds(exportDTO.getDeptIds());
@@ -350,7 +356,7 @@
         ExcelExp e1 = new ExcelExp("杞﹁締鑰冩牳鎸囨爣鏁版嵁", checkIndexCarVOS, CheckIndexCarVO.class);
         //浜鸿劯
         CheckIndexFace checkIndexFace = new CheckIndexFace();
-        checkIndexFace.setDate(date);
+//        checkIndexFace.setDate(date);
         checkIndexFace.setQuarter(exportDTO.getQuarter());
         checkIndexFace.setDeptId(exportDTO.getDeptId());
         checkIndexFace.setDeptIds(exportDTO.getDeptIds());
@@ -392,7 +398,7 @@
         ExcelExp e2 = new ExcelExp("浜鸿劯鑰冩牳鎸囨爣鏁版嵁", checkIndexFaceVOS, CheckIndexFaceVO.class);
         //瑙嗛
         CheckIndexVideo checkIndexVideo = new CheckIndexVideo();
-        checkIndexVideo.setDate(date);
+//        checkIndexVideo.setDate(date);
         checkIndexVideo.setQuarter(exportDTO.getQuarter());
         checkIndexVideo.setDeptId(exportDTO.getDeptId());
         checkIndexVideo.setDeptIds(exportDTO.getDeptIds());
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
index 201063c..0d89d89 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
@@ -144,24 +144,25 @@
     </insert>
 
     <select id="selectCheckScoreMap" resultType="com.ycl.platform.domain.entity.CheckScore">
-        SELECT
-        id,
+        SELECT * FROM
+        (SELECT
+        tcs.id,
         tcs.dept_id,
-        examine_category,
-        ROUND(AVG(score) OVER(PARTITION BY tcs.dept_id, examine_category), 2) AS score,
+        tcs.examine_category,
         tcs.publish,
-        tcs.create_time AS createTime
+        tcs.create_time,
+        ROW_NUMBER() OVER(PARTITION BY tcs.dept_id, tcs.examine_category ORDER BY tcs.create_time DESC) AS rn,
+        AVG(tcs.score) OVER(PARTITION BY tcs.dept_id, tcs.examine_category) AS score
         FROM
         t_check_score tcs
         LEFT JOIN sys_dept d ON tcs.dept_id = d.dept_id
         <where>
             examine_tag = #{examineTag}
-            AND DATE_FORMAT(tcs.create_time, '%Y-%m') BETWEEN DATE_FORMAT(#{startDate}, '%Y-%m') AND
-            DATE_FORMAT(#{endDate}, '%Y-%m')
-            <if test="params.publish != null  and params.publish != ''">and publish = #{params.publish}</if>
+            AND DATE(tcs.create_time) BETWEEN DATE(#{startDate}) AND DATE(#{endDate})
+            <if test="params.publish != null  and params.publish != ''">AND tcs.publish = #{params.publish}</if>
             ${params.dataScope}
         </where>
-        GROUP BY tcs.dept_id, tcs.examine_category, tcs.examine_tag
+        ) t where rn =1
     </select>
 
     <select id="getLast" resultType="com.ycl.platform.domain.entity.CheckScore">

--
Gitblit v1.8.0