@ -3,10 +3,11 @@ package com.biutag.supervision.service.datav;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.util.NumberUtil ;
import cn.hutool.core.util.StrUtil ;
import com.alibaba.fastjson.JSONObject ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.biutag.supervision.common.UserContextHolder ;
import com.biutag.supervision.constants.AppConstants ;
import com.biutag.supervision.constants.enums.* ;
import com.biutag.supervision.constants.enums.invest.DeleteStatusEnum ;
import com.biutag.supervision.constants.enums.invest.ReportProjectNodeEnum ;
@ -18,9 +19,9 @@ import com.biutag.supervision.pojo.dto.common.PieItem;
import com.biutag.supervision.pojo.entity.* ;
import com.biutag.supervision.pojo.entity.mailbox.Mail ;
import com.biutag.supervision.pojo.entity.report.ReportProject ;
import com.biutag.supervision.pojo.model.UserAuth ;
import com.biutag.supervision.pojo.param.* ;
import com.biutag.supervision.pojo.param.dataAudit.DataAuditQueryParam ;
import com.biutag.supervision.pojo.param.negativeBlame.NegativeBlameQueryParam ;
import com.biutag.supervision.pojo.request.datav.DataVRequest ;
import com.biutag.supervision.pojo.request.subdatav.SubDataVRequest ;
import com.biutag.supervision.pojo.vo.* ;
@ -29,11 +30,11 @@ import com.biutag.supervision.repository.dataCaseVerif.DataCaseVerifResourceServ
import com.biutag.supervision.repository.dataPetitionComplaint.DataPetitionComplaintResourceService ;
import com.biutag.supervision.repository.mail.MailResourceService ;
import com.biutag.supervision.repository.negative.NegativeResourceService ;
import com.biutag.supervision.repository.negativeBlame.NegativeBlameResourceService ;
import com.biutag.supervision.repository.reportproject.ReportProjectResourceService ;
import com.biutag.supervision.repository.supExternalDepart.SupExternalDepartResourceService ;
import com.biutag.supervision.repository.supdepart.SupDepartResourceService ;
import com.biutag.supervision.service.* ;
import com.biutag.supervision.util.CompletableUtils.CompletableFutureUtil ;
import jakarta.annotation.Resource ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.stereotype.Service ;
@ -42,6 +43,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode ;
import java.time.ZoneId ;
import java.util.* ;
import java.util.concurrent.CompletableFuture ;
import java.util.stream.Collectors ;
import java.util.stream.Stream ;
@ -90,12 +92,26 @@ public class DatavServiceImpl implements DatavService {
@Resource
private NegativeService negativeService ;
@Resource
private RpcApplyService rpcApplyService ;
@Resource
private SupDepartService supDepartService ;
@Resource
private RpcApplyMapper rpcApplyMapper ;
@Resource
private RpcPacksComfortService rpcPacksComfortService ;
@Resource
private RpcComfortPacksService rpcComfortPacksService ;
@Resource
private RpcComfortPacksMapper rpcComfortPacksMapper ;
@Resource
private RpcApplyPersonService rpcApplyPersonService ;
@Resource
private DataPetitionComplaintMapper dataPetitionComplaintMapper ;
@ -119,11 +135,7 @@ public class DatavServiceImpl implements DatavService {
@Resource
private SuperviseReportService superviseReportService ;
@Resource
private NegativeBlameResourceService negativeBlameResourceService ;
@Resource
private DataCaseVerifMapper dataCaseVerifMapper ;
private final String VALID_SIGN = "terminated" ;
private final String EX_SOURCE = "局长信箱" ;
@ -424,53 +436,51 @@ public class DatavServiceImpl implements DatavService {
@Override
public Result < JSONObject > getAllCaseVerificationCount ( DataVRequest request ) {
CaseVerificationCountVo overview = new CaseVerificationCountVo ( ) ;
LambdaQueryWrapper < DataCaseVerif > dataCaseVerifLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
dataCaseVerifLambdaQueryWrapper . between ( DataCaseVerif : : getCreateTime , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
List < DataCaseVerif > dataCaseVerifs = dataCaseVerifMapper . selectList ( dataCaseVerifLambdaQueryWrapper ) ;
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 ( List . of ( request . getBeginTime ( ) , request . getEndTime ( ) ) ) ;
negativeQueryParam . setProblemSourcesCode ( List . of ( A12389 . getValue ( ) ) ) ;
negativeQueryParam . setCrtTime ( timeRange ) ;
negativeQueryParam . setProblemSourcesCode ( List . of ( A12389 . getValue ( ) , SLDJB . getValue ( ) , ZDDJB . getValue ( ) , SJJB . getValue ( ) ) ) ;
List < Negative > negatives = negativeResourceService . query ( negativeQueryParam ) ;
// 属实问题
List < Negative > ssNegative = negatives . stream ( )
. filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssNegative . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
Set < String > seenLead = new HashSet < > ( ) ;
List < NegativeBlame > leadBlames = negativeBlames . stream ( )
. filter ( one - > StrUtil . isNotBlank ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > ! "不予追责" . equals ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > seenLead . add (
one . getNegativeId ( ) + "_" + one . getLeadHandleResultName ( ) + "_" + one . getLeadName ( )
) )
. toList ( ) ;
// 5. 单位问责
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 ( ) ;
//计算查实率(向上取整)
Double verificationRate = 0 . 0 ;
if ( ! dataCaseVerifs . isEmpty ( ) ) {
double rawRate = ( double ) ssNegative . size ( ) / dataCaseVerifs . size ( ) * 100 ;
verificationRate = Math . ceil ( rawRate ) ;
}
overview . setTotal ( dataCaseVerifs . size ( ) ) ;
overview . setConfirmed ( ssNegative . size ( ) ) ;
overview . setDealCasePro ( ( long ) negatives . size ( ) ) ;
overview . setPunishPre ( ( long ) ( personalBlames . size ( ) + leadBlames . size ( ) ) ) ;
overview . setPunishOrg ( ( long ) unitBlames . size ( ) ) ;
overview . setRate ( verificationRate ) ;
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 ) ;
}
@ -1206,47 +1216,40 @@ public class DatavServiceImpl implements DatavService {
List < Negative > processingList = negatives . stream ( ) . filter ( item - > ProcessingStatusEnum . processing . name ( ) . equals ( item . getProcessingStatus ( ) ) ) . toList ( ) ;
LambdaQueryWrapper < SuperviseReport > superviseReportLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
// UserAuth user = UserContextHolder.getCurrentUser();
// // 权限
// if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) {
// if (user.getAuthDepartIds().isEmpty() || user.getRoleCodes().isEmpty()) {
// //特殊处理
// overView.setReportNumber(0L);
// }
// List<String> orgIds = supDepartService.getAllNodeIds(user.getAuthDepartIds());
// superviseReportLambdaQueryWrapper.in(SuperviseReport::getCrtDepartId, orgIds);
// }
UserAuth user = UserContextHolder . getCurrentUser ( ) ;
// 权限
if ( ! AppConstants . USER_TYPE_SUPER . equals ( user . getUserType ( ) ) & & ! user . getRoleCodes ( ) . contains ( RoleCodeEnum . FIRST_ADMIN . getCode ( ) ) ) {
if ( user . getAuthDepartIds ( ) . isEmpty ( ) | | user . getRoleCodes ( ) . isEmpty ( ) ) {
//特殊处理
overView . setReportNumber ( 0L ) ;
}
List < String > orgIds = supDepartService . getAllNodeIds ( user . getAuthDepartIds ( ) ) ;
superviseReportLambdaQueryWrapper . in ( SuperviseReport : : getCrtDepartId , orgIds ) ;
}
superviseReportLambdaQueryWrapper . between ( SuperviseReport : : getCrtTime , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
superviseReportLambdaQueryWrapper . eq ( SuperviseReport : : getType , "1" ) ;
List < SuperviseReport > superviseReportList = superviseReportService . list ( superviseReportLambdaQueryWrapper ) ;
List < String > negativeIds = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . map ( Negative : : getId ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( negativeIds ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
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 ( ) ;
// 5. 单位问责
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 ( ) ;
CompletableFuture . allOf (
CompletableFutureUtil . runSyncObject ( ( ) - > {
long personNumber = negativeIds . isEmpty ( ) ? 0 : negativeBlameService . count ( new LambdaQueryWrapper < NegativeBlame > ( ) . in ( NegativeBlame : : getNegativeId , negativeIds )
. eq ( NegativeBlame : : getType , "personal" )
. isNotNull ( NegativeBlame : : getBlameName )
. ne ( NegativeBlame : : getBlameName , "" )
. ne ( NegativeBlame : : getHandleResultName , "不予追责" )
. isNotNull ( NegativeBlame : : getHandleResultName )
. ne ( NegativeBlame : : getHandleResultName , "" ) ) ;
overView . setPersonNumber ( personNumber ) ;
} ) ,
CompletableFutureUtil . runSyncObject ( ( ) - > {
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 , "" ) ) ;
overView . setDepartNumber ( departNumber ) ;
} )
) . join ( ) ;
// 通报问题数
overView . setProblemNumber ( negatives . size ( ) ) ;
@ -1256,544 +1259,9 @@ public class DatavServiceImpl implements DatavService {
overView . setProcessingNumber ( ( long ) processingList . size ( ) ) ;
// 已办结
overView . setCompletedNumber ( ( long ) completedList . size ( ) ) ;
// 问责单位数
overView . setDepartNumber ( ( long ) unitBlames . size ( ) ) ;
overView . setPersonNumber ( ( long ) ( personalBlames . size ( ) + leadBlames . size ( ) ) ) ;
return Result . success ( overView ) ;
}
@Override
public Result < JSONObject > getSupervisionNotifyMap ( DataVRequest request ) {
List < SuperviseMapIconVo > superviseTempMapVoList = new ArrayList < > ( ) ;
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam ( ) ;
supDepartQueryParam . setStatisticsGroupId ( DepartGroupEnum . COUNTY_CITY_BUREAUS . getId ( ) ) ;
List < SupDepart > fxsjDw = supDepartResourceService . query ( supDepartQueryParam ) ;
List < String > proCode = List . of ( XCDC . getValue ( ) , LMGZ . getValue ( ) , ZXDC . getValue ( ) ) ;
for ( SupDepart fxsj : fxsjDw ) {
SuperviseMapIconVo superviseMapIconVo = new SuperviseMapIconVo ( ) ;
List < Negative > negatives = negativeMapper . getNegativeListData ( fxsj . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
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 ( ) ;
// 暂不用通报期数
// LambdaQueryWrapper<SuperviseReport> superviseReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
// superviseReportLambdaQueryWrapper.between(SuperviseReport::getCrtTime, request.getBeginTime(), request.getEndTime());
// superviseReportLambdaQueryWrapper.eq(SuperviseReport::getType, "1");
// List<SuperviseReport> superviseReportList = superviseReportService.list(superviseReportLambdaQueryWrapper);
List < String > negativeIds = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . map ( Negative : : getId ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( negativeIds ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
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 ( ) ;
// 5. 单位问责
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 ( ) ;
superviseMapIconVo . setDepartId ( fxsj . getId ( ) ) ;
superviseMapIconVo . setName ( fxsj . getShortName ( ) ) ;
superviseMapIconVo . setTotalPro ( negatives . size ( ) ) ;
superviseMapIconVo . setProcessingNumber ( processingList . size ( ) ) ;
superviseMapIconVo . setCompletedNumber ( completedList . size ( ) ) ;
superviseMapIconVo . setRelationOrg ( String . valueOf ( unitBlames . size ( ) ) ) ;
superviseMapIconVo . setPersonNum ( String . valueOf ( personalBlames . size ( ) + leadBlames . size ( ) ) ) ;
superviseTempMapVoList . add ( superviseMapIconVo ) ;
}
JSONObject data = new JSONObject ( ) . fluentPut ( "superviseTempMapVoList" , superviseTempMapVoList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getYellowBetDrug ( DataVRequest request ) {
List < OrganizeProblemRankVo > countyRankList = new ArrayList < > ( ) ;
List < OrganizeProblemRankVo > bureauRankList = new ArrayList < > ( ) ;
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam ( ) ;
supDepartQueryParam . setStatisticsGroupId ( DepartGroupEnum . COUNTY_CITY_BUREAUS . getId ( ) ) ;
List < SupDepart > fxsjDw = supDepartResourceService . query ( supDepartQueryParam ) ;
SupDepartQueryParam jsdwQueryParam = new SupDepartQueryParam ( ) ;
jsdwQueryParam . setStatisticsGroupId ( DepartGroupEnum . BUREAU_AFFILIATED . getId ( ) ) ;
List < SupDepart > jsdwDw = supDepartResourceService . query ( jsdwQueryParam ) ;
Map < String , Negative > totalNegativeMap = new LinkedHashMap < > ( ) ;
for ( SupDepart fxsj : fxsjDw ) {
List < Negative > negativeList = negativeMapper . getYellowBetNegativeList ( fxsj . 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 ( fxsj . getShortName ( ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( negativeList . size ( ) ) ) ;
countyRankList . add ( organizeProblemRankVo ) ;
}
for ( SupDepart jsdw : jsdwDw ) {
List < Negative > negativeList = negativeMapper . getYellowBetNegativeList ( jsdw . 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 ( jsdw . getShortName ( ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( negativeList . size ( ) ) ) ;
bureauRankList . add ( organizeProblemRankVo ) ;
}
// 排序
countyRankList . sort ( Comparator . comparingInt ( ( OrganizeProblemRankVo vo ) - > Integer . parseInt ( vo . getValue ( ) ) ) . reversed ( ) ) ;
bureauRankList . sort ( Comparator . comparingInt ( ( OrganizeProblemRankVo vo ) - > Integer . parseInt ( vo . getValue ( ) ) ) . reversed ( ) ) ;
List < Negative > totalNegativeList = new ArrayList < > ( totalNegativeMap . values ( ) ) ;
// List<Negative> processingList = totalNegativeList.stream().filter(item -> ProcessingStatusEnum.processing.name().equals(item.getProcessingStatus())).toList();
// List<Negative> completedList = totalNegativeList.stream().filter(item -> ProcessingStatusEnum.completed.name().equals(item.getProcessingStatus())).toList();
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("countyOverview", countyOverview)
. fluentPut ( "countyRankList" , countyRankList )
// .fluentPut("bureauOverview", bureauOverview)
. fluentPut ( "bureauRankList" , bureauRankList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getAllVideoSuperviseCount ( DataVRequest request ) {
NegativeQueryParam negativeQueryParam = new NegativeQueryParam ( ) ;
negativeQueryParam . setProblemSourcesCode ( List . of ( SPDC . getValue ( ) ) ) ;
negativeQueryParam . setCrtTime ( List . of ( request . getBeginTime ( ) , request . getEndTime ( ) ) ) ;
List < Negative > negatives = negativeResourceService . query ( negativeQueryParam ) ;
List < Negative > ssList = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
List < Negative > completedList = negatives . stream ( ) . filter ( item - > ProcessingStatusEnum . completed . name ( ) . equals ( item . getProcessingStatus ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssList . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
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 ( ) ;
// 5. 单位问责
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 ( ) ;
VideoSuperviseCountVo overview = new VideoSuperviseCountVo ( ) ;
overview . setTotal ( negatives . size ( ) ) ;
overview . setCompletionProblem ( ( long ) completedList . size ( ) ) ;
overview . setDiscoverProblem ( ( long ) ssList . size ( ) ) ;
overview . setRelativeOrg ( ( long ) unitBlames . size ( ) ) ;
overview . setRelativePer ( ( long ) ( personalBlames . size ( ) + leadBlames . size ( ) ) ) ;
JSONObject data = new JSONObject ( ) . fluentPut ( "overview" , overview ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getVideoSuperviseMap ( DataVRequest request ) {
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam ( ) ;
supDepartQueryParam . setStatisticsGroupId ( DepartGroupEnum . COUNTY_CITY_BUREAUS . getId ( ) ) ;
List < SupDepart > fxsjDw = supDepartResourceService . query ( supDepartQueryParam ) ;
List < String > proCode = List . of ( SPDC . getValue ( ) ) ;
List < VideoSuperviseMapIconVo > videoSuperviseMapIconVoList = new ArrayList < > ( ) ;
for ( SupDepart fxsj : fxsjDw ) {
List < Negative > negatives = negativeMapper . getNegativeListData ( fxsj . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
List < Negative > ssList = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
List < Negative > completedList = negatives . stream ( ) . filter ( item - > ProcessingStatusEnum . completed . name ( ) . equals ( item . getProcessingStatus ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssList . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
Set < String > seenLead = new HashSet < > ( ) ;
List < NegativeBlame > leadBlames = negativeBlames . stream ( )
. filter ( one - > StrUtil . isNotBlank ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > ! "不予追责" . equals ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > seenLead . add (
one . getNegativeId ( ) + "_" + one . getLeadHandleResultName ( ) + "_" + one . getLeadName ( )
) )
. toList ( ) ;
// 5. 单位问责
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 ( ) ;
VideoSuperviseMapIconVo videoSuperviseMapIconVo = new VideoSuperviseMapIconVo ( ) ;
videoSuperviseMapIconVo . setName ( fxsj . getShortName ( ) ) ;
videoSuperviseMapIconVo . setDepartId ( fxsj . getId ( ) ) ;
videoSuperviseMapIconVo . setDiscoverProblem ( ssList . size ( ) ) ;
videoSuperviseMapIconVo . setCompletionProblem ( completedList . size ( ) ) ;
videoSuperviseMapIconVo . setRelativeOrg ( unitBlames . size ( ) ) ;
videoSuperviseMapIconVo . setRelativePer ( personalBlames . size ( ) + leadBlames . size ( ) ) ;
videoSuperviseMapIconVoList . add ( videoSuperviseMapIconVo ) ;
}
videoSuperviseMapIconVoList . forEach ( VideoSuperviseMapIconVo : : initDefaultIfNull ) ;
JSONObject data = new JSONObject ( ) . fluentPut ( "videoSuperviseMapIconVoList" , videoSuperviseMapIconVoList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getSubOneVideoSuperviseProblemRank ( SubDataVRequest request ) {
List < OrganizeProblemRankVo > policeVideoSuperviseProblemRankList = new ArrayList < > ( ) ;
List < OrganizeProblemRankVo > teamVideoSuperviseProblemRankList = new ArrayList < > ( ) ;
SupDepartQueryParam supDepartGroupParam = new SupDepartQueryParam ( ) ;
supDepartGroupParam . setLevel ( "3" ) ;
supDepartGroupParam . setPid ( request . getDepartId ( ) ) ;
List < SupDepart > supDepartList = supDepartResourceService . query ( supDepartGroupParam ) ;
// 派出所
List < SupDepart > pcsList = supDepartList . stream ( )
. filter ( one - > StrUtil . isNotBlank ( one . getStatisticsGroupId ( ) ) )
. filter ( one - > DepartGroupEnum . PCS . getId ( ) . equals ( Integer . valueOf ( one . getStatisticsGroupId ( ) ) ) )
. toList ( ) ;
// 大队
List < SupDepart > dwList = supDepartList . stream ( )
. filter ( one - > {
String groupId = one . getStatisticsGroupId ( ) ;
return ! StrUtil . isNotBlank ( groupId )
| | ! DepartGroupEnum . PCS . getId ( ) . equals ( Integer . valueOf ( groupId ) ) ;
} )
. toList ( ) ;
for ( SupDepart pcs : pcsList ) {
List < Negative > fxsjList = negativeMapper . getVideoSuperviseProblemRank ( pcs . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
// 总数
long total = fxsjList . size ( ) ;
if ( total = = 0 ) {
continue ;
}
// 市局下发
long sjxf = fxsjList . stream ( ) . filter ( one - > Integer . valueOf ( 0 ) . equals ( one . getCrtDepartLevel ( ) ) ) . count ( ) ;
// 县局下发
long xjxf = fxsjList . stream ( ) . filter ( one - > Integer . valueOf ( 2 ) . equals ( one . getCrtDepartLevel ( ) ) ) . count ( ) ;
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo ( ) ;
organizeProblemRankVo . setLabel ( pcs . getShortName ( ) ) ;
organizeProblemRankVo . setCityNumber ( String . valueOf ( sjxf ) ) ;
organizeProblemRankVo . setCountyNumber ( String . valueOf ( xjxf ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( total ) ) ;
policeVideoSuperviseProblemRankList . add ( organizeProblemRankVo ) ;
}
for ( SupDepart dw : dwList ) {
List < Negative > fxsjList = negativeMapper . getVideoSuperviseProblemRank ( dw . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
// 总数
long total = fxsjList . size ( ) ;
if ( total = = 0 ) {
continue ;
}
// 市局下发
long sjxf = fxsjList . stream ( ) . filter ( one - > Integer . valueOf ( 0 ) . equals ( one . getCrtDepartLevel ( ) ) ) . count ( ) ;
// 县局下发
long xjxf = fxsjList . stream ( ) . filter ( one - > Integer . valueOf ( 2 ) . equals ( one . getCrtDepartLevel ( ) ) ) . count ( ) ;
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo ( ) ;
organizeProblemRankVo . setLabel ( dw . getShortName ( ) ) ;
organizeProblemRankVo . setCityNumber ( String . valueOf ( sjxf ) ) ;
organizeProblemRankVo . setCountyNumber ( String . valueOf ( xjxf ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( total ) ) ;
teamVideoSuperviseProblemRankList . add ( organizeProblemRankVo ) ;
}
// 排序
policeVideoSuperviseProblemRankList . sort (
Comparator . comparingLong ( ( OrganizeProblemRankVo vo ) - > Long . parseLong ( vo . getValue ( ) ) )
. reversed ( )
) ;
teamVideoSuperviseProblemRankList . sort (
Comparator . comparingLong ( ( OrganizeProblemRankVo vo ) - > Long . parseLong ( vo . getValue ( ) ) )
. reversed ( )
) ;
JSONObject data = new JSONObject ( ) ;
data . fluentPut ( "policeVideoSuperviseProblemRankList" , policeVideoSuperviseProblemRankList ) ;
data . fluentPut ( "teamVideoSuperviseProblemRankList" , teamVideoSuperviseProblemRankList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getSubOneAllVideoSuperviseCount ( SubDataVRequest request ) {
List < Negative > negatives = negativeMapper . getNegativeListData ( request . getDepartId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , List . of ( SPDC . getValue ( ) ) ) ;
List < Negative > ssList = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
List < Negative > completedList = negatives . stream ( ) . filter ( item - > ProcessingStatusEnum . completed . name ( ) . equals ( item . getProcessingStatus ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssList . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
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 ( ) ;
// 5. 单位问责
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 ( ) ;
VideoSuperviseCountVo overview = new VideoSuperviseCountVo ( ) ;
overview . setTotal ( negatives . size ( ) ) ;
overview . setCompletionProblem ( ( long ) completedList . size ( ) ) ;
overview . setDiscoverProblem ( ( long ) ssList . size ( ) ) ;
overview . setRelativeOrg ( ( long ) unitBlames . size ( ) ) ;
overview . setRelativePer ( ( long ) ( personalBlames . size ( ) + leadBlames . size ( ) ) ) ;
JSONObject data = new JSONObject ( ) . fluentPut ( "overview" , overview ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getSubOneVideoSuperviseMap ( SubDataVRequest request ) {
List < VideoSuperviseMapIconVo > videoSuperviseMapIconVoList = new ArrayList < > ( ) ;
String departId = request . getDepartId ( ) ;
Date beginTime = request . getBeginTime ( ) ;
Date endTime = request . getEndTime ( ) ;
List < String > proCode = List . of ( SPDC . getValue ( ) ) ;
// 查该区县局下属所有派出所
List < SupDepart > policeDeparts = supDepartMapper . selectPoliceDeparts ( Integer . valueOf ( departId ) ) ;
for ( SupDepart pcs : policeDeparts ) {
List < Negative > negatives = negativeMapper . getNegativeListData ( pcs . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
List < Negative > ssList = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
List < Negative > completedList = negatives . stream ( ) . filter ( item - > ProcessingStatusEnum . completed . name ( ) . equals ( item . getProcessingStatus ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssList . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
Set < String > seenLead = new HashSet < > ( ) ;
List < NegativeBlame > leadBlames = negativeBlames . stream ( )
. filter ( one - > StrUtil . isNotBlank ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > ! "不予追责" . equals ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > seenLead . add (
one . getNegativeId ( ) + "_" + one . getLeadHandleResultName ( ) + "_" + one . getLeadName ( )
) )
. toList ( ) ;
// 5. 单位问责
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 ( ) ;
VideoSuperviseMapIconVo videoSuperviseMapIconVo = new VideoSuperviseMapIconVo ( ) ;
videoSuperviseMapIconVo . setName ( pcs . getShortName ( ) ) ;
videoSuperviseMapIconVo . setDepartId ( pcs . getId ( ) ) ;
videoSuperviseMapIconVo . setDiscoverProblem ( ssList . size ( ) ) ;
videoSuperviseMapIconVo . setCompletionProblem ( completedList . size ( ) ) ;
videoSuperviseMapIconVo . setRelativeOrg ( unitBlames . size ( ) ) ;
videoSuperviseMapIconVo . setRelativePer ( personalBlames . size ( ) + leadBlames . size ( ) ) ;
videoSuperviseMapIconVoList . add ( videoSuperviseMapIconVo ) ;
}
videoSuperviseMapIconVoList . forEach ( VideoSuperviseMapIconVo : : initDefaultIfNull ) ;
JSONObject data = new JSONObject ( ) . fluentPut ( "videoSuperviseMapIconVoList" , videoSuperviseMapIconVoList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getCaseVerificationRank ( DataVRequest request ) {
List < String > proCode = List . of ( A12389 . getValue ( ) ) ;
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam ( ) ;
supDepartQueryParam . setStatisticsGroupId ( DepartGroupEnum . COUNTY_CITY_BUREAUS . getId ( ) ) ;
List < SupDepart > fxsjDw = supDepartResourceService . query ( supDepartQueryParam ) ;
SupDepartQueryParam jsdwQueryParam = new SupDepartQueryParam ( ) ;
jsdwQueryParam . setStatisticsGroupId ( DepartGroupEnum . BUREAU_AFFILIATED . getId ( ) ) ;
List < SupDepart > jsdwDw = supDepartResourceService . query ( jsdwQueryParam ) ;
List < OrganizeProblemRankVo > fxsjRankList = new ArrayList < > ( ) ;
List < OrganizeProblemRankVo > jsdwRankList = new ArrayList < > ( ) ;
for ( SupDepart fxsj : fxsjDw ) {
List < Negative > negatives = negativeMapper . getNegativeListData ( fxsj . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
if ( CollectionUtil . isEmpty ( negatives ) ) {
continue ;
}
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo ( ) ;
organizeProblemRankVo . setLabel ( fxsj . getShortName ( ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( negatives . size ( ) ) ) ;
fxsjRankList . add ( organizeProblemRankVo ) ;
}
for ( SupDepart jsdw : jsdwDw ) {
List < Negative > negatives = negativeMapper . getNegativeListData ( jsdw . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
if ( CollectionUtil . isEmpty ( negatives ) ) {
continue ;
}
OrganizeProblemRankVo organizeProblemRankVo = new OrganizeProblemRankVo ( ) ;
organizeProblemRankVo . setLabel ( jsdw . getShortName ( ) ) ;
organizeProblemRankVo . setValue ( String . valueOf ( negatives . size ( ) ) ) ;
jsdwRankList . add ( organizeProblemRankVo ) ;
}
// 排序
fxsjRankList . sort (
Comparator . comparingLong ( ( OrganizeProblemRankVo vo ) - > Long . parseLong ( vo . getValue ( ) ) )
. reversed ( )
) ;
jsdwRankList . sort (
Comparator . comparingLong ( ( OrganizeProblemRankVo vo ) - > Long . parseLong ( vo . getValue ( ) ) )
. reversed ( )
) ;
JSONObject data = new JSONObject ( )
. fluentPut ( "fxsjRankList" , fxsjRankList )
. fluentPut ( "jsdwRankList" , jsdwRankList ) ;
return Result . success ( data ) ;
}
@Override
public Result < JSONObject > getCaseVerificationMap ( DataVRequest request ) {
SupDepartQueryParam supDepartQueryParam = new SupDepartQueryParam ( ) ;
supDepartQueryParam . setStatisticsGroupId ( DepartGroupEnum . COUNTY_CITY_BUREAUS . getId ( ) ) ;
List < SupDepart > fxsjDw = supDepartResourceService . query ( supDepartQueryParam ) ;
List < String > proCode = List . of ( A12389 . getValue ( ) ) ;
List < CaseVerificationMapVo > caseVerificationMapList = new ArrayList < > ( ) ;
for ( SupDepart fxsj : fxsjDw ) {
LambdaQueryWrapper < DataCaseVerif > dataCaseVerifLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
dataCaseVerifLambdaQueryWrapper . between ( DataCaseVerif : : getCreateTime , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
List < DataCaseVerif > dataCaseVerifs = dataCaseVerifMapper . getListData ( fxsj . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) ) ;
List < Negative > negatives = negativeMapper . getNegativeListData ( fxsj . getId ( ) , request . getBeginTime ( ) , request . getEndTime ( ) , proCode ) ;
List < Negative > ssNegative = negatives . stream ( ) . filter ( one - > CheckStatusEnum . TRUE_SET . contains ( one . getCheckStatusCode ( ) ) | | CheckStatusEnum . PART_TRUE_SET . contains ( one . getCheckStatusCode ( ) ) ) . toList ( ) ;
NegativeBlameQueryParam negativeBlameQueryParam = new NegativeBlameQueryParam ( ) ;
negativeBlameQueryParam . setNegativeIds ( ssNegative . stream ( ) . map ( Negative : : getId ) . toList ( ) ) ;
List < NegativeBlame > negativeBlames = negativeBlameResourceService . query ( negativeBlameQueryParam ) ;
// 3. 个人问责
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 ( ) ;
// 4. 领导问责(按 negativeId + 领导姓名 + 领导处理结果 去重)
Set < String > seenLead = new HashSet < > ( ) ;
List < NegativeBlame > leadBlames = negativeBlames . stream ( )
. filter ( one - > StrUtil . isNotBlank ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > ! "不予追责" . equals ( one . getLeadHandleResultName ( ) ) )
. filter ( one - > seenLead . add (
one . getNegativeId ( ) + "_" + one . getLeadHandleResultName ( ) + "_" + one . getLeadName ( )
) )
. toList ( ) ;
// 5. 单位问责
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 ( ) ;
Double verificationRate = 0 . 0 ;
if ( ! dataCaseVerifs . isEmpty ( ) ) {
double rawRate = ( double ) ssNegative . size ( ) / dataCaseVerifs . size ( ) * 100 ;
verificationRate = Math . ceil ( rawRate ) ;
}
CaseVerificationMapVo caseVerificationMapVo = new CaseVerificationMapVo ( ) ;
caseVerificationMapVo . setName ( fxsj . getShortName ( ) ) ;
caseVerificationMapVo . setDepartId ( fxsj . getId ( ) ) ;
caseVerificationMapVo . setTotal ( dataCaseVerifs . size ( ) ) ;
caseVerificationMapVo . setConfirmed ( ssNegative . size ( ) ) ;
caseVerificationMapVo . setDealCasePro ( negatives . size ( ) ) ;
caseVerificationMapVo . setPunishPre ( personalBlames . size ( ) + leadBlames . size ( ) ) ;
caseVerificationMapVo . setPunishOrg ( unitBlames . size ( ) ) ;
caseVerificationMapVo . setRate ( verificationRate ) ;
caseVerificationMapList . add ( caseVerificationMapVo ) ;
}
JSONObject res = new JSONObject ( ) . fluentPut ( "caseVerificationMapList" , caseVerificationMapList ) ;
return Result . success ( res ) ;
}
public Result < JSONObject > getSubOneMailMapIcon ( ) {
// ✅ 注意:这里的 name 必须和地图 geojson 区域名一致(一般是“xx街道/园区”)