diff --git a/src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java b/src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java index ffd1945..c66e10f 100644 --- a/src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java +++ b/src/main/java/com/biutag/supervision/controller/datav/DataVAuditController.java @@ -4,22 +4,17 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervision.constants.enums.ProblemSourcesEnum; -import com.biutag.supervision.mapper.NegativeMapper; -import com.biutag.supervision.mapper.ReportProjectMapper; import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.dto.common.PieItem; import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.News; import com.biutag.supervision.pojo.request.datav.DataVRequest; -import com.biutag.supervision.pojo.vo.AuditNegativeVo; import com.biutag.supervision.pojo.vo.AuditOverview; -import com.biutag.supervision.service.NegativeBlameService; import com.biutag.supervision.service.NegativeService; import com.biutag.supervision.service.NewsService; import com.biutag.supervision.service.datav.DatavService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; @@ -48,8 +43,6 @@ public class DataVAuditController { private final NegativeService negativeService; - private final NegativeMapper negativeMapper; - private final DatavService datavService; diff --git a/src/main/java/com/biutag/supervision/pojo/param/ReportProjectQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/ReportProjectQueryParam.java index be1f3fb..16b3716 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/ReportProjectQueryParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/ReportProjectQueryParam.java @@ -62,6 +62,9 @@ public class ReportProjectQueryParam implements Serializable { @Schema(defaultValue = "项目单位ID") private String projectUnitId; + @Schema(defaultValue = "项目单位ID || 报审单位") + private Set projectUnitIds; + @Schema(defaultValue = "节点状态") private String node; diff --git a/src/main/java/com/biutag/supervision/pojo/vo/AuditSuperviseMapIconVo.java b/src/main/java/com/biutag/supervision/pojo/vo/AuditSuperviseMapIconVo.java index 66377a2..ac2ea8c 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/AuditSuperviseMapIconVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/AuditSuperviseMapIconVo.java @@ -4,6 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; +import java.math.BigDecimal; + /** * @ClassName AuditSuperviseMapIconVo * @Description 审计监督一级大屏地图数据 @@ -22,27 +24,32 @@ public class AuditSuperviseMapIconVo { @Schema(description = "部门ID") private String departId; - @Schema(description = "项目数") - private Integer reportProjectNumber; - @Schema(description = "查处问题数") - private Integer checkProNumber; + @Schema(description = "审计单位/项目") + private Integer projectNumber; - @Schema(description = "追责问责数") - private Integer rushProNumber; + @Schema(description = "审计总金额") + private BigDecimal auditAmount; + + @Schema(description = "审减||问题金额") + private BigDecimal auditSjAmount; - @Schema(description = "整改问题数") - private Integer rectifyNumber; + @Schema(description = "查出问题数") + private Integer negativeNumber; + + @Schema(description = "追责问责数") + private Integer accountableNumber; public static AuditSuperviseMapIconVo of(String departId, String name) { AuditSuperviseMapIconVo vo = new AuditSuperviseMapIconVo(); vo.setDepartId(departId); vo.setName(name); // 默认初始值 - vo.setReportProjectNumber(0); - vo.setCheckProNumber(0); - vo.setRushProNumber(0); - vo.setRectifyNumber(0); + vo.setProjectNumber(0); + vo.setAuditAmount(new BigDecimal(0)); + vo.setAuditSjAmount(new BigDecimal(0)); + vo.setNegativeNumber(0); + vo.setAccountableNumber(0); return vo; } diff --git a/src/main/java/com/biutag/supervision/repository/reportproject/ReportProjectResourceService.java b/src/main/java/com/biutag/supervision/repository/reportproject/ReportProjectResourceService.java index e61ee66..3ef3137 100644 --- a/src/main/java/com/biutag/supervision/repository/reportproject/ReportProjectResourceService.java +++ b/src/main/java/com/biutag/supervision/repository/reportproject/ReportProjectResourceService.java @@ -7,6 +7,7 @@ import com.biutag.supervision.mapper.ReportProjectMapper; import com.biutag.supervision.pojo.entity.report.ReportProject; import com.biutag.supervision.pojo.param.ReportProjectQueryParam; import com.biutag.supervision.pojo.vo.EchartsVo; +import com.biutag.supervision.repository.base.BaseDAO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -20,7 +21,7 @@ import java.util.List; * @Date 2025/12/11 9:40 */ @Service -public class ReportProjectResourceService { +public class ReportProjectResourceService extends BaseDAO { @Resource @@ -28,6 +29,7 @@ public class ReportProjectResourceService { public List query(ReportProjectQueryParam param) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + setBatchQuery(param.getProjectUnitId(), param.getProjectUnitIds(), queryWrapper, ReportProject::getProjectUnitId); queryWrapper.eq(StrUtil.isNotBlank(param.getId()), ReportProject::getId, param.getId()); queryWrapper.in(CollUtil.isNotEmpty(param.getIds()), ReportProject::getId, param.getIds()); queryWrapper.in(CollUtil.isNotEmpty(param.getReportTypes()), ReportProject::getReportType, param.getReportTypes()); 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 406614d..4beadeb 100644 --- a/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java @@ -1234,7 +1234,12 @@ public class DatavServiceImpl implements DatavService { auditOverview.setAuditAmount(zftzje); auditOverview.setAuditSjAmount(zftzsjje); auditOverview.setNegativeNumber(negativeListData.size()); - auditOverview.setAccountableNumber((long) (blameResult.personalBlames().size() + blameResult.leadBlames().size())); + long accountableNumber = 0L; + if (blameResult != null) { + accountableNumber += blameResult.personalBlames() == null ? 0 : blameResult.personalBlames().size(); + accountableNumber += blameResult.leadBlames() == null ? 0 : blameResult.leadBlames().size(); + } + auditOverview.setAccountableNumber(accountableNumber); } else { DataAuditQueryParam dataAuditQueryParam = new DataAuditQueryParam(); dataAuditQueryParam.setAuditTimeStart(toLocalDateTime(request.getBeginTime())); @@ -1252,8 +1257,12 @@ public class DatavServiceImpl implements DatavService { auditOverview.setAuditAmount(je); auditOverview.setAuditSjAmount(zsjje); auditOverview.setNegativeNumber(negativeListData.size()); - auditOverview.setAccountableNumber((long) (blameResult.personalBlames().size() + blameResult.leadBlames().size())); - + long accountableNumber = 0L; + if (blameResult != null) { + accountableNumber += blameResult.personalBlames() == null ? 0 : blameResult.personalBlames().size(); + accountableNumber += blameResult.leadBlames() == null ? 0 : blameResult.leadBlames().size(); + } + auditOverview.setAccountableNumber(accountableNumber); } JSONObject object = new JSONObject(); object.fluentPut("fxData", fxData); @@ -1293,45 +1302,40 @@ public class DatavServiceImpl implements DatavService { // 审计总览 @Override public Result aduitOverview(DataVRequest request) { - Date beginTime = request.getBeginTime(); - Date endTime = request.getEndTime(); - List negatives = negativeService.list(new LambdaQueryWrapper().between(Negative::getCrtTime, beginTime, DateUtil.endOfDay(endTime)) - .in(Negative::getProblemSourcesCode, List.of(ProblemSourcesEnum.ZFTZSJ.getValue(), ProblemSourcesEnum.ZFSACFSS.getValue(), ProblemSourcesEnum.JJZRSJ.getValue(), ProblemSourcesEnum.ZXSJ.getValue()))); - BlameResult blameResult = buildBlameResult(negatives); - // 政府投资数据 + AuditOverview overview = new AuditOverview(); + // 政府投资审计总数 ReportProjectQueryParam reportProjectQueryParam = new ReportProjectQueryParam(); - reportProjectQueryParam.setArchivingStart(beginTime); - reportProjectQueryParam.setArchivingEnd(endTime); - reportProjectQueryParam.setDeleteFlag(DeleteStatusEnum.NO.getCode()); - reportProjectQueryParam.setNode(ReportProjectNodeEnum.END.getCode()); + reportProjectQueryParam.setPublicationDateStart(request.getBeginTime()); + reportProjectQueryParam.setPublicationDateEnd(request.getEndTime()); List reportProjects = reportProjectResourceService.query(reportProjectQueryParam); - // 政府投资审计金额 - BigDecimal zftzje = reportProjects.stream().map(ReportProject::getReportMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP); - // 政府投资审减金额 - BigDecimal zftzsjje = reportProjects.stream().map(ReportProject::getArchivingReduceMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP); - // 其他审计数据 + // 其他项目总数 DataAuditQueryParam dataAuditQueryParam = new DataAuditQueryParam(); dataAuditQueryParam.setAuditTimeStart(request.getBeginTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); dataAuditQueryParam.setAuditTimeEnd(request.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); List dataAuditList = dataAuditResourceService.query(dataAuditQueryParam); - // 其他审计金额 - BigDecimal qtsjje = dataAuditList.stream().map(DataAudit::getAuditAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); - // 发现问题金额 - BigDecimal fxwtje = dataAuditList.stream().map(DataAudit::getIssueAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); - - - // 最后得出的总的项目数量 - int projectNumber = reportProjects.size() + dataAuditList.size(); - // 审计总金额 - BigDecimal auditAmount = zftzje.add(qtsjje); - // - AuditOverview overview = new AuditOverview(); - overview.setProjectNumber(new BigDecimal(projectNumber)); - overview.setAuditAmount(auditAmount); - overview.setAuditSjAmount(zftzsjje); - overview.setAuditWtAmount(fxwtje); - overview.setNegativeNumber(negatives.size()); - overview.setAccountableNumber((long) (blameResult.personalBlames().size() + blameResult.leadBlames().size())); + NegativeQueryParam negativeQueryParam = new NegativeQueryParam(); + negativeQueryParam.setCrtTime(List.of(request.getBeginTime(), request.getEndTime())); + negativeQueryParam.setProblemSourcesCode(GROUP_27_28_29_30); + List negativeListData = negativeResourceService.query(negativeQueryParam); + BlameResult blameResult = this.buildBlameResult(negativeListData); + // 政府投资总金额 + BigDecimal zftzje = this.sumAmountInWan(reportProjects, ReportProject::getReportMoney); + // 政府投资审减金额 + BigDecimal zftzsjje = this.sumAmountInWan(reportProjects, ReportProject::getArchivingReduceMoney); + // 其他审计总金额 + BigDecimal qtsjje = this.sumAmount(dataAuditList, DataAudit::getAuditAmount, new BigDecimal(1)); + // 其他审计审减问题金额 + BigDecimal qtsjwtje = this.sumAmount(dataAuditList, DataAudit::getIssueAmount, new BigDecimal(1)); + overview.setProjectNumber(BigDecimal.valueOf(reportProjects.size()+ dataAuditList.size())); + overview.setAuditAmount(zftzje.add(qtsjje)); + overview.setAuditSjAmount(zftzsjje.add(qtsjwtje)); + overview.setNegativeNumber(negativeListData.size()); + long accountableNumber = 0L; + if (blameResult != null) { + accountableNumber += blameResult.personalBlames() == null ? 0 : blameResult.personalBlames().size(); + accountableNumber += blameResult.leadBlames() == null ? 0 : blameResult.leadBlames().size(); + } + overview.setAccountableNumber(accountableNumber); return Result.success(overview); } @@ -1351,49 +1355,46 @@ public class DatavServiceImpl implements DatavService { Set allDepartIds = value.getAllDepartIds(); AuditSuperviseMapIconVo auditSuperviseMapIconVo = AuditSuperviseMapIconVo.of(key, value.getParentName()); - - // 项目数 + // 政府投资审计总数 ReportProjectQueryParam reportProjectQueryParam = new ReportProjectQueryParam(); - reportProjectQueryParam.setArchivingStart(request.getBeginTime()); - reportProjectQueryParam.setArchivingEnd(request.getEndTime()); - reportProjectQueryParam.setAuditUnitIds(allDepartIds); - reportProjectQueryParam.setDeleteFlag(DeleteStatusEnum.NO.getCode()); - reportProjectQueryParam.setNode(ReportProjectNodeEnum.END.getCode()); - List reportProjectList = reportProjectResourceService.query(reportProjectQueryParam); - // 其他审计项目 + reportProjectQueryParam.setPublicationDateStart(request.getBeginTime()); + reportProjectQueryParam.setPublicationDateEnd(request.getEndTime()); + // 用报审单位 + reportProjectQueryParam.setProjectUnitIds(allDepartIds); + List reportProjects = reportProjectResourceService.query(reportProjectQueryParam); + // 其他项目总数 DataAuditQueryParam dataAuditQueryParam = new DataAuditQueryParam(); dataAuditQueryParam.setAuditTimeStart(request.getBeginTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); dataAuditQueryParam.setAuditTimeEnd(request.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); - dataAuditQueryParam.setSecondLevelDeptId(Long.valueOf(entry.getKey())); + dataAuditQueryParam.setSecondLevelDeptId(Long.valueOf(key)); List dataAuditList = dataAuditResourceService.query(dataAuditQueryParam); - Integer reportProjectNumber = reportProjectList.size() + dataAuditList.size(); - auditSuperviseMapIconVo.setReportProjectNumber(reportProjectNumber); + NegativeQueryParam negativeQueryParam = new NegativeQueryParam(); - List dates = Arrays.asList(request.getBeginTime(), request.getEndTime()); - negativeQueryParam.setCrtTime(dates); - negativeQueryParam.setInvolveDepartIds(allDepartIds); - negativeQueryParam.setProblemSourcesCode(List.of(ProblemSourcesEnum.ZFTZSJ.getValue(), - ProblemSourcesEnum.ZFSACFSS.getValue(), - ProblemSourcesEnum.JJZRSJ.getValue(), - ProblemSourcesEnum.ZXSJ.getValue())); - List negativeList = negativeResourceService.query(negativeQueryParam); - // 查处问题数 - auditSuperviseMapIconVo.setCheckProNumber(negativeList.size()); - if (CollectionUtil.isNotEmpty(negativeList)) { - // 追责问责数 - Set negativeIds = negativeList.stream().map(Negative::getId).collect(Collectors.toSet()); - if (CollectionUtil.isNotEmpty(negativeIds)) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(NegativeBlame::getNegativeId, negativeIds); - wrapper.ne(NegativeBlame::getHandleResultName, "不予追责"); - int rushProNumber = (int) negativeBlameService.count(wrapper); - auditSuperviseMapIconVo.setRushProNumber(rushProNumber); - } - // 整改问题数 - long rectifyNumber = negativeList.stream().filter(one -> Objects.equals(one.getIsRectifyCode(), "1")).count(); - auditSuperviseMapIconVo.setRectifyNumber((int) rectifyNumber); + negativeQueryParam.setCrtTime(List.of(request.getBeginTime(), request.getEndTime())); + negativeQueryParam.setProblemSourcesCode(GROUP_27_28_29_30); + List negativeListData = negativeResourceService.query(negativeQueryParam); + + BlameResult blameResult = this.buildBlameResult(negativeListData); + // 政府投资总金额 + BigDecimal zftzje = this.sumAmountInWan(reportProjects, ReportProject::getReportMoney); + // 政府投资审减金额 + BigDecimal zftzsjje = this.sumAmountInWan(reportProjects, ReportProject::getArchivingReduceMoney); + // 其他审计总金额 + BigDecimal qtsjje = this.sumAmount(dataAuditList, DataAudit::getAuditAmount, new BigDecimal(1)); + // 其他审计审减问题金额 + BigDecimal qtsjwtje = this.sumAmount(dataAuditList, DataAudit::getIssueAmount, new BigDecimal(1)); + + auditSuperviseMapIconVo.setProjectNumber(reportProjects.size()+ dataAuditList.size()); + auditSuperviseMapIconVo.setAuditAmount(zftzje.add(qtsjje)); + auditSuperviseMapIconVo.setAuditSjAmount(zftzsjje.add(qtsjwtje)); + auditSuperviseMapIconVo.setNegativeNumber(negativeListData.size()); + int accountableNumber = 0; + if (blameResult != null) { + accountableNumber += blameResult.personalBlames() == null ? 0 : blameResult.personalBlames().size(); + accountableNumber += blameResult.leadBlames() == null ? 0 : blameResult.leadBlames().size(); } + auditSuperviseMapIconVo.setAccountableNumber(accountableNumber); auditSuperviseMapIconVoList.add(auditSuperviseMapIconVo); } JSONObject data = new JSONObject().fluentPut("auditSuperviseMapIconVoList", auditSuperviseMapIconVoList);