|
|
|
|
@ -73,23 +73,9 @@ public class SubDatavServiceImpl implements SubDatavService {
|
|
|
|
|
@Resource |
|
|
|
|
private SupExternalDepartResourceService supExternalDepartResourceService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private DataCaseVerifResourceService dataCaseVerifResourceService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private SupPoliceService supPoliceService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private DataAuditResourceService dataAuditResourceService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private NegativeService negativeService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private RpcApplyMapper rpcApplyMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private RpcComfortPacksMapper rpcComfortPacksMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private DataPetitionComplaintMapper dataPetitionComplaintMapper; |
|
|
|
|
@ -114,8 +100,6 @@ public class SubDatavServiceImpl implements SubDatavService {
|
|
|
|
|
@Resource |
|
|
|
|
private NegativeMapper negativeMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private SuperviseReportService superviseReportService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private NegativeBlameResourceService negativeBlameResourceService; |
|
|
|
|
@ -429,6 +413,384 @@ public class SubDatavServiceImpl implements SubDatavService {
|
|
|
|
|
} |
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
|
|
// region 现场专项二级
|
|
|
|
|
// 现场督察卡片
|
|
|
|
|
public Result<JSONObject> getSubOneChangedRank(SubDataVRequest request) { |
|
|
|
|
List<SupDepart> level3ByPidSupDepartList = supDepartResourceService.getLevel3ByPidSupDepartList(request.getDepartId()); |
|
|
|
|
List<SupDepart> policeDeparts = level3ByPidSupDepartList.stream() |
|
|
|
|
.filter(one -> StrUtil.isNotBlank(one.getStatisticsGroupId())) |
|
|
|
|
.filter(one -> DepartGroupEnum.PCS.getId().equals(Integer.valueOf(one.getStatisticsGroupId()))) |
|
|
|
|
.toList(); |
|
|
|
|
List<SupDepart> teamDeparts = level3ByPidSupDepartList.stream() |
|
|
|
|
.filter(one -> { |
|
|
|
|
String groupId = one.getStatisticsGroupId(); |
|
|
|
|
return !StrUtil.isNotBlank(groupId) || !DepartGroupEnum.PCS.getId().equals(Integer.valueOf(groupId)); |
|
|
|
|
}) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
List<RankVo> fxsjChangedRankList = new ArrayList<>(); |
|
|
|
|
List<RankVo> jsdwChangedRankList = new ArrayList<>(); |
|
|
|
|
List<RankVo> allRankList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for (SupDepart pcs : policeDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getChangedRank(pcs.getId(), request.getBeginTime(), request.getEndTime()); |
|
|
|
|
int totalPro = negativeList.size(); |
|
|
|
|
if (totalPro == 0) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
long completed = negativeList.stream() |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.filter(one -> ProcessingStatusEnum.completed.name().equals(one.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
long sjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count(); |
|
|
|
|
long xjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count(); |
|
|
|
|
String rate = BigDecimal.valueOf(completed) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(totalPro), 1, RoundingMode.HALF_UP) |
|
|
|
|
.toString(); |
|
|
|
|
|
|
|
|
|
RankVo rankVo = new RankVo(); |
|
|
|
|
rankVo.setLabel(pcs.getShortName()); |
|
|
|
|
rankVo.setDepartId(pcs.getId()); |
|
|
|
|
rankVo.setCityNumber(String.valueOf(sjxf)); |
|
|
|
|
rankVo.setCountyNumber(String.valueOf(xjxf)); |
|
|
|
|
rankVo.setNumerator(String.valueOf(completed)); |
|
|
|
|
rankVo.setDenominator(String.valueOf(totalPro)); |
|
|
|
|
rankVo.setValue(rate); |
|
|
|
|
rankVo.setRate(rate); |
|
|
|
|
fxsjChangedRankList.add(rankVo); |
|
|
|
|
allRankList.add(rankVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (SupDepart dw : teamDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getChangedRank(dw.getId(), request.getBeginTime(), request.getEndTime()); |
|
|
|
|
int totalPro = negativeList.size(); |
|
|
|
|
if (totalPro == 0) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
long completed = negativeList.stream() |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.filter(one -> ProcessingStatusEnum.completed.name().equals(one.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
long sjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(0).equals(one.getCrtDepartLevel())).count(); |
|
|
|
|
long xjxf = negativeList.stream().filter(Objects::nonNull).filter(one -> Integer.valueOf(2).equals(one.getCrtDepartLevel())).count(); |
|
|
|
|
String rate = BigDecimal.valueOf(completed) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(totalPro), 1, RoundingMode.HALF_UP) |
|
|
|
|
.toString(); |
|
|
|
|
|
|
|
|
|
RankVo rankVo = new RankVo(); |
|
|
|
|
rankVo.setLabel(dw.getShortName()); |
|
|
|
|
rankVo.setDepartId(dw.getId()); |
|
|
|
|
rankVo.setCityNumber(String.valueOf(sjxf)); |
|
|
|
|
rankVo.setCountyNumber(String.valueOf(xjxf)); |
|
|
|
|
rankVo.setNumerator(String.valueOf(completed)); |
|
|
|
|
rankVo.setDenominator(String.valueOf(totalPro)); |
|
|
|
|
rankVo.setValue(rate); |
|
|
|
|
rankVo.setRate(rate); |
|
|
|
|
jsdwChangedRankList.add(rankVo); |
|
|
|
|
allRankList.add(rankVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fxsjChangedRankList.sort(Comparator.comparingLong((RankVo vo) -> Long.parseLong(vo.getDenominator())).reversed()); |
|
|
|
|
jsdwChangedRankList.sort(Comparator.comparingLong((RankVo vo) -> Long.parseLong(vo.getDenominator())).reversed()); |
|
|
|
|
|
|
|
|
|
long policeTotal = fxsjChangedRankList.stream().mapToLong(vo -> Long.parseLong(vo.getDenominator())).sum(); |
|
|
|
|
long policeCompleted = fxsjChangedRankList.stream().mapToLong(vo -> Long.parseLong(vo.getNumerator())).sum(); |
|
|
|
|
long policeProcessing = policeTotal - policeCompleted; |
|
|
|
|
double policeRate = policeTotal == 0 ? 0.0 : BigDecimal.valueOf(policeCompleted) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(policeTotal), 1, RoundingMode.HALF_UP) |
|
|
|
|
.doubleValue(); |
|
|
|
|
long teamTotal = jsdwChangedRankList.stream().mapToLong(vo -> Long.parseLong(vo.getDenominator())).sum(); |
|
|
|
|
long teamCompleted = jsdwChangedRankList.stream().mapToLong(vo -> Long.parseLong(vo.getNumerator())).sum(); |
|
|
|
|
long teamProcessing = teamTotal - teamCompleted; |
|
|
|
|
double teamRate = teamTotal == 0 ? 0.0 : BigDecimal.valueOf(teamCompleted) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(teamTotal), 1, RoundingMode.HALF_UP) |
|
|
|
|
.doubleValue(); |
|
|
|
|
|
|
|
|
|
long total = policeTotal + teamTotal; |
|
|
|
|
long completed = policeCompleted + teamCompleted; |
|
|
|
|
long processing = policeProcessing + teamProcessing; |
|
|
|
|
double rate = total == 0 ? 0.0 : BigDecimal.valueOf(completed) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(total), 1, RoundingMode.HALF_UP) |
|
|
|
|
.doubleValue(); |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo fxsjRankOverview = new DayTimeSuperviseVo(); |
|
|
|
|
fxsjRankOverview.setProTotal((int) policeTotal); |
|
|
|
|
fxsjRankOverview.setProcessingNumber(policeProcessing); |
|
|
|
|
fxsjRankOverview.setCompletedNumber(policeCompleted); |
|
|
|
|
fxsjRankOverview.setCompletedRate(policeRate); |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo jsdwRankOverview = new DayTimeSuperviseVo(); |
|
|
|
|
jsdwRankOverview.setProTotal((int) teamTotal); |
|
|
|
|
jsdwRankOverview.setProcessingNumber(teamProcessing); |
|
|
|
|
jsdwRankOverview.setCompletedNumber(teamCompleted); |
|
|
|
|
jsdwRankOverview.setCompletedRate(teamRate); |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo overview = new DayTimeSuperviseVo(); |
|
|
|
|
overview.setProTotal((int) total); |
|
|
|
|
overview.setProcessingNumber(processing); |
|
|
|
|
overview.setCompletedNumber(completed); |
|
|
|
|
overview.setCompletedRate(rate); |
|
|
|
|
|
|
|
|
|
JSONObject data = new JSONObject() |
|
|
|
|
.fluentPut("overview", overview) |
|
|
|
|
.fluentPut("fxsjRankOverview", fxsjRankOverview) |
|
|
|
|
.fluentPut("jsdwRankOverview", jsdwRankOverview) |
|
|
|
|
.fluentPut("fxsjChangedRankList", fxsjChangedRankList) |
|
|
|
|
.fluentPut("jsdwChangedRankList", jsdwChangedRankList); |
|
|
|
|
return Result.success(data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 现场专项地图
|
|
|
|
|
@Override |
|
|
|
|
public Result<JSONObject> getSubOneSupervisionNotifyMap(SubDataVRequest request) { |
|
|
|
|
List<SuperviseMapIconVo> superviseTempMapVoList = new ArrayList<>(); |
|
|
|
|
List<SupDepart> policeDeparts = supDepartMapper.selectPoliceDeparts(Integer.valueOf(request.getDepartId())); |
|
|
|
|
List<String> proCode = List.of(XCDC.getValue(), LMGZ.getValue(), ZXDC.getValue()); |
|
|
|
|
|
|
|
|
|
for (SupDepart supDepart : policeDeparts) { |
|
|
|
|
List<Negative> negatives = negativeMapper.getNegativeListData(supDepart.getId(), request.getBeginTime(), request.getEndTime(), proCode); |
|
|
|
|
if (negatives.isEmpty()) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<Negative> completedList = negatives.stream().filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())).toList(); |
|
|
|
|
List<Negative> processingList = negatives.stream().filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())).toList(); |
|
|
|
|
List<String> negativeIds = negatives.stream() |
|
|
|
|
.filter(item -> InspectCaseEnum.isItTure(item.getCheckStatus())) |
|
|
|
|
.map(Negative::getId) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
long personNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>() |
|
|
|
|
.in(NegativeBlame::getNegativeId, negativeIds) |
|
|
|
|
.eq(NegativeBlame::getType, "personal") |
|
|
|
|
.ne(NegativeBlame::getHandleResultName, "涓嶄簣杩借矗") |
|
|
|
|
.isNotNull(NegativeBlame::getHandleResultName) |
|
|
|
|
.ne(NegativeBlame::getHandleResultName, "")); |
|
|
|
|
long departNumber = negativeIds.isEmpty() ? 0 : negativeBlameService.count(new LambdaQueryWrapper<NegativeBlame>() |
|
|
|
|
.in(NegativeBlame::getNegativeId, negativeIds) |
|
|
|
|
.eq(NegativeBlame::getType, "department") |
|
|
|
|
.ne(NegativeBlame::getHandleResultName, "涓嶄簣杩借矗") |
|
|
|
|
.isNotNull(NegativeBlame::getHandleResultName) |
|
|
|
|
.ne(NegativeBlame::getHandleResultName, "")); |
|
|
|
|
|
|
|
|
|
SuperviseMapIconVo superviseMapIconVo = new SuperviseMapIconVo(); |
|
|
|
|
superviseMapIconVo.setName(supDepart.getShortName()); |
|
|
|
|
superviseMapIconVo.setDepartId(supDepart.getId()); |
|
|
|
|
superviseMapIconVo.setTotalPro(negatives.size()); |
|
|
|
|
superviseMapIconVo.setCompletedNumber(completedList.size()); |
|
|
|
|
superviseMapIconVo.setProcessingNumber(processingList.size()); |
|
|
|
|
superviseMapIconVo.setPersonNum(String.valueOf(personNumber)); |
|
|
|
|
superviseMapIconVo.setRelationOrg(String.valueOf(departNumber)); |
|
|
|
|
superviseTempMapVoList.add(superviseMapIconVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
JSONObject data = new JSONObject().fluentPut("superviseTempMapVoList", superviseTempMapVoList); |
|
|
|
|
return Result.success(data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<JSONObject> getAllSubOneSupervisionNotifyCount(SubDataVRequest request) { |
|
|
|
|
SupervisionNotifyOverView overView = new SupervisionNotifyOverView(); |
|
|
|
|
List<SupDepart> policeDeparts = supDepartMapper.selectPoliceDeparts(Integer.valueOf(request.getDepartId())); |
|
|
|
|
List<String> proCode = List.of(XCDC.getValue(), LMGZ.getValue(), ZXDC.getValue()); |
|
|
|
|
|
|
|
|
|
long problemNumber = 0L; |
|
|
|
|
long processingNumber = 0L; |
|
|
|
|
long completedNumber = 0L; |
|
|
|
|
long reportNumber = 0L; |
|
|
|
|
long departNumber = 0L; |
|
|
|
|
long personNumber = 0L; |
|
|
|
|
|
|
|
|
|
for (SupDepart supDepart : policeDeparts) { |
|
|
|
|
List<Negative> negatives = negativeMapper.getNegativeListData(supDepart.getId(), request.getBeginTime(), request.getEndTime(), proCode); |
|
|
|
|
if (CollectionUtil.isEmpty(negatives)) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<Negative> completedList = negatives.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())) |
|
|
|
|
.toList(); |
|
|
|
|
List<Negative> processingList = negatives.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())) |
|
|
|
|
.toList(); |
|
|
|
|
List<String> negativeIds = negatives.stream() |
|
|
|
|
.filter(item -> CheckStatusEnum.TRUE_SET.contains(item.getCheckStatusCode()) |
|
|
|
|
|| CheckStatusEnum.PART_TRUE_SET.contains(item.getCheckStatusCode())) |
|
|
|
|
.map(Negative::getId) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
List<NegativeBlame> negativeBlames = Collections.emptyList(); |
|
|
|
|
if (!negativeIds.isEmpty()) { |
|
|
|
|
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam(); |
|
|
|
|
negativeBlameQueryParam.setNegativeIds(negativeIds); |
|
|
|
|
negativeBlames = negativeBlameResourceService.query(negativeBlameQueryParam); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<NegativeBlame> personalBlames = negativeBlames.stream() |
|
|
|
|
.filter(one -> BlameType.personal.name().equals(one.getType())) |
|
|
|
|
.filter(one -> StrUtil.isNotBlank(one.getHandleResultName())) |
|
|
|
|
.filter(one -> !"不予追责".equals(one.getHandleResultName())) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
Set<String> seenLead = new HashSet<>(); |
|
|
|
|
List<NegativeBlame> leadBlames = negativeBlames.stream() |
|
|
|
|
.filter(one -> BlameType.personal.name().equals(one.getType())) |
|
|
|
|
.filter(one -> StrUtil.isNotBlank(one.getLeadHandleResultName())) |
|
|
|
|
.filter(one -> !"不予追责".equals(one.getLeadHandleResultName())) |
|
|
|
|
.filter(one -> seenLead.add( |
|
|
|
|
one.getNegativeId() + "_" + one.getLeadHandleResultName() + "_" + one.getLeadName() |
|
|
|
|
)) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
List<NegativeBlame> unitBlames = negativeBlames.stream() |
|
|
|
|
.filter(one -> BlameType.department.name().equals(one.getType())) |
|
|
|
|
.filter(one -> StrUtil.isNotBlank(one.getHandleResultName())) |
|
|
|
|
.filter(one -> !"不予追责".equals(one.getHandleResultName())) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
problemNumber += negatives.size(); |
|
|
|
|
processingNumber += processingList.size(); |
|
|
|
|
completedNumber += completedList.size(); |
|
|
|
|
reportNumber += 0L; |
|
|
|
|
departNumber += unitBlames.size(); |
|
|
|
|
personNumber += personalBlames.size() + leadBlames.size(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
overView.setProblemNumber(Math.toIntExact(problemNumber)); |
|
|
|
|
overView.setProcessingNumber(processingNumber); |
|
|
|
|
overView.setCompletedNumber(completedNumber); |
|
|
|
|
overView.setReportNumber(reportNumber); |
|
|
|
|
overView.setDepartNumber(departNumber); |
|
|
|
|
overView.setPersonNumber(personNumber); |
|
|
|
|
return Result.success(new JSONObject().fluentPut("overview", overView)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<JSONObject> getSubOneYellowBetDrug(SubDataVRequest request) { |
|
|
|
|
List<OrganizeProblemRankVo> fxsjYellowBetRankList = new ArrayList<>(); |
|
|
|
|
List<OrganizeProblemRankVo> jsdwYellowBetRankList = new ArrayList<>(); |
|
|
|
|
List<SupDepart> level3ByPidSupDepartList = supDepartResourceService.getLevel3ByPidSupDepartList(request.getDepartId()); |
|
|
|
|
List<SupDepart> policeDeparts = level3ByPidSupDepartList.stream() |
|
|
|
|
.filter(one -> StrUtil.isNotBlank(one.getStatisticsGroupId())) |
|
|
|
|
.filter(one -> DepartGroupEnum.PCS.getId().equals(Integer.valueOf(one.getStatisticsGroupId()))) |
|
|
|
|
.toList(); |
|
|
|
|
List<SupDepart> teamDeparts = level3ByPidSupDepartList.stream() |
|
|
|
|
.filter(one -> { |
|
|
|
|
String groupId = one.getStatisticsGroupId(); |
|
|
|
|
return !StrUtil.isNotBlank(groupId) || !DepartGroupEnum.PCS.getId().equals(Integer.valueOf(groupId)); |
|
|
|
|
}) |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
Map<String, Negative> totalNegativeMap = new LinkedHashMap<>(); |
|
|
|
|
for (SupDepart pcs : policeDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getYellowBetNegativeList(pcs.getId(), request.getBeginTime(), request.getEndTime(), request.getSpecialSupervision()); |
|
|
|
|
if (CollectionUtil.isEmpty(negativeList)) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
for (Negative negative : negativeList) { |
|
|
|
|
totalNegativeMap.put(negative.getId(), negative); |
|
|
|
|
} |
|
|
|
|
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo(); |
|
|
|
|
organizeProblemRankVo.setLabel(pcs.getShortName()); |
|
|
|
|
organizeProblemRankVo.setValue(String.valueOf(negativeList.size())); |
|
|
|
|
fxsjYellowBetRankList.add(organizeProblemRankVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (SupDepart dw : teamDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getYellowBetNegativeList(dw.getId(), request.getBeginTime(), request.getEndTime(), request.getSpecialSupervision()); |
|
|
|
|
if (CollectionUtil.isEmpty(negativeList)) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
for (Negative negative : negativeList) { |
|
|
|
|
totalNegativeMap.put(negative.getId(), negative); |
|
|
|
|
} |
|
|
|
|
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo(); |
|
|
|
|
organizeProblemRankVo.setLabel(dw.getShortName()); |
|
|
|
|
organizeProblemRankVo.setValue(String.valueOf(negativeList.size())); |
|
|
|
|
jsdwYellowBetRankList.add(organizeProblemRankVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fxsjYellowBetRankList.sort(Comparator.comparingInt((OrganizeProblemRankVo vo) -> Integer.parseInt(vo.getValue())).reversed()); |
|
|
|
|
jsdwYellowBetRankList.sort(Comparator.comparingInt((OrganizeProblemRankVo vo) -> Integer.parseInt(vo.getValue())).reversed()); |
|
|
|
|
|
|
|
|
|
List<Negative> totalNegativeList = new ArrayList<>(totalNegativeMap.values()); |
|
|
|
|
long policeTotal = fxsjYellowBetRankList.stream().mapToLong(vo -> Long.parseLong(vo.getValue())).sum(); |
|
|
|
|
long policeCompleted = 0L; |
|
|
|
|
long policeProcessing = 0L; |
|
|
|
|
long teamTotal = jsdwYellowBetRankList.stream().mapToLong(vo -> Long.parseLong(vo.getValue())).sum(); |
|
|
|
|
long teamCompleted = 0L; |
|
|
|
|
long teamProcessing = 0L; |
|
|
|
|
for (SupDepart supDepart : policeDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getYellowBetNegativeList(supDepart.getId(), request.getBeginTime(), request.getEndTime(), request.getSpecialSupervision()); |
|
|
|
|
policeCompleted += negativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
policeProcessing += negativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
} |
|
|
|
|
for (SupDepart supDepart : teamDeparts) { |
|
|
|
|
List<Negative> negativeList = negativeMapper.getYellowBetNegativeList(supDepart.getId(), request.getBeginTime(), request.getEndTime(), request.getSpecialSupervision()); |
|
|
|
|
teamCompleted += negativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
teamProcessing += negativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo fxsjYellowBetOverview = new DayTimeSuperviseVo(); |
|
|
|
|
fxsjYellowBetOverview.setProTotal((int) policeTotal); |
|
|
|
|
fxsjYellowBetOverview.setProcessingNumber(policeProcessing); |
|
|
|
|
fxsjYellowBetOverview.setCompletedNumber(policeCompleted); |
|
|
|
|
fxsjYellowBetOverview.setCompletedRate(policeTotal == 0 |
|
|
|
|
? 0D |
|
|
|
|
: BigDecimal.valueOf(policeCompleted).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(policeTotal), 2, RoundingMode.HALF_UP).doubleValue()); |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo jsdwYellowBetOverview = new DayTimeSuperviseVo(); |
|
|
|
|
jsdwYellowBetOverview.setProTotal((int) teamTotal); |
|
|
|
|
jsdwYellowBetOverview.setProcessingNumber(teamProcessing); |
|
|
|
|
jsdwYellowBetOverview.setCompletedNumber(teamCompleted); |
|
|
|
|
jsdwYellowBetOverview.setCompletedRate(teamTotal == 0 |
|
|
|
|
? 0D |
|
|
|
|
: BigDecimal.valueOf(teamCompleted).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(teamTotal), 2, RoundingMode.HALF_UP).doubleValue()); |
|
|
|
|
|
|
|
|
|
long processingCount = totalNegativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
long completedCount = totalNegativeList.stream() |
|
|
|
|
.filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())) |
|
|
|
|
.count(); |
|
|
|
|
|
|
|
|
|
DayTimeSuperviseVo overview = new DayTimeSuperviseVo(); |
|
|
|
|
overview.setProTotal(totalNegativeList.size()); |
|
|
|
|
overview.setProcessingNumber(processingCount); |
|
|
|
|
overview.setCompletedNumber(completedCount); |
|
|
|
|
double completedRate = totalNegativeList.isEmpty() |
|
|
|
|
? 0D |
|
|
|
|
: BigDecimal.valueOf(completedCount) |
|
|
|
|
.multiply(BigDecimal.valueOf(100)) |
|
|
|
|
.divide(BigDecimal.valueOf(totalNegativeList.size()), 2, RoundingMode.HALF_UP) |
|
|
|
|
.doubleValue(); |
|
|
|
|
overview.setCompletedRate(completedRate); |
|
|
|
|
|
|
|
|
|
JSONObject data = new JSONObject() |
|
|
|
|
.fluentPut("overview",overview) |
|
|
|
|
.fluentPut("fxsjYellowBetOverview", fxsjYellowBetOverview) |
|
|
|
|
.fluentPut("jsdwYellowBetOverview", jsdwYellowBetOverview) |
|
|
|
|
.fluentPut("fxsjYellowBetRankList", fxsjYellowBetRankList) |
|
|
|
|
.fluentPut("jsdwYellowBetRankList", jsdwYellowBetRankList); |
|
|
|
|
return Result.success(data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// endregion
|
|
|
|
|
|
|
|
|
|
// region 案件核查二级
|
|
|
|
|
// 排名
|
|
|
|
|
@Override |
|
|
|
|
|