| | |
| | | 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); |
| | | |
| | | // 如果数据为空,则查询之前的数据 |
| | | 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); |
| | | } |
| | | } |
| | |
| | | return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); |
| | | } |
| | | |
| | | 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 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 void exportIndex(HttpServletResponse response, CheckResultExportDTO exportDTO) throws IOException { |
| | | //没有标签默认全导 |
| | | if(CollectionUtils.isEmpty(exportDTO.getExamineTags())){ |
| | | exportDTO.setExamineTags(Arrays.asList(0,1,2)); |
| | | if (CollectionUtils.isEmpty(exportDTO.getExamineTags())) { |
| | | exportDTO.setExamineTags(Arrays.asList(0, 1, 2)); |
| | | } |
| | | /** 导三张sheet */ |
| | | //车辆 |
| | | List<CheckIndexCar> checkIndexCars = new ArrayList<>(); |
| | | //车辆和人脸没有公安部 |
| | | for (Integer examineTag : exportDTO.getExamineTags()) { |
| | | if(examineTag ==2) continue; |
| | | if (examineTag == 2) continue; |
| | | CheckIndexCar checkIndexCar = new CheckIndexCar(); |
| | | // checkIndexCar.setDate(date); |
| | | checkIndexCar.setQuarter(exportDTO.getQuarter()); |
| | |
| | | //人脸 |
| | | List<CheckIndexFace> checkIndexFaces = new ArrayList<>(); |
| | | for (Integer examineTag : exportDTO.getExamineTags()) { |
| | | if(examineTag ==2) continue; |
| | | if (examineTag == 2) continue; |
| | | CheckIndexFace checkIndexFace = new CheckIndexFace(); |
| | | // checkIndexFace.setDate(date); |
| | | checkIndexFace.setQuarter(exportDTO.getQuarter()); |
| | |
| | | |
| | | @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); |
| | | } |
| | | |
| | | |
| | |
| | | @Override |
| | | public Map<String, Map<String, Object>> dashboard(DashboardQuery dashboardQuery) { |
| | | Date now = new Date(); |
| | | dashboardQuery.setStartTime(DateUtils.getMouthStart(now)); |
| | | dashboardQuery.setEndTime(DateUtils.getMouthEnd(now)); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | dashboardQuery.setStartTime(format.format(DateUtils.getDayStart(now))); |
| | | dashboardQuery.setEndTime(format.format(DateUtils.getDayEnd(now))); |
| | | List<CheckScore> dashboard = scoreMapper.dashboard(dashboardQuery); |
| | | //初始化各个区县数据 |
| | | Map<String, Map<String, Object>> resultMap = new HashMap<>(); |
| | | for (AreaDeptEnum value : AreaDeptEnum.values()) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("score", 0); |
| | | map.put("video", 0); |
| | | map.put("car", 0); |
| | | map.put("face", 0); |
| | | resultMap.put(value.getName(), map); |
| | | } |
| | | //填充各个区县数据 |
| | | for (CheckScore checkScore : dashboard) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("score", checkScore.getScore().setScale(1,RoundingMode.HALF_UP)); |
| | | Map<String, Object> map = resultMap.get(checkScore.getDeptName()); |
| | | if (CheckConstants.Rule_Category_Video.equals(checkScore.getExamineCategory())) { |
| | | map.put("video", checkScore.getScore().setScale(1, RoundingMode.HALF_UP)); |
| | | } else if (CheckConstants.Rule_Category_Car.equals(checkScore.getExamineCategory())) { |
| | | map.put("car", checkScore.getScore().setScale(1, RoundingMode.HALF_UP)); |
| | | } else if (CheckConstants.Rule_Category_Face.equals(checkScore.getExamineCategory())) { |
| | | map.put("face", checkScore.getScore().setScale(1, RoundingMode.HALF_UP)); |
| | | } |
| | | resultMap.put(checkScore.getDeptName(), map); |
| | | } |
| | | return resultMap; |