@ -236,6 +236,9 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
} else if ( modelId = = 25 ) { // 25号模型:重点人员管控人数过多
getModelCluesForModel25 ( sql , modelClues ) ;
return modelClues ;
} else if ( modelId = = 103 ) { // 103号模型:接处警速度超过30分钟的异常数据
getModelCluesForModel103 ( sql , modelClues ) ;
return modelClues ;
} else {
System . out . println ( "模型" + modelId + "开始查询数据库" ) ;
modelClues = modelClueDataMapper . selectDataByDynamicSql ( sql ) ;
@ -244,7 +247,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
List < String > uniqueKeys = modelClues . stream ( ) . map ( ModelClue : : getUniqueKey ) . filter ( k - > k ! = null & & ! k . isEmpty ( ) ) . toList ( ) ;
List < String > oldUniqueKeys = new ArrayList < > ( ) ;
// 无需更新状态的模型
if ( modelId ! = 19 & & modelId ! = 26 & & modelId ! = 27 & & modelId ! = 28 & & modelId ! = 30 & & modelId ! = 100 ) {
if ( modelId ! = 19 & & modelId ! = 26 & & modelId ! = 27 & & modelId ! = 28 & & modelId ! = 30 & & modelId ! = 100 & & modelId ! = 103 ) {
oldUniqueKeys = this . listObjs ( new LambdaQueryWrapper < ModelClue > ( ) . select ( ModelClue : : getUniqueKey ) . ne ( ModelClue : : getDistributionState , "2" ) . eq ( ModelClue : : getModelId , modelId ) , String : : valueOf ) ;
List < String > changeStatusIds = oldUniqueKeys . stream ( ) . filter ( item - > ! uniqueKeys . contains ( item ) ) . toList ( ) ;
if ( ! changeStatusIds . isEmpty ( ) ) {
@ -409,7 +412,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
}
}
// 反馈单
if ( modelId = = 24 | | modelId = = 27 | | modelId = = 28 | | modelId = = 29 | | modelId = = 30 ) {
if ( modelId = = 24 | | modelId = = 27 | | modelId = = 28 | | modelId = = 29 | | modelId = = 30 | | modelId = = 103 ) {
String fkrbh = ( String ) data . get ( "fkrbh" ) ;
String fkrxm = ( String ) data . get ( "fkrxm" ) ;
if ( fkrbh ! = null & & ! fkrbh . isEmpty ( ) ) {
@ -990,6 +993,43 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
}
}
private void getModelCluesForModel103 ( String sql , List < ModelClue > modelClues ) {
System . out . println ( "模型103开始查询数据库" ) ;
List < Map < String , Object > > sqlList = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型103查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
if ( sqlList . isEmpty ( ) ) {
return ;
}
for ( Map < String , Object > map : sqlList ) {
String newSql = "SELECT a.*, b.fkrbh, b.fkrxm FROM dwd_asj_zhtx_jqsjxx a left join dwd_asj_zhtx_fkd b on a.jjdbh = b.jjdbh " + "WHERE a.jjdbh = '" + map . get ( "jjdbh" ) + "';" ;
System . out . println ( "模型103开始再次查询数据库" ) ;
List < Map < String , Object > > allData = modelClueDataMapper . selectByUniqueKeys ( newSql ) ;
System . out . println ( "模型103完成再次查询数据库" ) ;
if ( allData . isEmpty ( ) | | allData . get ( 0 ) = = null | | allData . get ( 0 ) . get ( "jjdbh" ) = = null ) {
continue ;
}
Map < String , Object > newMap = allData . get ( 0 ) ;
ModelClue newModelClue = new ModelClue ( ) ;
newModelClue . setUniqueKey ( ( String ) map . get ( "jjdbh" ) ) ;
newModelClue . setNegativeIdEx ( ( String ) map . get ( "jjdbh" ) ) ;
newModelClue . setInvolveDepartName ( ( String ) newMap . get ( "ssdwmc" ) ) ;
SupExternalDepart supExternalDepart = supExternalDepartMapper . selectOne ( new LambdaQueryWrapper < SupExternalDepart > ( ) . eq ( SupExternalDepart : : getExternalId , newMap . get ( "ssdwdm" ) ) . last ( "LIMIT 1" ) ) ;
if ( supExternalDepart ! = null ) {
if ( supExternalDepart . getInternalId ( ) ! = null ) {
newModelClue . setInvolveDepartId ( supExternalDepart . getInternalId ( ) ) ;
}
}
newModelClue . setData ( JSONObject . toJSONString ( newMap ) ) ;
newModelClue . setDistributionState ( "0" ) ;
setPerson ( 103 , newModelClue , newMap ) ;
newModelClue . setThingDesc (
"发现警情(接警单编号:" + map . get ( "jjdbh" ) + "),警情签收时间为" + getDateMinuteString ( map . get ( "start_time" ) )
+ ",现场到达拍照签到时间为" + getDateMinuteString ( map . get ( "end_time" ) )
+ ",现场签到时间晚于签收时间30分钟以上,存在接处警不及时的问题。" ) ;
modelClues . add ( newModelClue ) ;
}
}
private void mergeModelClues ( List < ModelClue > modelClues2 , List < ModelClue > modelClues1 , int no ) {
for ( ModelClue modelClue2 : modelClues2 ) {
Iterator < ModelClue > iterator1 = modelClues1 . iterator ( ) ;
@ -1261,7 +1301,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
tableName = tableMatcher . group ( 1 ) ;
}
String originalFieldName = getKeyFieldName ( originalSql ) ;
// 接警单关联反馈单警员
// 接警单号 关联反馈单警员
if ( modelId = = 24 | | modelId = = 27 | | modelId = = 28 | | modelId = = 29 | | modelId = = 30 ) {
return "SELECT a.*, b.fkrbh, b.fkrxm FROM " + tableName + " a left join dwd_asj_zhtx_fkd b on a.jjdbh = b.jjdbh " + "WHERE a." + originalFieldName + " IN " + "(" + uniqueKeys . stream ( ) . map ( k - > "'" + k + "'" ) . collect ( Collectors . joining ( "," ) ) + ");" ;
}