From 224428e399b4f4d46ddf3f15b2bbf426fb922e2c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 26 四月 2024 11:12:53 +0800
Subject: [PATCH] 考核结果指标详情页面

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |  157 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 130 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 4f7c646..5bafbc6 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
@@ -1,66 +1,143 @@
 package com.ycl.platform.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.platform.domain.dto.CheckScoreDTO;
+import com.ycl.platform.domain.entity.CheckRule;
 import com.ycl.platform.domain.entity.CheckScore;
+import com.ycl.platform.domain.entity.CheckTemplate;
+import com.ycl.platform.domain.entity.CheckTemplateRule;
+import com.ycl.platform.domain.vo.CheckScoreDetailVO;
+import com.ycl.platform.mapper.CheckRuleMapper;
 import com.ycl.platform.mapper.CheckScoreMapper;
+import com.ycl.platform.mapper.CheckTemplateMapper;
+import com.ycl.platform.mapper.CheckTemplateRuleMapper;
 import com.ycl.platform.service.ICheckScoreService;
+import com.ycl.system.entity.SysRole;
+import com.ycl.utils.SecurityUtils;
+import enumeration.general.PublishType;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import utils.DateUtils;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 鑰冩牳绉垎鏄庣粏Service涓氬姟灞傚鐞�
  * 
  * @author ruoyi
- * @date 2024-04-01
+ * @date 2024-04-22
  */
 @Service
-public class CheckScoreServiceImpl extends ServiceImpl<CheckScoreMapper, CheckScore> implements ICheckScoreService
+@Slf4j
+public class CheckScoreServiceImpl implements ICheckScoreService 
 {
     @Autowired
-    private CheckScoreMapper checkScoreMapper;
-
+    private CheckScoreMapper scoreMapper;
+    @Autowired
+    private CheckTemplateMapper templateMapper;
+    @Autowired
+    private CheckTemplateRuleMapper templateRuleMapper;
+    @Autowired
+    private CheckRuleMapper ruleMapper;
     /**
-     * 鏌ヨ鑰冩牳绉垎鏄庣粏
+     * 鏌ヨ鑰冩牳绉垎
      * 
-     * @param id 鑰冩牳绉垎鏄庣粏涓婚敭
-     * @return 鑰冩牳绉垎鏄庣粏
+     * @param id 鑰冩牳绉垎涓婚敭
+     * @return 鑰冩牳绉垎
      */
     @Override
-    public CheckScore selectCheckScoreById(Long id)
+    public CheckScoreDetailVO selectCheckScoreById(Long id)
     {
-        return checkScoreMapper.selectCheckScoreById(id);
+        CheckScoreDetailVO checkScoreDetailVO = new CheckScoreDetailVO();
+        //鏍规嵁id璇诲彇score
+        CheckScore checkScore = scoreMapper.selectCheckScoreById(id);
+        //璇诲彇瑙勫垯浠ュ強鏉冮噸
+        List<CheckTemplateRule> templateRuleList = templateRuleMapper.selectListByTemplateId(checkScore.getTemplateId());
+
+        //checkRules娣诲姞鑰冩牳瀵硅薄鍜岃�冩牳鏃堕棿
+        List<CheckRule> checkRules = new ArrayList<>();
+        CheckRule checkRule1 = new CheckRule();
+        checkRule1.setRuleName("鑰冩牳鏃堕棿");
+        checkRule1.setRuleIndex("create_time");
+        CheckRule checkRule2 = new CheckRule();
+        checkRule2.setRuleName("鑰冩牳瀵硅薄");
+        checkRule2.setRuleIndex("deptId");
+        //璇诲彇妯℃澘瀵瑰簲鎵�鏈夎鍒�
+        Map<String,Object> scoreMap = new HashMap<>();
+        List<Integer> ruleIds = templateRuleList.stream().map(checkTemplateRule -> checkTemplateRule.getCheckRuleId())
+                .collect(Collectors.toList());
+        List<CheckRule> ruleIndex = ruleMapper.selectBatchIds(ruleIds);
+
+//        checkRules.add(checkRule1);
+//        checkRules.add(checkRule2);
+        checkRules.addAll(ruleIndex);
+        //鏍规嵁examineCategory 璇诲彇涓嶅悓index琛�
+        Integer examineCategory = checkScore.getExamineCategory();
+        String[] indexTableArr ={"t_check_index_car","t_check_index_face","t_check_index_video"};
+        String tableName = indexTableArr[examineCategory];
+        //TODO:鑾峰彇褰撳墠鏈堜唤 鏆傚畾 鍚庢湡鏀逛负鍓嶇浼�
+        LocalDate now = LocalDate.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+        String date = formatter.format(now);
+        List<Map> map = scoreMapper.selectScoreIndex(tableName,checkScore.getDeptId(),date);
+
+        scoreMap.put("tableData",checkRules);
+        scoreMap.put("dataMap",map);
+
+        checkScoreDetailVO.setCheckRuleList(templateRuleList);
+        checkScoreDetailVO.setScoreMap(scoreMap);
+        return checkScoreDetailVO;
     }
 
+
     /**
-     * 鏌ヨ鑰冩牳绉垎鏄庣粏鍒楄〃
+     * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃
      * 
-     * @param checkScore 鑰冩牳绉垎鏄庣粏
-     * @return 鑰冩牳绉垎鏄庣粏
+     * @param checkScore 鑰冩牳绉垎
+     * @return 鑰冩牳绉垎
      */
     @Override
-    public List<CheckScore> selectCheckScoreList(CheckScore checkScore)
+    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore checkScore)
     {
-        return checkScoreMapper.selectCheckScoreList(checkScore);
-    }
+        //TODO:鏁版嵁鏉冮檺
 
