From fdaaf708add9fca697c518da1321428b67fbe1fb Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Tue, 24 Mar 2026 16:26:37 +0800 Subject: [PATCH] =?UTF-8?q?fix--=E8=A7=84=E8=8C=83=E4=BF=A1=E8=AE=BF?= =?UTF-8?q?=E8=BF=BD=E8=B4=A3=E9=97=AE=E8=B4=A3=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/datav/DatavServiceImpl.java | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java index 8c64d8e..dc2f730 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java @@ -983,9 +983,36 @@ public class DatavServiceImpl implements DatavService { // 一级信访投诉占比 & 中央数据统计 @Override public Result getAllMailCount(DataVRequest request) { - MailOverviewVo overview = dataMailService.mailCount(request.getBeginTime(), request.getEndTime()); - long totalMail = overview.getCountryMail() + overview.getPoliceMail() + overview.getNumberMail(); - overview.setTotalMail(totalMail); + // 国家信访 + QueryWrapper countryQueryWrapper = new QueryWrapper<>(); + countryQueryWrapper.eq("problem_sources_code", 21); + countryQueryWrapper.between("create_time", request.getBeginTime(), request.getEndTime()); + Long countryMail = dataPetitionComplaintMapper.selectCount(countryQueryWrapper); + + // 公安部信访 + QueryWrapper policeQueryWrapper = new QueryWrapper<>(); + policeQueryWrapper.eq("problem_sources_code", 22); + policeQueryWrapper.between("create_time", request.getBeginTime(), request.getEndTime()); + Long policeMail = dataPetitionComplaintMapper.selectCount(policeQueryWrapper); + + // 12337 + QueryWrapper queryWrapper12337 = new QueryWrapper<>(); + queryWrapper12337.between("discover_time", request.getBeginTime(), request.getEndTime()); + Long mail12337 = dataPetition12337Mapper.selectCount(queryWrapper12337); + + // 局长信箱 + QueryWrapper mailQueryWrapper = new QueryWrapper<>(); + mailQueryWrapper.ne("mail_state", VALID_SIGN); + mailQueryWrapper.between("mail_time", request.getBeginTime(), request.getEndTime()); + Long mailCount = mailMapper.selectCount(mailQueryWrapper); + + + MailOverviewVo overview = new MailOverviewVo(); + overview.setCountryMail(countryMail); + overview.setPoliceMail(policeMail); + overview.setNumberMail(mail12337); + overview.setManageMail(mailCount); + overview.setTotalMail(overview.getCountryMail() + overview.getPoliceMail() + overview.getNumberMail()); JSONObject data = new JSONObject().fluentPut("overview", overview); return Result.success(data); } @@ -1078,17 +1105,20 @@ public class DatavServiceImpl implements DatavService { List negatives = negativeResourceService.query(negativeQueryParam); BlameResult blameResult = this.buildBlameResult(negatives); List negativeBlames = blameResult.personalBlames(); - Map> blames = negativeBlames.stream() - .filter(one -> StrUtil.isNotBlank(one.getHandleResultName())) - .filter(one -> !NO_BLAME.equals(one.getHandleResultName())) - .collect(Collectors.groupingBy(NegativeBlame::getHandleResultName)); - for (Map.Entry> entry : blames.entrySet()) { + // 问责处理情况与统一统计口径保持一致:先拆分多处理结果,再按单项处理结果聚合。 + Map blames = negativeBlames.stream() + .filter(one -> StrUtil.isNotBlank(one.getBlameName())) + .flatMap(one -> splitValidAccountabilityResults(one.getHandleResultName()).stream() + .map(resultName -> one.getNegativeId() + "_" + one.getBlameName() + "_" + resultName)) + .map(item -> item.substring(item.lastIndexOf('_') + 1)) + .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + for (Map.Entry entry : blames.entrySet()) { EchartsVo echartsVo = new EchartsVo(); echartsVo.setName(entry.getKey()); - echartsVo.setValue(entry.getValue().size()); + echartsVo.setValue(entry.getValue().intValue()); resultCountArray.add(echartsVo); } - this.filterZero(resultCountArray); + resultCountArray = this.filterZero(resultCountArray); JSONObject data = new JSONObject().fluentPut("resultCountArray", resultCountArray); return Result.success(data); }