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