@ -231,54 +231,56 @@ public class PointServiceImpl implements PointService {
@Override
@Override
public void syncViolence ( TaskParamDomain domain ) {
public void syncViolence ( TaskParamDomain domain ) {
RiskTask task = taskRepository . create ( domain . getPersons ( ) . size ( ) , 44 ) ;
RiskTask task = taskRepository . create ( domain . getPersons ( ) . size ( ) , 44 ) ;
Map < String , RiskPersonal > personalMap = domain . getPersons ( ) . stream ( ) . collect ( Collectors . toMap ( RiskPersonal : : getIdCode , Function . identity ( ) , ( oldValue , newValue ) - > newValue ) ) ;
List < Violence > list = zdryRepository . getBaseMapper ( ) . syncViolencePerson ( ) ;
List < Violence > list = zdryRepository . getBaseMapper ( ) . syncViolencePerson ( ) ;
Map < String , List < Violence > > violenceMap = list . stream ( ) . collect ( Collectors . groupingBy ( Violence : : getZjhm ) ) ;
Map < String , Map < String , Integer > > map = new HashMap < > ( ) ;
Map < String , Map < String , Integer > > map = new HashMap < > ( ) ;
List < RiskModelTaskClue > olds = Optional . ofNullable ( domain . getMap ( ) . get ( task . getId ( ) ) ) . orElse ( new ArrayList < > ( ) ) ;
List < RiskModelTaskClue > olds = Optional . ofNullable ( domain . getMap ( ) . get ( task . getId ( ) ) ) . orElse ( new ArrayList < > ( ) ) ;
Map < String , List < RiskModelTaskClue > > maps = olds . stream ( ) . collect ( Collectors . groupingBy ( RiskModelTaskClue : : getIdCode ) ) ;
Map < String , List < RiskModelTaskClue > > maps = olds . stream ( ) . collect ( Collectors . groupingBy ( RiskModelTaskClue : : getIdCode ) ) ;
List < RiskModelTaskClue > toInsert = new ArrayList < > ( ) ;
List < RiskModelTaskClue > toInsert = new ArrayList < > ( ) ;
for ( Violence violence : list ) {
if ( violence . getZjhm ( ) = = null | | personalMap . get ( violence . getZjhm ( ) ) = = null ) {
for ( RiskPersonal person : domain . getPersons ( ) ) {
continue ;
List < Violence > tmp = violenceMap . get ( person . getIdCode ( ) ) ;
if ( tmp = = null ) continue ;
List < RiskModelTaskClue > old = maps . get ( person . getIdCode ( ) ) ;
if ( old ! = null ) continue ;
tmp = tmp . stream ( ) . filter ( StreamUtil . distinctByKey ( Violence : : getAjbh ) ) . toList ( ) ;
StringBuilder sb = new StringBuilder ( "通过核查案件信息,发现该人员有暴力伤害行为,案件编号为:" ) ;
List < String > tags = new ArrayList < > ( ) ;
LocalDateTime date = null ;
for ( Violence violence : tmp ) {
sb . append ( violence . getAjbh ( ) ) . append ( "," ) ;
if ( ! tags . contains ( violence . getAjlbmc ( ) ) ) {
tags . add ( violence . getAjlbmc ( ) ) ;
}
}
Map < String , Integer > old = Optional . ofNullable ( map . get ( violence . getZjhm ( ) ) ) . orElse ( new HashMap < > ( ) ) ;
try {
if ( old . get ( violence . getAjbh ( ) ) ! = null ) {
LocalDateTime ld = violence . getBarq ( ) . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDateTime ( ) ;
if ( date = = null ) {
date = ld ;
continue ;
continue ;
}
}
if ( date . isAfter ( ld ) ) {
List < RiskModelTaskClue > oldClues = Optional . ofNullable ( maps . get ( violence . getZjhm ( ) ) ) . orElse ( new ArrayList < > ( ) ) ;
date = ld ;
Map < String , RiskModelTaskClue > oldMap = oldClues . stream ( ) . collect ( Collectors . toMap ( RiskModelTaskClue : : getCaseIds , Function . identity ( ) , ( oldValue , newValue ) - > newValue ) ) ;
}
if ( oldMap . get ( BhUtil . ajBh ( violence . getAjbh ( ) ) ) ! = null ) {
} catch ( Exception ignored ) {
continue ;
}
}
}
old . put ( violence . getAjbh ( ) , 1 ) ;
map . put ( violence . getZjhm ( ) , old ) ;
RiskPersonal person = personalMap . get ( violence . getZjhm ( ) ) ;
ClueData data = ClueData . builder ( )
ClueData data = ClueData . builder ( )
. name ( person . getName ( ) )
. name ( person . getName ( ) )
. id ( violence . getAjbh ( ) )
. id ( "" )
. personId ( person . getId ( ) )
. personId ( person . getId ( ) )
. idCode ( person . getIdCode ( ) )
. idCode ( person . getIdCode ( ) )
. sourceData ( "通过核查案件信息,发现该人员有暴力伤害行为,案件编号为:" + violence . getAjbh ( ) + Optional . ofNullable ( violence . getWfss ( ) ) . map ( it - > ",具体情况为:" + it ) . orElse ( "" ) )
. sourceData ( sb . substring ( 0 , sb . length ( ) - 1 ) )
. tag ( violence . getAjlbmc ( ) )
. tags ( tags )
. score ( Math . min ( tmp . size ( ) , 5 ) )
. eventTime ( date )
. build ( ) ;
. build ( ) ;
if ( violence . getBadwiddm ( ) ! = null ) {
toInsert . add ( DataUtil . createClueData ( task , data ) ) ;
data . setDepartId ( violence . getBadwiddm ( ) ) ;
data . setDepartId ( violence . getBadwidmc ( ) ) ;
}
try {
data . setEventTime ( violence . getBarq ( ) . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDateTime ( ) ) ;
} catch ( Exception ignored ) {
data . setEventTime ( LocalDateTime . now ( ) ) ;
}
}
toInsert . add ( createClue2 ( task . getModelId ( ) , 5 , task . getId ( ) , data ) ) ;
}
if ( ! toInsert . isEmpty ( ) ) {
if ( ! toInsert . isEmpty ( ) ) {
modelTaskClueService . saveClues ( toInsert , Default . VIOLENCE_IG ) ;
modelTaskClueService . saveClues ( toInsert , "B89暴力伤害行为" ) ;
}
}
taskRepository . updateTask ( task . getId ( ) , toInsert . size ( ) , 0 ) ;
taskRepository . updateTask ( task . getId ( ) , toInsert . size ( ) , 0 ) ;
}
}
@ -1687,14 +1689,13 @@ public class PointServiceImpl implements PointService {
. name ( personal . getName ( ) )
. name ( personal . getName ( ) )
. id ( personal . getId ( ) . toString ( ) )
. id ( personal . getId ( ) . toString ( ) )
. idCode ( personal . getIdCode ( ) )
. idCode ( personal . getIdCode ( ) )
. tag ( "重点对象日常管控不到位" )
. tags ( List . of ( "重点对象日常管控不到位" ) )
. departId ( gBaseZDRY . getXzdpcsdm ( ) )
. departName ( gBaseZDRY . getXzdpcs ( ) )
. personId ( personal . getId ( ) )
. personId ( personal . getId ( ) )
. score ( 5 )
. eventTime ( LocalDateTime . of ( 2024 , 10 , 7 , 12 , 11 , 23 ) )
. eventTime ( LocalDateTime . of ( 2024 , 10 , 7 , 12 , 11 , 23 ) )
. sourceData ( "发现该人员属于重点人员,该人员的管控民警所管控的重点人员达到100人以上\n属于未落实日常管控要求" )
. sourceData ( "发现该人员属于重点人员,该人员的管控民警所管控的重点人员达到100人以上\n属于未落实日常管控要求" )
. build ( ) ;
. build ( ) ;
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , data ) ) ;
toInsert . add ( DataUtil . createClueData ( task , data ) ) ;
}
}
if ( ! toInsert . isEmpty ( ) ) {
if ( ! toInsert . isEmpty ( ) ) {
log . info ( "增加特定对象日常管控不到位人员:{}" , toInsert . size ( ) ) ;
log . info ( "增加特定对象日常管控不到位人员:{}" , toInsert . size ( ) ) ;
@ -1823,8 +1824,7 @@ public class PointServiceImpl implements PointService {
GBaseOilBuy : : getName , GBaseOilBuy : : getCompanyName , GBaseOilBuy : : getType , GBaseOilBuy : : getTime ,
GBaseOilBuy : : getName , GBaseOilBuy : : getCompanyName , GBaseOilBuy : : getType , GBaseOilBuy : : getTime ,
GBaseOilBuy : : getUseTo , GBaseOilBuy : : getMobile , GBaseOilBuy : : getIdCode )
GBaseOilBuy : : getUseTo , GBaseOilBuy : : getMobile , GBaseOilBuy : : getIdCode )
. ge ( GBaseOilBuy : : getTime , currentTime . format ( DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ) ;
. ge ( GBaseOilBuy : : getTime , currentTime . format ( DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ) ;
RiskTask task = createTask ( buys . size ( ) , 52 ) ;
RiskTask task = taskRepository . create ( buys . size ( ) , 52 ) ;
taskRepository . save ( task ) ;
// 旧数据
// 旧数据
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 < > ( ) ) ;
@ -1851,6 +1851,8 @@ public class PointServiceImpl implements PointService {
if ( mineBuy = = null ) {
if ( mineBuy = = null ) {
continue ;
continue ;
}
}
LocalDateTime time = null ;
int count = 0 ;
for ( GBaseOilBuy item : mineBuy ) {
for ( GBaseOilBuy item : mineBuy ) {
if ( oldMap . get ( BhUtil . oilBh ( item . getXh ( ) ) ) ! = null ) {
if ( oldMap . get ( BhUtil . oilBh ( item . getXh ( ) ) ) ! = null ) {
continue ;
continue ;
@ -1858,68 +1860,38 @@ public class PointServiceImpl implements PointService {
if ( carMt . get ( person . getIdCode ( ) ) ! = null ) {
if ( carMt . get ( person . getIdCode ( ) ) ! = null ) {
continue ;
continue ;
}
}
ClueData data = ClueData . builder ( )
count + + ;
. name ( person . getName ( ) )
. id ( BhUtil . oilBh ( item . getXh ( ) ) )
. idCode ( person . getIdCode ( ) )
. departId ( item . getOrgId ( ) )
. departName ( item . getOrgName ( ) )
. personId ( person . getId ( ) )
. build ( ) ;
try {
try {
data . setEventTime ( LocalDateTime . parse ( item . getTime ( ) , DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ) ;
LocalDateTime tmp = LocalDateTime . parse ( item . getTime ( ) , DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ) ;
if ( time = = null ) {
time = tmp ;
continue ;
}
if ( tmp . isAfter ( time ) ) {
time = tmp ;
}
} catch ( Exception e ) {
} catch ( Exception e ) {
data . setEventTime ( LocalDateTime . now ( ) ) ;
log . error ( "散装油时间转化异常" ) ;
log . error ( "散装油时间转化异常" ) ;
}
}
data . setTag ( Default . NO_CAR_OIL_BUY ) ;
data . setSourceData ( "发现该人员属于无车人员,于" + item . getTime ( ) + "在" + item . getCompanyName ( ) + "购买容量为" + item . getNumber ( ) + "L的" + item . getType ( ) + ",用作" + item . getUseTo ( ) ) ;
toInsert . add ( createClue ( task . getModelId ( ) , 5 , task . getId ( ) , data ) ) ;
}
}
ClueData data = ClueData . builder ( )
. name ( person . getName ( ) )
. id ( "" )
. idCode ( person . getIdCode ( ) )
. score ( Math . min ( 5 , count ) )
. tags ( List . of ( Default . NO_CAR_OIL_BUY ) )
. personId ( person . getId ( ) )
. sourceData ( "发现该人员属于无车人员,买了" + count + "次散装油" )
. eventTime ( time )
. build ( ) ;
toInsert . add ( DataUtil . createClueData ( task , data ) ) ;
}
}
if ( ! toInsert . isEmpty ( ) ) {
if ( ! toInsert . isEmpty ( ) ) {
log . info ( "增加散装油人员:{}" , toInsert . size ( ) ) ;
log . info ( "增加散装油人员:{}" , toInsert . size ( ) ) ;
modelTaskClueService . saveClues ( toInsert , Default . GOODS_IG ) ;
modelTaskClueService . saveClues ( toInsert , Default . GOODS_IG ) ;
}
}
taskRepository . updateTask ( task . getId ( ) , toInsert . size ( ) , 0 ) ;
List < RiskModelTaskClue > toDelete = new ArrayList < > ( ) ;
Map < String , Byte [ ] > deletePerson = new WeakHashMap < > ( ) ;
Map < String , Byte [ ] > livePerson = new WeakHashMap < > ( ) ;
for ( RiskModelTaskClue entry : oldList ) {
// 删除记录
if ( entry . getEventTime ( ) . isBefore ( currentTime ) ) {
RiskModelTaskClue delete = new RiskModelTaskClue ( ) ;
delete . setId ( entry . getId ( ) ) ;
delete . setDel ( 1 ) ;
toDelete . add ( delete ) ;
deletePerson . put ( entry . getIdCode ( ) , new Byte [ 0 ] ) ;
} else {
livePerson . put ( entry . getIdCode ( ) , new Byte [ 0 ] ) ;
}
}
List < String > idCodes = new ArrayList < > ( ) ;
// 删除标签 从deletePerson遍历,存活中没有,新增没有,说明该标签就没了
for ( String s : deletePerson . keySet ( ) ) {
if ( livePerson . get ( s ) = = null & & buyMap . get ( s ) = = null ) {
idCodes . add ( s ) ;
}
}
if ( ! toDelete . isEmpty ( ) ) {
modelTaskClueService . deleteCluesAndDeleteTag ( toDelete , idCodes , Default . NO_CAR_OIL_BUY ) ;
}
RiskTask updateTask = new RiskTask ( ) ;
updateTask . setId ( task . getId ( ) ) ;
updateTask . setInsertSize ( toInsert . size ( ) ) ;
updateTask . setUpdateSize ( toDelete . size ( ) ) ;
updateTask . setState ( 1 ) ;
updateTask . setEndTime ( LocalDateTime . now ( ) ) ;
taskRepository . updateById ( updateTask ) ;
}
}
@Override
@Override