From e34234a332da0663c6207a383becb39b253a8d05 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 18 九月 2024 15:52:01 +0800
Subject: [PATCH] 积分接口

---
 ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java         |    3 +++
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java            |    3 +++
 ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java     |    5 +++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java             |    3 ++-
 ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml                    |   12 ++++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |   31 +++++++++++++++++++++++++++----
 6 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
index c6ab337..d8bea2b 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
@@ -35,7 +35,8 @@
     /** deptid */
     @Excel(name = "鍖哄幙")
     private Long deptId;
-
+    @TableField(exist = false)
+    private String deptName;
     /** 鑰冩牳妯℃澘id */
     @Excel(name = "鑰冩牳妯℃澘id")
     private Integer templateId;
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java b/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java
index b39c1b7..5516a2b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java
@@ -27,6 +27,7 @@
     private final ICheckIndexFaceService checkIndexFaceService;
     private final ICheckIndexCarService checkIndexCarService;
     private final ICheckIndexVideoService checkIndexVideoService;
+    private final ICheckScoreService checkScoreService;
 
     @GetMapping("/department")
     public AjaxResult department() {
@@ -68,4 +69,8 @@
         return AjaxResult.success(checkIndexVideoService.dashboard(dashboardQuery));
     }
 
+    @GetMapping("/check/score")
+    public AjaxResult checkScore(DashboardQuery dashboardQuery) {
+        return AjaxResult.success(checkScoreService.dashboard(dashboardQuery));
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
index ed210d2..df111e8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
@@ -5,6 +5,7 @@
 import com.ycl.platform.domain.dto.CheckScoreDTO;
 import com.ycl.platform.domain.dto.ScoreIndexDTO;
 import com.ycl.platform.domain.entity.CheckScore;
+import com.ycl.platform.domain.query.DashboardQuery;
 import enumeration.OperationType;
 
 import java.util.Date;
@@ -92,4 +93,6 @@
     List<Map<String, Object>> calculate(Date startDate, Date endDate, String category);
 
     CheckScore getLast(CheckScore checkScore);
+
+    List<CheckScore> dashboard(DashboardQuery dashboardQuery);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
index 6754ff1..5c9b7e3 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
@@ -5,6 +5,7 @@
 import com.ycl.platform.domain.dto.CheckScoreDTO;
 import com.ycl.platform.domain.dto.CheckScoreIndexDTO;
 import com.ycl.platform.domain.entity.CheckScore;
+import com.ycl.platform.domain.query.DashboardQuery;
 import com.ycl.platform.domain.vo.CheckScoreDetailVO;
 import jakarta.servlet.http.HttpServletResponse;
 
@@ -63,6 +64,8 @@
      * @return 鏍哥畻
      */
     List<Map<String, Object>> calculate(String category);
+
+    Map<String, List<Map<String, Object>>> dashboard(DashboardQuery dashboardQuery);
 //    /**
 //     * 鏂板鑰冩牳绉垎鏄庣粏
 //     *
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 4a3be48..e8012fe 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
@@ -10,6 +10,7 @@
 import com.ycl.platform.domain.dto.CheckScoreIndexDTO;
 import com.ycl.platform.domain.dto.ScoreIndexDTO;
 import com.ycl.platform.domain.entity.*;
+import com.ycl.platform.domain.query.DashboardQuery;
 import com.ycl.platform.domain.vo.*;
 import com.ycl.platform.mapper.CheckRuleMapper;
 import com.ycl.platform.mapper.CheckScoreMapper;
@@ -174,8 +175,8 @@
             }
         }
         //鍒嗘暟淇濈暀涓�浣嶅皬鏁�
-        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
-        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) {
@@ -220,7 +221,7 @@
         }
         List<CheckScore> checkScores = scoreMapper.selectCheckScoreList(checkScore);
         //鍒嗘暟淇濈暀涓�浣嶅皬鏁�
-        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
+        checkScores.stream().forEach(item -> item.setScore(item.getScore().setScale(1, RoundingMode.HALF_UP)));
         return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
     }
 
@@ -236,7 +237,7 @@
         //鍖哄幙鍙兘鐪嬪凡鍙戝竷
         roleControl(checkScore);
         List<CheckScore> scoreList = scoreMapper.selectCheckScoreList(checkScore);
-        scoreList.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
+        scoreList.stream().forEach(item -> item.setScore(item.getScore().setScale(1, RoundingMode.HALF_UP)));
         return scoreList;
     }
 
@@ -506,6 +507,28 @@
         return scoreMapper.calculate(startDate, endDate, category);
     }
 
+    //澶у睆灞曠ず鑰冩牳寰楀垎
+    @Override
+    //TODO:鑰冭檻limit bug
+    public Map<String, List<Map<String, Object>>> dashboard(DashboardQuery dashboardQuery) {
+        List<CheckScore> dashboard = scoreMapper.dashboard(dashboardQuery);
+        Map<String, List<Map<String, Object>>> resultMap = new HashMap<>();
+
+        for (CheckScore checkScore : dashboard) {
+            List<Map<String, Object>> list = new ArrayList<>();
+            Map<String, Object> map = new HashMap<>();
+            map.put("value",checkScore.getScore());
+            if(dashboardQuery.getDataScope() ==1) {
+                map.put("name", "鐪佸巺寰楀垎");
+            }else {
+                map.put("name", "鍖哄幙寰楀垎");
+            }
+            list.add(map);
+            resultMap.put(checkScore.getDeptName(),list );
+        }
+        return resultMap;
+    }
+
     //    /**
 //     * 鏂板鑰冩牳绉垎
 //     *
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
index 0d89d89..45b4d2f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
@@ -206,4 +206,16 @@
         ORDER BY score DESC, tcs.dept_id
     </select>
 
+    <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckScore">
+        select s.*,d.area as deptName from t_check_score s
+        left join sys_dept d on s.dept_id = d.dept_id
+        <where>
+            <if test="dataScope == 1">
+                AND s.examine_tag = 1
+            </if>
+        </where>
+        ORDER BY
+        s.create_time DESC
+        LIMIT 7
+    </select>
 </mapper>

--
Gitblit v1.8.0