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