+        //鏌ヨ鎴愮哗
+        List<CheckScore> checkScores = scoreMapper.selectCheckScoreList(checkScore);
+        Map<Long, List<CheckScore>> deptMap = checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
+        return deptMap;
+    }
     /**
-     * 鏂板鑰冩牳绉垎鏄庣粏
+     * 鍖哄幙璇︽儏
+     *
+     * @param checkScore 鑰冩牳绉垎
+     * @return 鑰冩牳绉垎
+     */
+    @Override
+    public List<CheckScore> page(CheckScore checkScore) {
+        return scoreMapper.selectCheckScoreList(checkScore);
+    }
+    /**
+     * 鏂板鑰冩牳绉垎
      * 
-     * @param checkScore 鑰冩牳绉垎鏄庣粏
+     * @param checkScore 鑰冩牳绉垎
      * @return 缁撴灉
      */
     @Override
     public int insertCheckScore(CheckScore checkScore)
     {
         checkScore.setCreateTime(DateUtils.getNowDate());
-        return checkScoreMapper.insertCheckScore(checkScore);
+        return scoreMapper.insertCheckScore(checkScore);
     }
 
     /**
-     * 淇敼鑰冩牳绉垎鏄庣粏
+     * 淇敼鑰冩牳鏄庣粏
      * 
      * @param checkScore 鑰冩牳绉垎鏄庣粏
      * @return 缁撴灉
@@ -68,30 +145,56 @@
     @Override
     public int updateCheckScore(CheckScore checkScore)
     {
-        return checkScoreMapper.updateCheckScore(checkScore);
+
+        return scoreMapper.updateCheckScore(checkScore);
     }
 
     /**
-     * 鎵归噺鍒犻櫎鑰冩牳绉垎鏄庣粏
+     * 鎵归噺鍒犻櫎鑰冩牳绉垎
      * 
-     * @param ids 闇�瑕佸垹闄ょ殑鑰冩牳绉垎鏄庣粏涓婚敭
+     * @param ids 闇�瑕佸垹闄ょ殑鑰冩牳绉垎涓婚敭
      * @return 缁撴灉
      */
     @Override
     public int deleteCheckScoreByIds(Long[] ids)
     {
-        return checkScoreMapper.deleteCheckScoreByIds(ids);
+        return scoreMapper.deleteCheckScoreByIds(ids);
     }
 
     /**
-     * 鍒犻櫎鑰冩牳绉垎鏄庣粏淇℃伅
+     * 鍒犻櫎鑰冩牳绉垎淇℃伅
      * 
-     * @param id 鑰冩牳绉垎鏄庣粏涓婚敭
+     * @param id 鑰冩牳绉垎涓婚敭
      * @return 缁撴灉
      */
     @Override
     public int deleteCheckScoreById(Long id)
     {
-        return checkScoreMapper.deleteCheckScoreById(id);
+        return scoreMapper.deleteCheckScoreById(id);
     }
+    /**
+     * 鍙戝竷鑰冩牳绉垎淇℃伅
+     *
+     * @param checkScoreDTO 鑰冩牳绉垎
+     * @return 缁撴灉
+     */
+    @Override
+    public int publishCheckScore(CheckScoreDTO checkScoreDTO) {
+        if(CollectionUtils.isEmpty(checkScoreDTO.getId())){
+            return 0;
+        }
+        PublishType publishType = null;
+        try {
+            publishType = PublishType.valueOf(checkScoreDTO.getPublish());
+        } catch (IllegalArgumentException e) {
+            log.error("鍙傛暟绫诲瀷涓嶅尮閰�");
+            throw new IllegalArgumentException("鍙傛暟绫诲瀷涓嶅尮閰�");
+        }
+        String code = publishType.getCode();
+        checkScoreDTO.setPublish(code);
+
+        return scoreMapper.publishCheckScore(checkScoreDTO);
+    }
+
+
 }

--
Gitblit v1.8.0