From eb806b5ec0bb72536e78c1a7fcffb94bcd24cbbe Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 26 四月 2024 18:24:27 +0800
Subject: [PATCH] 考核结果应用规则(算钱)新增、展示

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |  200 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 200 insertions(+), 0 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
new file mode 100644
index 0000000..5bafbc6
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -0,0 +1,200 @@
+package com.ycl.platform.service.impl;
+
+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-22
+ */
+@Service
+@Slf4j
+public class CheckScoreServiceImpl implements ICheckScoreService 
+{
+    @Autowired
+    private CheckScoreMapper scoreMapper;
+    @Autowired
+    private CheckTemplateMapper templateMapper;
+    @Autowired
+    private CheckTemplateRuleMapper templateRuleMapper;
+    @Autowired
+    private CheckRuleMapper ruleMapper;
+    /**
+     * 鏌ヨ鑰冩牳绉垎
+     * 
+     * @param id 鑰冩牳绉垎涓婚敭
+     * @return 鑰冩牳绉垎
+     */
+    @Override
+    public CheckScoreDetailVO selectCheckScoreById(Long 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 鑰冩牳绉垎
+     */
+    @Override
+    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore 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 鑰冩牳绉垎
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertCheckScore(CheckScore checkScore)
+    {
+        checkScore.setCreateTime(DateUtils.getNowDate());
+        return scoreMapper.insertCheckScore(checkScore);
+    }
+
+    /**
+     * 淇敼鑰冩牳鏄庣粏
+     * 
+     * @param checkScore 鑰冩牳绉垎鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateCheckScore(CheckScore checkScore)
+    {
+
+        return scoreMapper.updateCheckScore(checkScore);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鑰冩牳绉垎
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鑰冩牳绉垎涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteCheckScoreByIds(Long[] ids)
+    {
+        return scoreMapper.deleteCheckScoreByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鑰冩牳绉垎淇℃伅
+     * 
+     * @param id 鑰冩牳绉垎涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteCheckScoreById(Long 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