@ -4,15 +4,19 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil ;
import com.alibaba.fastjson.JSONObject ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.biutag.supervision.constants.enums.BlameType ;
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.NegativeMapper ;
import com.biutag.supervision.pojo.Result ;
import com.biutag.supervision.pojo.entity.DataCaseVerif ;
import com.biutag.supervision.pojo.entity.Negative ;
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.pojo.entity.NegativeBlame ;
import com.biutag.supervision.pojo.entity.SupPolice ;
import com.biutag.supervision.pojo.vo.* ;
import com.biutag.supervision.service.NegativeBlameService ;
import com.biutag.supervision.service.SupPoliceService ;
import io.swagger.v3.oas.annotations.Operation ;
import io.swagger.v3.oas.annotations.tags.Tag ;
import lombok.RequiredArgsConstructor ;
@ -26,6 +30,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays ;
import java.util.Date ;
import java.util.List ;
import java.util.Objects ;
import java.util.stream.Collectors ;
import static com.biutag.supervision.constants.enums.ProblemSourcesEnum.* ;
@ -42,6 +48,9 @@ public class DataVCaseVerifController {
private final DataCaseVerifMapper dataCaseVerifMapper ;
private final NegativeMapper negativeMapper ;
private final NegativeBlameService blameService ;
private final SupPoliceService policeService ;
// region 左边
@ -126,21 +135,52 @@ public class DataVCaseVerifController {
* @param endTime 结束时间
* @return Result < JSONObject >
* /
@Operation ( summary = "中央 数据总览" )
@Operation ( summary = "案件核查 数据总览" )
@GetMapping ( "/getCaseVerificationCount" )
public Result < JSONObject > getAllCaseVerificationCount ( @RequestParam @DateTimeFormat ( pattern = "yyyy-MM-dd" ) Date beginTime ,
@RequestParam @DateTimeFormat ( pattern = "yyyy-MM-dd" ) Date 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 ( ) ) ;
long confirmed = negativeMapper . selectCount ( new LambdaQueryWrapper < Negative > ( ) . in ( Negative : : getProblemSourcesCode , list ) . between ( Negative : : getCrtTime , beginTime , endTime ) ) ;
long total = dataCaseVerifMapper . selectCount ( new LambdaQueryWrapper < DataCaseVerif > ( ) . between ( DataCaseVerif : : getCreateTime , beginTime , endTime ) ) ;
overview . setTotal ( ( int ) total ) ;
overview . setConfirmed ( ( int ) confirmed ) ;
// overview.setRate((double) ((overview.getConfirmed() / total * 100) ));
overview . setRate ( NumberUtil . div ( ( Number ) ( overview . getConfirmed ( ) * 100 ) , total ) . doubleValue ( ) ) ;
// 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 ( ) ;
List < DataCaseVerif > dataCaseVerifs = dataCaseVerifMapper . selectList ( new LambdaQueryWrapper < DataCaseVerif > ( ) . between ( DataCaseVerif : : getCreateTime , beginTime , endTime ) ) ;
overview . setTotal ( dataCaseVerifs . size ( ) ) ;
List < Negative > negatives = negativeMapper . selectList ( new LambdaQueryWrapper < Negative > ( )
. between ( Negative : : getCrtTime , beginTime , endTime )
. in ( Negative : : getProblemSourcesCode , List . of ( A12389 . getValue ( ) , SLDJB . getValue ( ) , ZDDJB . getValue ( ) , SJJB . getValue ( ) ) ) ) ;
overview . setConfirmed ( negatives . size ( ) ) ;
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 ( ) ) ;
double rate = overview . getTotal ( ) = = 0 ? 0 : NumberUtil . round ( ( double ) overview . getConfirmed ( ) / overview . getTotal ( ) * 100 , 0 ) . doubleValue ( ) ;
overview . setRate ( rate ) ;
if ( negatives . isEmpty ( ) ) {
overview . setPunishOrg ( 0L ) ;
overview . setPunishPre ( 0L ) ;
} else {
List < NegativeBlame > blames = blameService . 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 = policeService . 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 ( ) ) ;
}
JSONObject res = new JSONObject ( ) . fluentPut ( "overview" , overview ) ;
return Result . success ( res ) ;
}
@ -153,7 +193,7 @@ public class DataVCaseVerifController {
* @param endTime 结束时间
* @return Result < JSONObject >
* /
@Operation ( summary = "地图Icon数据 " )
@Operation ( summary = "案件核查大屏 地图" )
@GetMapping ( "/getCaseVerificationMap" )
// @Cacheable(cacheNames = "Supervision:Screen:CaseVerificationMap", key = "#beginTime.getTime()+'_'+#endTime.getTime()")
public Result < JSONObject > getCaseVerificationMap ( @RequestParam @DateTimeFormat ( pattern = "yyyy-MM-dd" ) Date beginTime ,
@ -161,7 +201,6 @@ public class DataVCaseVerifController {
Date finalEndTime = DateUtil . endOfDay ( endTime ) ;
List < CaseVerificationMapVo > caseVerificationMapList = negativeMapper . getCaseVerificationMap ( beginTime , finalEndTime ) ;
log . info ( "-------caseVerificationMapList-------" ) ;
log . info ( caseVerificationMapList . toString ( ) ) ;
JSONObject res = new JSONObject ( ) . fluentPut ( "caseVerificationMapList" , caseVerificationMapList ) ;
return Result . success ( res ) ;
}