| | |
| | | import enumeration.general.PublishType; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | /** |
| | | * 查询考核积分卡片列表 |
| | | * |
| | | * 这里显示当天的成绩如果没有当天成绩则显示最后一次成绩 |
| | | * @param checkScore 考核积分 |
| | | * @return 考核积分 |
| | | */ |
| | | @Override |
| | | @DataScope(deptAlias = "d", userAlias = "u") |
| | | public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore checkScore) { |
| | | public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore query) { |
| | | CheckScore checkScore = new CheckScore(); |
| | | BeanUtils.copyProperties(query,checkScore); |
| | | //区县只能看已发布 |
| | | roleControl(checkScore); |
| | | |
| | | // 获取数据日期时间 |
| | | Calendar calendar = Calendar.getInstance(); |
| | | getCheckScore(checkScore, calendar); |
| | | // 转换数据日期时间、标签 |
| | | getCheckScore(checkScore); |
| | | |
| | | // 一号查询之前的数据 |
| | | if (LocalDateTime.now().getDayOfMonth() == 1) { |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | } |
| | | // // 一号查询之前的数据 |
| | | // if (LocalDateTime.now().getDayOfMonth() == 1) { |
| | | // calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | // } |
| | | |
| | | List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore); |
| | | |
| | | log.error("打印:{}",checkScores); |
| | | // 如果数据为空,则查询之前的数据 |
| | | if (checkScores.isEmpty()) { |
| | | if (CollectionUtils.isEmpty(checkScores) && (query.getStartDate() ==null || query.getStartDate() ==null)) { |
| | | CheckScore one = scoreMapper.getLast(checkScore); |
| | | if (Objects.nonNull(one)) { |
| | | calendar.setTime(one.getCreateTime()); |
| | | getCheckScore(checkScore, calendar); |
| | | checkScore.setStartDate(one.getCreateTime()); |
| | | checkScore.setEndDate(one.getCreateTime()); |
| | | getCheckScore(checkScore); |
| | | checkScores = scoreMapper.selectCheckScoreMap(checkScore); |
| | | } |
| | | } |
| | | //分数保留一位小数 |
| | | checkScores.stream().forEach(item -> item.setScore(item.getScore().setScale(1, RoundingMode.HALF_UP))); |
| | | return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); |
| | | Map<Long, List<CheckScore>> map = checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); |
| | | for (Map.Entry<Long, List<CheckScore>> entry : map.entrySet()) { |
| | | List<CheckScore> tempList = getCheckScores(entry); |
| | | // 迭代结束后,将新元素添加到原始列表中 |
| | | entry.getValue().addAll(tempList); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | private void getCheckScore(CheckScore checkScore, Calendar calendar) { |
| | | // 0.省厅月度 1.省厅季度 2.市局月度 3.市局季度 4.公安部月度 5.公安部季度 |
| | | switch (checkScore.getExamineTag()) { |
| | | case 0, 2, 4: |
| | | checkScore.setEndDate(calendar.getTime()); |
| | | calendar.set(Calendar.DAY_OF_MONTH, 1); |
| | | checkScore.setStartDate(calendar.getTime()); |
| | | if (checkScore.getExamineTag() == 0) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); |
| | | if (checkScore.getExamineTag() == 2) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); |
| | | if (checkScore.getExamineTag() == 4) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); |
| | | break; |
| | | case 1, 3, 5: |
| | | checkScore.setStartDate(DateUtils.getQuarterStart(calendar).getTime()); |
| | | checkScore.setEndDate(DateUtils.getQuarterEnd(calendar).getTime()); |
| | | if (checkScore.getExamineTag() == 1) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); |
| | | if (checkScore.getExamineTag() == 3) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); |
| | | if (checkScore.getExamineTag() == 5) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); |
| | | break; |
| | | private List<CheckScore> getCheckScores(Map.Entry<Long, List<CheckScore>> entry) { |
| | | List<CheckScore> tempList = new ArrayList<>(); // 临时存储需要添加的元素 |
| | | |
| | | boolean hasFace = false; |
| | | boolean hasCar = false; |
| | | for (int i =0;i <entry.getValue().size();i++) { |
| | | CheckScore checkScore = entry.getValue().get(i); |
| | | if (checkScore.getExamineCategory() == 2){ |
| | | hasCar = true; |
| | | }else if (checkScore.getExamineCategory() == 3){ |
| | | hasFace = true; |
| | | } |
| | | } |
| | | if (!hasCar){ |
| | | CheckScore car = new CheckScore(); |
| | | car.setExamineCategory((short) 2); |
| | | car.setScore(new BigDecimal("0.0")); |
| | | tempList.add(car); |
| | | } |
| | | if (!hasFace){ |
| | | CheckScore face = new CheckScore(); |
| | | face.setExamineCategory((short) 3); |
| | | face.setScore(new BigDecimal("0.0")); |
| | | tempList.add(face); |
| | | } |
| | | |
| | | return tempList; |
| | | } |
| | | |
| | | private void getCheckScore(CheckScore checkScore) { |
| | | checkScore.setStartDate(DateUtils.getDayStart(checkScore.getStartDate())); |
| | | checkScore.setEndDate(DateUtils.getDayEnd(checkScore.getEndDate())); |
| | | // 0.省厅 1.市局 2.公安部 |
| | | if (checkScore.getExamineTag() == 0) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); |
| | | if (checkScore.getExamineTag() == 1) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); |
| | | if (checkScore.getExamineTag() == 2) |
| | | checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> home() { |
| | | return baseMapper.home(); |
| | | Date now = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.add(Calendar.DATE, -7); |
| | | Date startTime = calendar.getTime(); |
| | | return baseMapper.home(startTime,now); |
| | | } |
| | | |
| | | |