zxl
2025-05-29 71f61d13531b3e2a0099ba5afe3f268c99c5bacf
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -180,34 +180,44 @@
        }
        //分数保留一位小数
        checkScores.stream().forEach(item -> item.setScore(item.getScore().setScale(1, RoundingMode.HALF_UP)));
        Map<Long, List<CheckScore>> map = checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
        log.error("map :{}",map);
        for (Map.Entry<Long, List<CheckScore>> entry : map.entrySet()) {
            List<CheckScore> tempList = new ArrayList<>(); // 临时存储需要添加的元素
            Iterator<CheckScore> iterator = entry.getValue().iterator();
            while (iterator.hasNext()) {
                CheckScore listCheckScore = iterator.next();
                if (listCheckScore.getExamineCategory() == 1 && entry.getValue().size() == 1) {
                    CheckScore face = new CheckScore();
                    face.setExamineCategory((short) 2);
                    face.setScore(new BigDecimal("0.0"));
                    CheckScore car = new CheckScore();
                    car.setExamineCategory((short) 3);
                    car.setScore(new BigDecimal("0.0"));
                    tempList.add(face);
                    tempList.add(car);
                }
            }
            List<CheckScore> tempList = getCheckScores(entry);
            // 迭代结束后,将新元素添加到原始列表中
            entry.getValue().addAll(tempList);
        }
        return map;
    }
    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()));