Browse Source

案件核查一级大屏--总览数据

master
buaixuexideshitongxue 2 weeks ago
parent
commit
87f9cf76f8
  1. 28
      src/main/java/com/biutag/supervision/controller/datav/DataVCaseVerifController.java
  2. 24
      src/main/java/com/biutag/supervision/pojo/vo/CaseVerificationCountVo.java
  3. 7
      src/main/java/com/biutag/supervision/service/datav/DatavService.java
  4. 79
      src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java

28
src/main/java/com/biutag/supervision/controller/datav/DataVCaseVerifController.java

@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.BlameType; import com.biutag.supervision.constants.enums.BlameType;
import com.biutag.supervision.constants.enums.InspectCaseEnum; import com.biutag.supervision.constants.enums.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.mapper.DataCaseVerifMapper; import com.biutag.supervision.mapper.DataCaseVerifMapper;
import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.mapper.NegativeMapper;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
@ -14,20 +13,21 @@ import com.biutag.supervision.pojo.entity.DataCaseVerif;
import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame; import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.SupPolice; import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.vo.*; import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.vo.CaseVerificationCountVo;
import com.biutag.supervision.pojo.vo.CaseVerificationMapVo;
import com.biutag.supervision.pojo.vo.EchartsVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.service.NegativeBlameService; import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.SupPoliceService; import com.biutag.supervision.service.SupPoliceService;
import com.biutag.supervision.service.datav.DatavService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -51,6 +51,7 @@ public class DataVCaseVerifController {
private final NegativeBlameService blameService; private final NegativeBlameService blameService;
private final SupPoliceService policeService; private final SupPoliceService policeService;
private final DatavService datavService;
// region 左边 // region 左边
@ -140,15 +141,6 @@ public class DataVCaseVerifController {
public Result<JSONObject> getAllCaseVerificationCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, public Result<JSONObject> getAllCaseVerificationCount(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) { @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
endTime = DateUtil.endOfDay(endTime); endTime = DateUtil.endOfDay(endTime);
// "IFNULL( ROUND( COUNT( DISTINCT IF(ng.checkStatus IN (1, 2), ng.id, NULL) ) / count(DISTINCT ng.id)*100, 1 ), 0 ) AS rate "
// CaseVerificationCountVo overview = negativeMapper.getAllCaseVerificationCount(beginTime, endTime);
// List<String> list = Arrays.asList( A12389.getValue(),SLDJB.getValue(), ZDDJB.getValue(), SJJB.getValue());
// overview.setConfirmed((int) confirmed);
//// overview.setRate((double) ((overview.getConfirmed() / total * 100) ));
// overview.setRate(NumberUtil.div((Number) (overview.getConfirmed() * 100),total ).doubleValue());
CaseVerificationCountVo overview = new CaseVerificationCountVo(); CaseVerificationCountVo overview = new CaseVerificationCountVo();
List<DataCaseVerif> dataCaseVerifs = dataCaseVerifMapper.selectList(new LambdaQueryWrapper<DataCaseVerif>().between(DataCaseVerif::getCreateTime, beginTime, endTime)); List<DataCaseVerif> dataCaseVerifs = dataCaseVerifMapper.selectList(new LambdaQueryWrapper<DataCaseVerif>().between(DataCaseVerif::getCreateTime, beginTime, endTime));
overview.setTotal(dataCaseVerifs.size()); overview.setTotal(dataCaseVerifs.size());
@ -156,9 +148,9 @@ public class DataVCaseVerifController {
List<Negative> negatives = negativeMapper.selectList(new LambdaQueryWrapper<Negative>() List<Negative> negatives = negativeMapper.selectList(new LambdaQueryWrapper<Negative>()
.between(Negative::getCrtTime, beginTime, endTime) .between(Negative::getCrtTime, beginTime, endTime)
.in(Negative::getProblemSourcesCode, List.of(A12389.getValue(), SLDJB.getValue(), ZDDJB.getValue(), SJJB.getValue()))); .in(Negative::getProblemSourcesCode, List.of(A12389.getValue(), SLDJB.getValue(), ZDDJB.getValue(), SJJB.getValue())));
overview.setConfirmed(negatives.size()); overview.setDealCasePro((long) negatives.size());
List<String> trueValue = List.of(InspectCaseEnum.TRUE.getValue(), InspectCaseEnum.PARTIALLY_TRUE.getValue()); List<String> trueValue = List.of(InspectCaseEnum.TRUE.getValue(), InspectCaseEnum.PARTIALLY_TRUE.getValue());
overview.setDealCasePro(negatives.stream().filter(item -> Objects.nonNull(item.getCheckStatus()) && trueValue.contains(item.getCheckStatus())).count()); overview.setConfirmed((int) negatives.stream().filter(item -> Objects.nonNull(item.getCheckStatus()) && trueValue.contains(item.getCheckStatus())).count());
double rate = overview.getTotal() == 0 ? 0 : NumberUtil.round((double) overview.getConfirmed() / overview.getTotal() * 100, 0).doubleValue(); double rate = overview.getTotal() == 0 ? 0 : NumberUtil.round((double) overview.getConfirmed() / overview.getTotal() * 100, 0).doubleValue();
overview.setRate(rate); overview.setRate(rate);
if (negatives.isEmpty()) { if (negatives.isEmpty()) {

24
src/main/java/com/biutag/supervision/pojo/vo/CaseVerificationCountVo.java

@ -1,5 +1,6 @@
package com.biutag.supervision.pojo.vo; package com.biutag.supervision.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
/** /**
@ -10,12 +11,23 @@ import lombok.Data;
@Data @Data
public class CaseVerificationCountVo { public class CaseVerificationCountVo {
private Integer total; // 总案件数 @Schema(description = "案件总数")
private Integer confirmed; // 已查实案件数 private Integer total;
private Long dealCasePro; // 查处理案件数
private Long punishPre; // 问责人数 @Schema(description = "查实案件数")
private Long punishOrg; // 问责单位数 private Integer confirmed;
private Double rate; // 查实率
@Schema(description = "查处问题数")
private Long dealCasePro;
@Schema(description = "问责人数")
private Long punishPre;
@Schema(description = "问责单位数")
private Long punishOrg;
@Schema(description = "查实率")
private Double rate;
} }

7
src/main/java/com/biutag/supervision/service/datav/DatavService.java

@ -40,4 +40,11 @@ public interface DatavService {
* @return * @return
*/ */
Result<JSONObject> getAllGlobalCount(DataVRequest request); Result<JSONObject> getAllGlobalCount(DataVRequest request);
/**
* 案件核查总览数据
* @param request
* @return
*/
Result<JSONObject> getAllCaseVerificationCount(DataVRequest request);
} }

79
src/main/java/com/biutag/supervision/service/datav/DatavServiceImpl.java

@ -1,9 +1,12 @@
package com.biutag.supervision.service.datav; package com.biutag.supervision.service.datav;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervision.constants.enums.BlameType;
import com.biutag.supervision.constants.enums.DepartGroupEnum; import com.biutag.supervision.constants.enums.DepartGroupEnum;
import com.biutag.supervision.constants.enums.InspectCaseEnum;
import com.biutag.supervision.constants.enums.ProblemSourcesEnum; import com.biutag.supervision.constants.enums.ProblemSourcesEnum;
import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum; import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum;
import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.Result;
@ -11,13 +14,11 @@ import com.biutag.supervision.pojo.dto.DepartAndSubDepartDto;
import com.biutag.supervision.pojo.entity.Negative; import com.biutag.supervision.pojo.entity.Negative;
import com.biutag.supervision.pojo.entity.NegativeBlame; import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.entity.SupExternalDepart; import com.biutag.supervision.pojo.entity.SupExternalDepart;
import com.biutag.supervision.pojo.entity.SupPolice;
import com.biutag.supervision.pojo.entity.report.ReportProject; import com.biutag.supervision.pojo.entity.report.ReportProject;
import com.biutag.supervision.pojo.param.*; import com.biutag.supervision.pojo.param.*;
import com.biutag.supervision.pojo.request.datav.DataVRequest; import com.biutag.supervision.pojo.request.datav.DataVRequest;
import com.biutag.supervision.pojo.vo.AuditSuperviseMapIconVo; import com.biutag.supervision.pojo.vo.*;
import com.biutag.supervision.pojo.vo.GlobalMapIconVo;
import com.biutag.supervision.pojo.vo.GlobalOverViewVo;
import com.biutag.supervision.pojo.vo.OrganizeProblemRankVo;
import com.biutag.supervision.repository.dataCaseVerif.DataCaseVerifResourceService; import com.biutag.supervision.repository.dataCaseVerif.DataCaseVerifResourceService;
import com.biutag.supervision.repository.dataPetitionComplaint.DataPetitionComplaintResourceService; import com.biutag.supervision.repository.dataPetitionComplaint.DataPetitionComplaintResourceService;
import com.biutag.supervision.repository.mail.MailResourceService; import com.biutag.supervision.repository.mail.MailResourceService;
@ -26,6 +27,7 @@ import com.biutag.supervision.repository.reportproject.ReportProjectResourceServ
import com.biutag.supervision.repository.supExternalDepart.SupExternalDepartResourceService; import com.biutag.supervision.repository.supExternalDepart.SupExternalDepartResourceService;
import com.biutag.supervision.repository.supdepart.SupDepartResourceService; import com.biutag.supervision.repository.supdepart.SupDepartResourceService;
import com.biutag.supervision.service.NegativeBlameService; import com.biutag.supervision.service.NegativeBlameService;
import com.biutag.supervision.service.SupPoliceService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -33,6 +35,8 @@ import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.*;
/** /**
* @ClassName DatavServiceImpl * @ClassName DatavServiceImpl
* @Description DatavServiceImpl * @Description DatavServiceImpl
@ -67,6 +71,9 @@ public class DatavServiceImpl implements DatavService {
@Resource @Resource
private DataCaseVerifResourceService dataCaseVerifResourceService; private DataCaseVerifResourceService dataCaseVerifResourceService;
@Resource
private SupPoliceService supPoliceService;
@Override @Override
public Result<JSONObject> getAuditMap(DataVRequest request) { public Result<JSONObject> getAuditMap(DataVRequest request) {
List<AuditSuperviseMapIconVo> auditSuperviseMapIconVoList = new ArrayList<>(); List<AuditSuperviseMapIconVo> auditSuperviseMapIconVoList = new ArrayList<>();
@ -125,6 +132,7 @@ public class DatavServiceImpl implements DatavService {
/** /**
* 获取一级首页的地图数据 * 获取一级首页的地图数据
*
* @param request * @param request
* @return * @return
*/ */
@ -197,7 +205,7 @@ public class DatavServiceImpl implements DatavService {
.ofNullable(supExternalDepartList) .ofNullable(supExternalDepartList)
.filter(list -> !list.isEmpty()) .filter(list -> !list.isEmpty())
.map(list -> list.get(0)) .map(list -> list.get(0))
.orElseThrow(() -> new RuntimeException("未查询到"+departDto.getParentName()+"的外部部门信息")); .orElseThrow(() -> new RuntimeException("未查询到" + departDto.getParentName() + "的外部部门信息"));
MailQueryParam mailQueryParam = new MailQueryParam(); MailQueryParam mailQueryParam = new MailQueryParam();
mailQueryParam.setSecondDeptId(depart.getExternalId()); mailQueryParam.setSecondDeptId(depart.getExternalId());
@ -207,7 +215,7 @@ public class DatavServiceImpl implements DatavService {
globalMapIconVo.setSupervisionPro(supervisionProCount); globalMapIconVo.setSupervisionPro(supervisionProCount);
globalMapIconVo.setNumSupervisionPro(numSupervisionProCount); globalMapIconVo.setNumSupervisionPro(numSupervisionProCount);
globalMapIconVo.setCaseVerificationPro(caseVerificationProCount); globalMapIconVo.setCaseVerificationPro(caseVerificationProCount);
globalMapIconVo.setComplaintPro(xf12337Count+countryMail+policeMail); globalMapIconVo.setComplaintPro(xf12337Count + countryMail + policeMail);
globalMapIconVo.setAuditPro(reportProjectCount); globalMapIconVo.setAuditPro(reportProjectCount);
globalMapIconVo.setMailboxNumber(mailCount); globalMapIconVo.setMailboxNumber(mailCount);
globalMapIconVo.calcTotal(); globalMapIconVo.calcTotal();
@ -219,6 +227,7 @@ public class DatavServiceImpl implements DatavService {
/** /**
* 获取一级首页的机构问题排名 * 获取一级首页的机构问题排名
*
* @param request * @param request
* @return * @return
*/ */
@ -274,13 +283,14 @@ public class DatavServiceImpl implements DatavService {
/** /**
* 获取一级首页中间总览数据 * 获取一级首页中间总览数据
*
* @param request * @param request
* @return * @return
*/ */
@Override @Override
public Result<JSONObject> getAllGlobalCount(DataVRequest request) { public Result<JSONObject> getAllGlobalCount(DataVRequest request) {
GlobalOverViewVo overview = GlobalOverViewVo.of(); GlobalOverViewVo overview = GlobalOverViewVo.of();
List<Date> dates = Arrays.asList(request.getBeginTime(), request.getEndTime()); List<Date> dates = Arrays.asList(request.getBeginTime(), request.getEndTime());
// 现场督查 // 现场督查
NegativeQueryParam xcdcQueryParam = new NegativeQueryParam(); NegativeQueryParam xcdcQueryParam = new NegativeQueryParam();
@ -327,7 +337,7 @@ public class DatavServiceImpl implements DatavService {
overview.setNumSupervisionPro(szdcCount); overview.setNumSupervisionPro(szdcCount);
overview.setCaseVerificationPro(ajhcCount); overview.setCaseVerificationPro(ajhcCount);
overview.setMailboxNumber(jzxxCount); overview.setMailboxNumber(jzxxCount);
overview.setComplaintPro(xf12337Count+gjxfCount+gabxfCount); overview.setComplaintPro(xf12337Count + gjxfCount + gabxfCount);
overview.setAuditPro(sjxmCount); overview.setAuditPro(sjxmCount);
overview.calcTotal(); overview.calcTotal();
JSONObject data = new JSONObject().fluentPut("overview", overview); JSONObject data = new JSONObject().fluentPut("overview", overview);
@ -348,5 +358,56 @@ public class DatavServiceImpl implements DatavService {
return supDepartResourceService.getDepartAndSubDepart(supDepartGroupParam); return supDepartResourceService.getDepartAndSubDepart(supDepartGroupParam);
} }
// region 案件核查
@Override
public Result<JSONObject> getAllCaseVerificationCount(DataVRequest request) {
CaseVerificationCountVo overview = new CaseVerificationCountVo();
List<Date> timeRange = List.of(request.getBeginTime(), request.getEndTime());
// 总案件数
DataCaseVerifQueryParam dataCaseVerifQueryParam = new DataCaseVerifQueryParam();
dataCaseVerifQueryParam.setCreateTime(timeRange);
long total = dataCaseVerifResourceService.count(dataCaseVerifQueryParam);
// 查处问题数
NegativeQueryParam negativeQueryParam = new NegativeQueryParam();
negativeQueryParam.setCrtTime(timeRange);
negativeQueryParam.setProblemSourcesCode(List.of(A12389.getValue(), SLDJB.getValue(), ZDDJB.getValue(), SJJB.getValue()));
List<Negative> negatives = negativeResourceService.query(negativeQueryParam);
int dealCasePro = negatives.size();
// 查实案件数
Set<String> trueValue = Set.of(InspectCaseEnum.TRUE.getValue(), InspectCaseEnum.PARTIALLY_TRUE.getValue());
long confirmed = negatives.stream()
.map(Negative::getCheckStatus)
.filter(Objects::nonNull)
.filter(trueValue::contains)
.count();
// 查实率
double rate = total == 0 ? 0D : NumberUtil.round((double) confirmed / total * 100, 0).doubleValue();
// 问责人次 和问责单位数
if (negatives.isEmpty()) {
overview.setPunishOrg(0L);
overview.setPunishPre(0L);
} else {
List<NegativeBlame> blames = negativeBlameService.list(new LambdaQueryWrapper<NegativeBlame>()
.in(NegativeBlame::getNegativeId, negatives.stream().map(Negative::getId).toList())
.isNotNull(NegativeBlame::getHandleResultCode)
.ne(NegativeBlame::getHandleResultCode, "")
.ne(NegativeBlame::getHandleResultName, "不予追责"));
List<NegativeBlame> departBlames = blames.stream().filter(item -> BlameType.department.name().equals(item.getType())).toList();
log.info("问责单位 数量:{}", departBlames.size());
if (departBlames.isEmpty()) {
overview.setPunishOrg(0L);
} else {
log.info("问责单位 领导警号集合:{}", departBlames.stream().map(NegativeBlame::getBlameEmpNo).collect(Collectors.toSet()));
long count = supPoliceService.count(new LambdaQueryWrapper<SupPolice>().in(SupPolice::getEmpNo, departBlames.stream().map(NegativeBlame::getBlameEmpNo).collect(Collectors.toSet())));
overview.setPunishOrg(count);
}
overview.setPunishPre(blames.stream().filter(item -> BlameType.personal.name().equals(item.getType())).count());
}
overview.setTotal((int) total);
overview.setConfirmed((int) confirmed);
overview.setDealCasePro((long) dealCasePro);
overview.setRate(rate);
JSONObject res = new JSONObject().fluentPut("overview", overview);
return Result.success(res);
}
} }

Loading…
Cancel
Save