fuliqi
2024-09-11 b14531e3b850fe6d2fa916ba7b88b3e2bd2ff30a
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -173,7 +173,9 @@
                checkScores = scoreMapper.selectCheckScoreMap(checkScore);
            }
        }
        return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
        //分数保留一位小数
        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
        return  checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
    }
    private void getCheckScore(CheckScore checkScore, Calendar calendar) {
@@ -193,7 +195,7 @@
    }
    /**
     * 查询考核积分卡片列表
     * 查询考核积分卡片折线图
     *
     * @param checkScore 考核积分
     * @return 考核积分
@@ -217,6 +219,8 @@
            checkScore.setDate(date);
        }
        List<CheckScore> checkScores = scoreMapper.selectCheckScoreList(checkScore);
        //分数保留一位小数
        checkScores.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
        return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
    }
@@ -231,7 +235,9 @@
    public List<CheckScore> page(CheckScore checkScore) {
        //区县只能看已发布
        roleControl(checkScore);
        return scoreMapper.selectCheckScoreList(checkScore);
        List<CheckScore> scoreList = scoreMapper.selectCheckScoreList(checkScore);
        scoreList.stream().forEach(item ->item.setScore(item.getScore().setScale(1,RoundingMode.HALF_UP)));
        return scoreList;
    }
    /**
@@ -291,24 +297,24 @@
     */
    @Override
    public void exportIndex(HttpServletResponse response, CheckResultExportDTO exportDTO) throws IOException {
        String date = exportDTO.getDate();
//        String date = exportDTO.getDate();
        //如果请求参数时间为空,查这条记录的时间
        if (StringUtils.isEmpty(exportDTO.getDate()) && CollectionUtils.isEmpty(exportDTO.getQuarter())) {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
            if (exportDTO.getId() != null) {
                CheckScore checkScore = getById(exportDTO.getId());
                Date createTime = checkScore.getCreateTime();
                date = formatter.format(createTime);
            } else {
                //防止卡片页面导出不传scoreId,导致报错
                date = formatter.format(new Date());
            }
        }
//        if (StringUtils.isEmpty(exportDTO.getDate()) && CollectionUtils.isEmpty(exportDTO.getQuarter())) {
//            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
//            if (exportDTO.getId() != null) {
//                CheckScore checkScore = getById(exportDTO.getId());
//                Date createTime = checkScore.getCreateTime();
//                date = formatter.format(createTime);
//            } else {
//                //防止卡片页面导出不传scoreId,导致报错
//                date = formatter.format(new Date());
//            }
//        }
        /** 导三张sheet */
        //车辆
        CheckIndexCar checkIndexCar = new CheckIndexCar();
        checkIndexCar.setDate(date);
//        checkIndexCar.setDate(date);
        checkIndexCar.setQuarter(exportDTO.getQuarter());
        checkIndexCar.setDeptId(exportDTO.getDeptId());
        checkIndexCar.setDeptIds(exportDTO.getDeptIds());
@@ -317,19 +323,30 @@
        roleControl(checkIndexCar);
        List<CheckIndexCar> checkIndexCars = indexCarService.selectCheckIndexCarList(checkIndexCar);
        //计算平均值放在excel最后
        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexCars)) {
            //先区分各个区县,再区分考核标签
            Map<Long, List<CheckIndexCar>> carMap = checkIndexCars.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
            carMap.forEach((deptId,list)->{
                List<CheckIndexCar> provinceList = list.stream().filter(car -> CheckConstants.Examine_Tag_Province.equals(car.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(provinceList)) {
                    checkIndexCars.add(CheckIndexCar.calculateAverage(provinceList));
                }
                List<CheckIndexCar> countyList = list.stream().filter(car -> CheckConstants.Examine_Tag_County.equals(car.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(countyList)) {
                    checkIndexCars.add(CheckIndexCar.calculateAverage(countyList));
                }
            });
        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexCars)) {
            //先区分考核标签,再区分区县
            List<CheckIndexCar> countyList = checkIndexCars.stream().filter(car -> CheckConstants.Examine_Tag_County.equals(car.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(countyList)) {
                Map<Long, List<CheckIndexCar>> carMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
                List<CheckIndexCar> cars = new ArrayList<>();
                carMap.forEach((deptId, list) -> {
                    CheckIndexCar car = CheckIndexCar.calculateAverage(list);
                    cars.add(car);
                });
                //根据积分降序
                checkIndexCars.addAll(cars.stream().sorted(Comparator.comparing(CheckIndexCar::getScore).reversed()).collect(Collectors.toList()));
            }
            List<CheckIndexCar> provinceList = checkIndexCars.stream().filter(car -> CheckConstants.Examine_Tag_Province.equals(car.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(provinceList)) {
                Map<Long, List<CheckIndexCar>> carMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexCar::getDeptId));
                List<CheckIndexCar> cars = new ArrayList<>();
                carMap.forEach((deptId, list) -> {
                    CheckIndexCar car = CheckIndexCar.calculateAverage(list);
                    cars.add(car);
                });
                //根据积分降序
                checkIndexCars.addAll(cars.stream().sorted(Comparator.comparing(CheckIndexCar::getScore).reversed()).collect(Collectors.toList()));
            }
        }
        List<CheckIndexCarVO> checkIndexCarVOS = new ArrayList<>();
        for (CheckIndexCar indexCar : checkIndexCars) {
@@ -339,7 +356,7 @@
        ExcelExp e1 = new ExcelExp("车辆考核指标数据", checkIndexCarVOS, CheckIndexCarVO.class);
        //人脸
        CheckIndexFace checkIndexFace = new CheckIndexFace();
        checkIndexFace.setDate(date);
//        checkIndexFace.setDate(date);
        checkIndexFace.setQuarter(exportDTO.getQuarter());
        checkIndexFace.setDeptId(exportDTO.getDeptId());
        checkIndexFace.setDeptIds(exportDTO.getDeptIds());
@@ -348,19 +365,30 @@
        roleControl(checkIndexFace);
        List<CheckIndexFace> checkIndexFaces = indexFaceService.selectCheckIndexFaceList(checkIndexFace);
        //计算平均值放在excel最后
        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexFaces)) {
            //先区分各个区县,再区分考核标签
            Map<Long, List<CheckIndexFace>> faceMap = checkIndexFaces.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
            faceMap.forEach((deptId,list)->{
                List<CheckIndexFace> provinceList = list.stream().filter(face -> CheckConstants.Examine_Tag_Province.equals(face.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(provinceList)) {
                    checkIndexFaces.add(CheckIndexFace.calculateAverage(provinceList));
                }
                List<CheckIndexFace> countyList = list.stream().filter(face -> CheckConstants.Examine_Tag_County.equals(face.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(countyList)) {
                    checkIndexFaces.add(CheckIndexFace.calculateAverage(countyList));
                }
            });
        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexFaces)) {
            //先区分考核标签,再区分区县
            List<CheckIndexFace> countyList = checkIndexFaces.stream().filter(face -> CheckConstants.Examine_Tag_County.equals(face.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(countyList)) {
                Map<Long, List<CheckIndexFace>> faceMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
                List<CheckIndexFace> faces = new ArrayList<>();
                faceMap.forEach((deptId, list) -> {
                    CheckIndexFace face = CheckIndexFace.calculateAverage(list);
                    faces.add(face);
                });
                //根据积分降序
                checkIndexFaces.addAll(faces.stream().sorted(Comparator.comparing(CheckIndexFace::getScore).reversed()).collect(Collectors.toList()));
            }
            List<CheckIndexFace> provinceList = checkIndexFaces.stream().filter(face -> CheckConstants.Examine_Tag_Province.equals(face.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(provinceList)) {
                Map<Long, List<CheckIndexFace>> faceMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexFace::getDeptId));
                List<CheckIndexFace> faces = new ArrayList<>();
                faceMap.forEach((deptId, list) -> {
                    CheckIndexFace face = CheckIndexFace.calculateAverage(list);
                    faces.add(face);
                });
                //根据积分降序
                checkIndexFaces.addAll(faces.stream().sorted(Comparator.comparing(CheckIndexFace::getScore).reversed()).collect(Collectors.toList()));
            }
        }
        List<CheckIndexFaceVO> checkIndexFaceVOS = new ArrayList<>();
        for (CheckIndexFace indexFace : checkIndexFaces) {
@@ -370,7 +398,7 @@
        ExcelExp e2 = new ExcelExp("人脸考核指标数据", checkIndexFaceVOS, CheckIndexFaceVO.class);
        //视频
        CheckIndexVideo checkIndexVideo = new CheckIndexVideo();
        checkIndexVideo.setDate(date);
//        checkIndexVideo.setDate(date);
        checkIndexVideo.setQuarter(exportDTO.getQuarter());
        checkIndexVideo.setDeptId(exportDTO.getDeptId());
        checkIndexVideo.setDeptIds(exportDTO.getDeptIds());
@@ -379,19 +407,30 @@
        roleControl(checkIndexVideo);
        List<CheckIndexVideo> checkIndexVideos = indexVideoService.selectCheckIndexVideoList(checkIndexVideo);
        //计算平均值放在excel最后
        if (exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexVideos)) {
            //先区分各个区县,再区分考核标签
            Map<Long, List<CheckIndexVideo>> videoMap = checkIndexVideos.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
            videoMap.forEach((deptId,list)->{
                List<CheckIndexVideo> provinceList = list.stream().filter(video -> CheckConstants.Examine_Tag_Province.equals(video.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(provinceList)) {
                    checkIndexVideos.add(CheckIndexVideo.calculateAverage(provinceList));
                }
                List<CheckIndexVideo> countyList = list.stream().filter(video -> CheckConstants.Examine_Tag_County.equals(video.getExamineTag())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(countyList)) {
                    checkIndexVideos.add(CheckIndexVideo.calculateAverage(countyList));
                }
            });
        if (exportDTO.getAverage() != null && exportDTO.getAverage() && !CollectionUtils.isEmpty(checkIndexVideos)) {
            //先区分考核标签,再区分区县
            List<CheckIndexVideo> countyList = checkIndexVideos.stream().filter(video -> CheckConstants.Examine_Tag_County.equals(video.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(countyList)) {
                Map<Long, List<CheckIndexVideo>> videoMap = countyList.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
                List<CheckIndexVideo> videos = new ArrayList<>();
                videoMap.forEach((deptId, list) -> {
                    CheckIndexVideo video = CheckIndexVideo.calculateAverage(list);
                    videos.add(video);
                });
                //根据积分降序
                checkIndexVideos.addAll(videos.stream().sorted(Comparator.comparing(CheckIndexVideo::getScore).reversed()).collect(Collectors.toList()));
            }
            List<CheckIndexVideo> provinceList = checkIndexVideos.stream().filter(video -> CheckConstants.Examine_Tag_Province.equals(video.getExamineTag())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(provinceList)) {
                Map<Long, List<CheckIndexVideo>> videoMap = provinceList.stream().collect(Collectors.groupingBy(CheckIndexVideo::getDeptId));
                List<CheckIndexVideo> videos = new ArrayList<>();
                videoMap.forEach((deptId, list) -> {
                    CheckIndexVideo video = CheckIndexVideo.calculateAverage(list);
                    videos.add(video);
                });
                //根据积分降序
                checkIndexVideos.addAll(videos.stream().sorted(Comparator.comparing(CheckIndexVideo::getScore).reversed()).collect(Collectors.toList()));
            }
        }
        List<CheckIndexVideoVO> checkIndexVideoVOS = new ArrayList<>();
        for (CheckIndexVideo indexVideo : checkIndexVideos) {