@ -5,6 +5,7 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.pojo.ClueData ;
import com.biutag.supervisiondata.pojo.ClueData ;
import com.biutag.supervisiondata.pojo.constants.Default ;
import com.biutag.supervisiondata.pojo.constants.Default ;
import com.biutag.supervisiondata.pojo.database.PointOrg ;
import com.biutag.supervisiondata.pojo.database.PointOrg ;
import com.biutag.supervisiondata.pojo.domain.PetitionData ;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain ;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain ;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX ;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX ;
import com.biutag.supervisiondata.pojo.entity.mine.* ;
import com.biutag.supervisiondata.pojo.entity.mine.* ;
@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDate ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.time.LocalDateTime ;
import java.time.format.DateTimeFormatter ;
import java.util.* ;
import java.util.* ;
import java.util.concurrent.CompletableFuture ;
import java.util.concurrent.CompletableFuture ;
import java.util.function.Function ;
import java.util.function.Function ;
@ -292,106 +294,64 @@ public class PetitionServiceImpl implements PetitionService {
RiskTask task = riskTaskRepository . create ( domain . getPersons ( ) . size ( ) , 40 ) ;
RiskTask task = riskTaskRepository . create ( domain . getPersons ( ) . size ( ) , 40 ) ;
LocalDateTime time = LocalDateTime . now ( ) . minusMonths ( 12 ) ;
LocalDateTime time = LocalDateTime . now ( ) . minusMonths ( 12 ) ;
List < DataPetition12337 > pList1 = new ArrayList < > ( ) ;
for ( List < String > idCard : domain . getIdCards ( ) ) {
pList1 . addAll ( petition12337Repository . list ( new LambdaQueryWrapper < DataPetition12337 > ( )
. select ( DataPetition12337 : : getOnlyId , DataPetition12337 : : getName , DataPetition12337 : : getIdCode , DataPetition12337 : : getPhone , DataPetition12337 : : getThirdDepartId , DataPetition12337 : : getThirdDepartName , DataPetition12337 : : getDiscoverTime , DataPetition12337 : : getReviewDes ) . ge ( DataPetition12337 : : getDiscoverTime , time )
. in ( DataPetition12337 : : getIdCode , idCard ) ) ) ;
}
List < DataPetitionComplaint > pList2 = new ArrayList < > ( ) ;
List < PetitionData > dataList1 = new ArrayList < > ( ) ;
for ( List < String > idCard : domain . getIdCards ( ) ) {
List < PetitionData > dataList2 = new ArrayList < > ( ) ;
pList2 . addAll ( complaintRepository . list ( new LambdaQueryWrapper < DataPetitionComplaint > ( )
List < PetitionData > dataList3 = new ArrayList < > ( ) ;
. select ( DataPetitionComplaint : : getOriginId , DataPetitionComplaint : : getResponderName , DataPetitionComplaint : : getResponderPhone , DataPetitionComplaint : : getResponderName , DataPetitionComplaint : : getThirdDepartId , DataPetitionComplaint : : getThirdDepartName , DataPetitionComplaint : : getDiscoveryTime , DataPetitionComplaint : : getThingDesc ) . ge ( DataPetitionComplaint : : getDiscoveryTime , time )
. in ( DataPetitionComplaint : : getResponderPhone , idCard ) ) ) ;
CompletableFuture . allOf (
}
CompletableFutureUtil . runSyncObject ( ( ) - > dataList1 . addAll ( dataCaseVerifRepository . getBaseMapper ( ) . selectRiskPerson ( time . format ( DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ) ) ,
CompletableFutureUtil . runSyncObject ( ( ) - > dataList2 . addAll ( complaintRepository . getBaseMapper ( ) . selectRiskPerson ( time . format ( DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ) ) ,
CompletableFutureUtil . runSyncObject ( ( ) - > dataList3 . addAll ( petition12337Repository . getBaseMapper ( ) . selectRiskPerson ( time . format ( DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ) )
) . join ( ) ;
List < DataCaseVerif > pList3 = new ArrayList < > ( ) ;
List < String > mobiles = domain . getPersons ( ) . stream ( ) . map ( RiskPersonal : : getMobileNumber ) . distinct ( ) . toList ( ) ;
List < List < String > > doubleMobile = IntStream . range ( 0 , ( mobiles . size ( ) + 9999 ) / 10000 )
. mapToObj ( i - > mobiles . subList ( i * 10000 , Math . min ( ( i + 1 ) * 10000 , mobiles . size ( ) ) ) )
. toList ( ) ;
for ( List < String > mobile : doubleMobile ) {
pList3 . addAll ( dataCaseVerifRepository . list ( new LambdaQueryWrapper < DataCaseVerif > ( )
. select ( DataCaseVerif : : getOriginId , DataCaseVerif : : getResponderName , DataCaseVerif : : getResponderPhone , DataCaseVerif : : getThirdDepartId , DataCaseVerif : : getThirdDepartName , DataCaseVerif : : getDiscoveryTime , DataCaseVerif : : getThingDesc ) . ge ( DataCaseVerif : : getDiscoveryTime , time )
. in ( DataCaseVerif : : getResponderPhone , mobile ) ) ) ;
}
// 先搞定这个电话号码的
Map < String , List < RiskPersonal > > man = domain . getPersons ( ) . stream ( ) . filter ( item - > item . getMobileNumber ( ) ! = null ) . collect ( Collectors . groupingBy ( RiskPersonal : : getMobileNumber ) ) ;
Map < String , RiskPersonal > idCodeMan = domain . getPersons ( ) . stream ( ) . collect ( Collectors . toMap ( RiskPersonal : : getIdCode , Function . identity ( ) , ( oldValue , newValue ) - > newValue ) ) ;
Map < String , RiskPersonal > idCodeMan = domain . getPersons ( ) . stream ( ) . collect ( Collectors . toMap ( RiskPersonal : : getIdCode , Function . identity ( ) , ( oldValue , newValue ) - > newValue ) ) ;
List < RiskModelTaskClue > oldList = Optional . ofNullable ( domain . getMap ( ) . get ( task . getModelId ( ) ) ) . orElse ( new ArrayList < > ( ) ) ;
List < RiskModelTaskClue > oldList = Optional . ofNullable ( domain . getMap ( ) . get ( task . getModelId ( ) ) ) . orElse ( new ArrayList < > ( ) ) ;
Map < String , RiskModelTaskClue > oldMap = oldList . stream ( ) . collect ( Collectors . toMap ( RiskModelTaskClue : : getCaseIds , Function . identity ( ) , ( val , old ) - > val ) ) ;
Map < String , RiskModelTaskClue > oldMap = oldList . stream ( ) . collect ( Collectors . toMap ( RiskModelTaskClue : : getCaseIds , Function . identity ( ) , ( val , old ) - > val ) ) ;
List < RiskModelTaskClue > toInsert = new ArrayList < > ( ) ;
List < RiskModelTaskClue > toInsert1 = new ArrayList < > ( createClues ( dataList1 , oldMap , idCodeMan , task , Default . PETITION_CASE_TAG ) ) ;
for ( DataCaseVerif dataCaseVerif : pList3 ) {
List < RiskModelTaskClue > toInsert2 = new ArrayList < > ( createClues ( dataList2 , oldMap , idCodeMan , task , Default . PETITION_TAG ) ) ;
if ( oldMap . get ( BhUtil . petBh ( dataCaseVerif . getOriginId ( ) ) ) ! = null ) {
List < RiskModelTaskClue > toInsert3 = new ArrayList < > ( createClues ( dataList3 , oldMap , idCodeMan , task , Default . PETITION_12337_TAG ) ) ;
continue ;
}
List < RiskPersonal > list = man . get ( dataCaseVerif . getResponderPhone ( ) ) ;
RiskPersonal person = comparePerson ( list , dataCaseVerif . getResponderName ( ) ) ;
if ( person = = null ) {
continue ;
}
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , ClueData . builder ( )
. id ( dataCaseVerif . getOriginId ( ) )
. tag ( Default . PETITION_CASE_TAG )
. personId ( person . getId ( ) )
. departId ( dataCaseVerif . getThirdDepartId ( ) )
. departName ( dataCaseVerif . getThirdDepartName ( ) )
. eventTime ( dataCaseVerif . getDiscoveryTime ( ) )
. idCode ( person . getIdCode ( ) )
. name ( person . getName ( ) )
. sourceData ( "该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + dataCaseVerif . getThingDesc ( ) )
. build ( ) ) ) ;
}
for ( DataPetition12337 item : pList1 ) {
if ( ! toInsert1 . isEmpty ( ) ) {
if ( oldMap . get ( BhUtil . petBh ( item . getOnlyId ( ) ) ) ! = null ) {
log . info ( "信访数据1: {}" , toInsert1 . size ( ) ) ;
continue ;
riskModelTaskClueService . saveClues ( toInsert1 , Default . PETITION_CASE_TAG ) ;
}
}
RiskPersonal person = idCodeMan . get ( item . getIdCode ( ) ) ;
if ( ! toInsert2 . isEmpty ( ) ) {
if ( person = = null ) {
log . info ( "信访数据2: {}" , toInsert2 . size ( ) ) ;
continue ;
riskModelTaskClueService . saveClues ( toInsert2 , Default . PETITION_TAG ) ;
}
}
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , ClueData . builder ( )
if ( ! toInsert3 . isEmpty ( ) ) {
. id ( item . getOnlyId ( ) )
log . info ( "信访数据3: {}" , toInsert3 . size ( ) ) ;
. tag ( Default . PETITION_12337_TAG )
riskModelTaskClueService . saveClues ( toInsert3 , Default . PETITION_12337_TAG ) ;
. personId ( person . getId ( ) )
. departId ( item . getThirdDepartId ( ) )
. departName ( item . getThirdDepartName ( ) )
. eventTime ( item . getDiscoverTime ( ) )
. idCode ( person . getIdCode ( ) )
. name ( person . getName ( ) )
. sourceData ( "该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item . getReviewDes ( ) )
. build ( ) ) ) ;
}
}
riskTaskRepository . updateTask ( task . getId ( ) , toInsert1 . size ( ) + toInsert2 . size ( ) + toInsert3 . size ( ) , 0 ) ;
}
for ( DataPetitionComplaint item : pList2 ) {
List < RiskModelTaskClue > createClues ( List < PetitionData > dataList , Map < String , RiskModelTaskClue > oldMap , Map < String , RiskPersonal > idCodeMan , RiskTask task , String tag ) {
if ( oldMap . get ( BhUtil . petBh ( item . getOriginId ( ) ) ) ! = null ) {
List < RiskModelTaskClue > toInsert = new ArrayList < > ( ) ;
for ( PetitionData data : dataList ) {
if ( oldMap . get ( BhUtil . petBh ( data . getId ( ) ) ) ! = null ) {
continue ;
continue ;
}
}
RiskPersonal person = idCodeMan . get ( item . getResponder IdCode ( ) ) ;
RiskPersonal person = idCodeMan . get ( data . getIdCode ( ) ) ;
if ( person = = null ) {
if ( person = = null ) {
continue ;
continue ;
}
}
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , ClueData . builder ( )
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , ClueData . builder ( )
. id ( item . getOrigin Id ( ) )
. id ( data . getId ( ) )
. tag ( Default . PETITION_TAG )
. tag ( tag )
. personId ( person . getId ( ) )
. personId ( person . getId ( ) )
. departId ( item . getThird DepartId ( ) )
. departId ( data . getDepartId ( ) )
. departName ( item . getThird DepartName ( ) )
. departName ( data . getDepartName ( ) )
. eventTime ( item . getDiscovery Time( ) )
. eventTime ( data . getEvent Time( ) )
. idCode ( person . getIdCode ( ) )
. idCode ( person . getIdCode ( ) )
. name ( person . getName ( ) )
. name ( person . getName ( ) )
. sourceData ( "该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item . getThingDesc ( ) )
. sourceData ( "该人员在近12个月内有" + tag + "的情况,具体情况为:" + data . getContent ( ) )
. build ( ) ) ) ;
. build ( ) ) ) ;
}
}
if ( ! toInsert . isEmpty ( ) ) {
return toInsert ;
log . info ( "公安信访数据: {}" , toInsert . size ( ) ) ;
riskModelTaskClueService . saveClues ( toInsert , Default . MAIL_IG ) ;
}
riskTaskRepository . updateTask ( task . getId ( ) , toInsert . size ( ) , 0 ) ;
}
}
GBaseSYRKXX compare ( List < GBaseSYRKXX > infos , String name ) {
GBaseSYRKXX compare ( List < GBaseSYRKXX > infos , String name ) {
@ -405,17 +365,6 @@ public class PetitionServiceImpl implements PetitionService {
return info ;
return info ;
}
}
RiskPersonal comparePerson ( List < RiskPersonal > infos , String name ) {
RiskPersonal info = null ;
for ( RiskPersonal gBaseSYRKXX : infos ) {
if ( gBaseSYRKXX . getName ( ) . equals ( name ) ) {
info = gBaseSYRKXX ;
break ;
}
}
return info ;
}
RiskModelTaskClue createClue ( Integer modelId , Integer score , Integer taskId , ClueData data ) {
RiskModelTaskClue createClue ( Integer modelId , Integer score , Integer taskId , ClueData data ) {
RiskModelTaskClue clue = new RiskModelTaskClue ( ) ;
RiskModelTaskClue clue = new RiskModelTaskClue ( ) ;
clue . setModelId ( modelId ) ;
clue . setModelId ( modelId ) ;