New file |
| | |
| | | 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); |
| | | } |
| | | |
| | | |
| | | } |