@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.core.toolkit.Wrappers ;
import com.biutag.supervisiondata.mapper.dwd.ModelClueDataMapper ;
import com.biutag.supervisiondata.mapper.dwd.ModelClueDataMapper ;
import com.biutag.supervisiondata.mapper.mine.ModelClueMapper ;
import com.biutag.supervisiondata.mapper.mine.ModelClueMapper ;
import com.biutag.supervisiondata.pojo.entity.mine.* ;
import com.biutag.supervisiondata.pojo.entity.mine.* ;
@ -100,10 +101,10 @@ public class ModelClueServiceImpl implements ModelClueService {
List < ModelClue > modelClues = new ArrayList < > ( ) ;
List < ModelClue > modelClues = new ArrayList < > ( ) ;
if ( modelId = = 2 ) { // 2号模型:行政、刑事案件受立案不及时问题监督模型
if ( modelId = = 2 ) { // 2号模型:行政、刑事案件受立案不及时问题监督模型
return getModelCluesForModel2 ( sql , modelClues ) ;
return getModelCluesForModel2 ( sql , modelClues ) ;
} else if ( modelId = = 4 ) { // 4号模型:疑似漏登执法办案场所问题监督模型
// } else if (modelId == 4) { // 4号模型:疑似漏登执法办案场所问题监督模型
return getModelCluesForModel4 ( sql , modelClues ) ;
// return getModelCluesForModel4(sql, modelClues);
} else if ( modelId = = 5 ) { // 5 号模型:重点人员重复报警监督模型
} else if ( modelId = = 7 ) { // 7 号模型:重点人员重复报警监督模型
getModelCluesForModel5 ( sql , modelClues ) ;
getModelCluesForModel7 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else if ( modelId = = 16 ) { // 16号模型:多次取保的异常数据
} else if ( modelId = = 16 ) { // 16号模型:多次取保的异常数据
getModelCluesForModel16 ( sql , modelClues ) ;
getModelCluesForModel16 ( sql , modelClues ) ;
@ -117,16 +118,18 @@ public class ModelClueServiceImpl implements ModelClueService {
} else if ( modelId = = 22 ) { // 22号模型:执法记录仪使用不规范问题
} else if ( modelId = = 22 ) { // 22号模型:执法记录仪使用不规范问题
getModelCluesForModel22 ( sql , modelClues ) ;
getModelCluesForModel22 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else if ( modelId = = 23 ) { // 23号模型:保安员预警
modelClueDataMapper . delete ( Wrappers . < ModelClue > lambdaUpdate ( ) . eq ( ModelClue : : getModelId , 23 ) ) ;
} else if ( modelId = = 25 ) { // 25号模型:重点人员管控人数过多
} else if ( modelId = = 25 ) { // 25号模型:重点人员管控人数过多
getModelCluesForModel25 ( sql , modelClues ) ;
getModelCluesForModel25 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else if ( modelId = = 103 ) { // 103号模型:接处警不及时的异常数据
} else if ( modelId = = 103 ) { // 103号模型:接处警不及时的异常数据
getModelCluesForModel103 ( sql , modelClues ) ;
getModelCluesForModel103 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else if ( modelId = = 104 ) { // 模型 104:大量变更接警性质的预警模型
} else if ( modelId = = 104 ) { // 104号模型 :大量变更接警性质的预警模型
getModelCluesForModel104 ( sql , modelClues ) ;
getModelCluesForModel104 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else if ( modelId = = 105 ) { // 模型 105:近一月同一人同一类型问题出现3次以上的异常数据
} else if ( modelId = = 105 ) { // 105号模型 :近一月同一人同一类型问题出现3次以上的异常数据
getModelCluesForModel105 ( sql , modelClues ) ;
getModelCluesForModel105 ( sql , modelClues ) ;
return modelClues ;
return modelClues ;
} else {
} else {
@ -186,12 +189,12 @@ public class ModelClueServiceImpl implements ModelClueService {
return needsInsertModelClues ;
return needsInsertModelClues ;
}
}
private void getModelCluesForModel5 ( String param , List < ModelClue > modelClues ) {
private void getModelCluesForModel7 ( String param , List < ModelClue > modelClues ) {
// List<Object> jsonStrings = redisTemplate.opsForList().range("call:point", 0, -1);
// List<Object> jsonStrings = redisTemplate.opsForList().range("call:point", 0, -1);
List < RiskTest > jsonStrings = riskTestRepository . list ( ( Wrapper < RiskTest > ) null ) ;
List < RiskTest > jsonStrings = riskTestRepository . list ( ( Wrapper < RiskTest > ) null ) ;
if ( jsonStrings ! = null ) {
if ( jsonStrings ! = null ) {
System . out . println ( "获取到的数据条数:" + jsonStrings . size ( ) ) ;
System . out . println ( "模型7 获取到的数据条数:" + jsonStrings . size ( ) ) ;
try {
try {
for ( RiskTest json : jsonStrings ) {
for ( RiskTest json : jsonStrings ) {
String jsonString = json . getName ( ) ;
String jsonString = json . getName ( ) ;
@ -247,7 +250,7 @@ public class ModelClueServiceImpl implements ModelClueService {
modelClues . add ( newModelClue ) ;
modelClues . add ( newModelClue ) ;
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
log . error ( "模型5 执行失败" , e ) ;
log . error ( "模型7 执行失败" , e ) ;
}
}
} else {
} else {
System . out . println ( "Redis未找到key'call:point'" ) ;
System . out . println ( "Redis未找到key'call:point'" ) ;
@ -561,11 +564,16 @@ public class ModelClueServiceImpl implements ModelClueService {
return ajbh = = null | | ajbh . isEmpty ( ) ? "无案件编号数据" : ajbh ;
return ajbh = = null | | ajbh . isEmpty ( ) ? "无案件编号数据" : ajbh ;
}
}
/ *
private List < ModelClue > getModelCluesForModel4 ( String param , List < ModelClue > modelClues ) {
private List < ModelClue > getModelCluesForModel4 ( String param , List < ModelClue > modelClues ) {
System . out . println ( "模型4开始查询数据库" ) ;
System . out . println ( "模型4开始查询数据库" ) ;
List < String > params = parseSqlForModel2 ( param ) ;
// List<String> params = parseSqlForModel2(param);
String jjdSql = "SELECT gxdwdm AS involve_depart_id, gxdwmc AS involve_depart_name, COUNT(*) AS zjjs FROM dwd_asj_zhtx_jjd WHERE cjsj BETWEEN '" + params . get ( 0 ) + " 00:00:00' AND '" + params . get ( 1 ) + " 00:00:00' GROUP BY gxdwdm, gxdwmc;" ;
// 定时前
String zfqySql = "SELECT csid AS involve_depart_id, COUNT(*) AS zfcsdjs FROM dwd_ry_zfba_zfqywfryb WHERE STR_TO_DATE( djsj, '%Y%m%d%H%i%s' ) BETWEEN '" + params . get ( 0 ) + " 00:00:00' AND '" + params . get ( 1 ) + " 00:00:00' GROUP BY csid;" ;
String jjdSql = "SELECT gxdwdm AS involve_depart_id, gxdwmc AS involve_depart_name, COUNT(*) AS zjjs FROM dwd_asj_zhtx_jjd WHERE cjsj BETWEEN '2024-10-01 00:00:00' AND '2024-11-01 00:00:00' GROUP BY gxdwdm, gxdwmc;" ;
String zfqySql = "SELECT csid AS involve_depart_id, COUNT(*) AS zfcsdjs FROM dwd_ry_zfba_zfqywfryb WHERE STR_TO_DATE( djsj, '%Y%m%d%H%i%s' ) BETWEEN '2024-10-01 00:00:00' AND '2024-10-01 00:00:00' GROUP BY csid;" ;
// 定时任务
// String jjdSql = "SELECT gxdwdm AS involve_depart_id, gxdwmc AS involve_depart_name, COUNT(*) AS zjjs FROM dwd_asj_zhtx_jjd WHERE cjsj >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND cjsj < CURDATE() GROUP BY gxdwdm, gxdwmc;";
// String zfqySql = "SELECT csid AS involve_depart_id, COUNT(*) AS zfcsdjs FROM dwd_ry_zfba_zfqywfryb WHERE STR_TO_DATE( djsj, '%Y%m%d%H%i%s' ) >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND STR_TO_DATE( djsj, '%Y%m%d%H%i%s' ) < CURDATE() GROUP BY csid;";
List < Map < String , Object > > jjdmaps = modelClueDataMapper . selectByUniqueKeys ( jjdSql ) ;
List < Map < String , Object > > jjdmaps = modelClueDataMapper . selectByUniqueKeys ( jjdSql ) ;
List < Map < String , Object > > zfqymaps = modelClueDataMapper . selectByUniqueKeys ( zfqySql ) ;
List < Map < String , Object > > zfqymaps = modelClueDataMapper . selectByUniqueKeys ( zfqySql ) ;
System . out . println ( "模型4查询数据库完毕" ) ;
System . out . println ( "模型4查询数据库完毕" ) ;
@ -666,7 +674,7 @@ public class ModelClueServiceImpl implements ModelClueService {
modelClues . addAll ( jjdModelClues3 ) ;
modelClues . addAll ( jjdModelClues3 ) ;
return modelClues ;
return modelClues ;
}
}
* /
private void getModelCluesForModel16 ( String param , List < ModelClue > modelClues ) {
private void getModelCluesForModel16 ( String param , List < ModelClue > modelClues ) {
System . out . println ( "模型16开始查询数据库" ) ;
System . out . println ( "模型16开始查询数据库" ) ;
List < String > params = parseSqlForModel2 ( param ) ;
List < String > params = parseSqlForModel2 ( param ) ;
@ -794,7 +802,8 @@ public class ModelClueServiceImpl implements ModelClueService {
private void getModelCluesForModel20 ( String param , List < ModelClue > modelClues ) {
private void getModelCluesForModel20 ( String param , List < ModelClue > modelClues ) {
System . out . println ( "模型20开始查询数据库" ) ;
System . out . println ( "模型20开始查询数据库" ) ;
String sql = "select * from dwd_qb_nbgl_lxqtscsygxjl where STR_TO_DATE(tjrq, '%Y-%m-%d') = CURDATE() - INTERVAL " + param + " DAY;" ;
// 定时任务
String sql = "select * from dwd_qb_nbgl_lxqtscsygxjl where STR_TO_DATE(tjrq, '%Y-%m-%d') = (CURDATE() - INTERVAL 1 DAY);" ;
List < Map < String , Object > > sqlList = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
List < Map < String , Object > > sqlList = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型20查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
System . out . println ( "模型20查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
if ( sqlList . isEmpty ( ) ) {
if ( sqlList . isEmpty ( ) ) {
@ -821,8 +830,10 @@ public class ModelClueServiceImpl implements ModelClueService {
}
}
}
}
private void getModelCluesForModel22 ( String sql , List < ModelClue > modelClues ) {
private void getModelCluesForModel22 ( String param , List < ModelClue > modelClues ) {
System . out . println ( "模型22开始查询数据库" ) ;
System . out . println ( "模型22开始查询数据库" ) ;
// 定时任务
String sql = "select * from \"JSDZ_4GDB\".\"v_anomaly_statistics\" where \"CREATETIME\" = " + getSpeDayString ( 1 ) ;
List < Map < String , Object > > sqlList = modelClueDataDMRepository . selectByUniqueKeys ( sql ) ;
List < Map < String , Object > > sqlList = modelClueDataDMRepository . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型22查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
System . out . println ( "模型22查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
if ( sqlList . isEmpty ( ) ) {
if ( sqlList . isEmpty ( ) ) {
@ -900,6 +911,7 @@ public class ModelClueServiceImpl implements ModelClueService {
}
}
private void getModelCluesForModel25 ( String sql , List < ModelClue > modelClues ) {
private void getModelCluesForModel25 ( String sql , List < ModelClue > modelClues ) {
modelClueDataMapper . delete ( Wrappers . < ModelClue > lambdaUpdate ( ) . eq ( ModelClue : : getModelId , 25 ) ) ;
System . out . println ( "模型25开始查询数据库" ) ;
System . out . println ( "模型25开始查询数据库" ) ;
List < Map < String , Object > > sqlList = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
List < Map < String , Object > > sqlList = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型25查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
System . out . println ( "模型25查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
@ -1005,8 +1017,9 @@ public class ModelClueServiceImpl implements ModelClueService {
private void getModelCluesForModel104 ( String param , List < ModelClue > modelClues ) {
private void getModelCluesForModel104 ( String param , List < ModelClue > modelClues ) {
System . out . println ( "模型104开始查询数据库" ) ;
System . out . println ( "模型104开始查询数据库" ) ;
List < String > params = parseSqlForModel2 ( param ) ;
// List<String> params = parseSqlForModel2(param);
String sql = "select a.gxdwdm, a.gxdwmc, a.num anum, b.num bnum from ((SELECT gxdwdm, gxdwmc, COUNT(*) AS num from dwd_asj_zhtx_jjd where bjsj BETWEEN '" + params . get ( 0 ) + " 00:00:00' AND '" + params . get ( 1 ) + " 00:00:00' AND (ysjqxzdm LIKE '01%' OR ysjqxzdm LIKE'02%' OR ysjqxzdm LIKE'06%') AND (bjxldm NOT LIKE '01%' AND bjxldm NOT LIKE '02%' AND bjxldm NOT LIKE '06%') and bjfsdm = '0101' GROUP BY gxdwdm, gxdwmc) a join (SELECT gxdwdm, gxdwmc, COUNT(*) num from dwd_asj_zhtx_jjd where bjsj BETWEEN '" + params . get ( 0 ) + " 00:00:00' AND '" + params . get ( 1 ) + " 00:00:00' AND (ysjqxzdm LIKE '01%' OR ysjqxzdm LIKE'02%' OR ysjqxzdm LIKE'06%') and bjfsdm = '0101' GROUP BY gxdwdm, gxdwmc) b on a.gxdwdm = b.gxdwdm);" ;
// 定时任务
String sql = "select a.gxdwdm, a.gxdwmc, a.num anum, b.num bnum from ((SELECT gxdwdm, gxdwmc, COUNT(*) AS num from dwd_asj_zhtx_jjd where (bjsj >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND bjsj < CURDATE()) AND (ysjqxzdm LIKE '01%' OR ysjqxzdm LIKE'02%' OR ysjqxzdm LIKE'06%') AND (bjxldm NOT LIKE '01%' AND bjxldm NOT LIKE '02%' AND bjxldm NOT LIKE '06%') and bjfsdm = '0101' GROUP BY gxdwdm, gxdwmc) a join (SELECT gxdwdm, gxdwmc, COUNT(*) num from dwd_asj_zhtx_jjd where (bjsj >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND bjsj < CURDATE()) AND (ysjqxzdm LIKE '01%' OR ysjqxzdm LIKE'02%' OR ysjqxzdm LIKE'06%') and bjfsdm = '0101' GROUP BY gxdwdm, gxdwmc) b on a.gxdwdm = b.gxdwdm);" ;
List < Map < String , Object > > jjdmaps = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
List < Map < String , Object > > jjdmaps = modelClueDataMapper . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型104查询数据库完毕,结果数量:" + jjdmaps . size ( ) ) ;
System . out . println ( "模型104查询数据库完毕,结果数量:" + jjdmaps . size ( ) ) ;
if ( jjdmaps . isEmpty ( ) ) {
if ( jjdmaps . isEmpty ( ) ) {
@ -1068,7 +1081,7 @@ public class ModelClueServiceImpl implements ModelClueService {
}
}
newModelClue . setDistributionState ( "0" ) ;
newModelClue . setDistributionState ( "0" ) ;
newModelClue . setThingDesc ( "发现" + newModelClue . getInvolveDepartName ( )
newModelClue . setThingDesc ( "发现" + newModelClue . getInvolveDepartName ( )
+ "在" + getDateString ( params . get ( 0 ) ) + "到" + getDateString ( params . get ( 1 ) )
+ "在" + getDateString ( getSpeDayString ( 3 0) ) + "到" + getDateString ( getTodayString ( ) )
+ "之间共有" + departAllNumMap . get ( department ) + "个警情,变更了" + departNumMap . get ( department )
+ "之间共有" + departAllNumMap . get ( department ) + "个警情,变更了" + departNumMap . get ( department )
+ "个警情的结警性质,超过了该单位总警情的70%,存在大量变更接警性质的异常情况。" ) ;
+ "个警情的结警性质,超过了该单位总警情的70%,存在大量变更接警性质的异常情况。" ) ;
newModelClue . setData ( newModelClue . getThingDesc ( ) ) ;
newModelClue . setData ( newModelClue . getThingDesc ( ) ) ;
@ -1077,6 +1090,7 @@ public class ModelClueServiceImpl implements ModelClueService {
}
}
private void getModelCluesForModel105 ( String sql , List < ModelClue > modelClues ) {
private void getModelCluesForModel105 ( String sql , List < ModelClue > modelClues ) {
modelClueDataMapper . delete ( Wrappers . < ModelClue > lambdaUpdate ( ) . eq ( ModelClue : : getModelId , 105 ) ) ;
System . out . println ( "模型105开始查询数据库" ) ;
System . out . println ( "模型105开始查询数据库" ) ;
List < Map < String , Object > > sqlList = modelClueMapper . selectByUniqueKeys ( sql ) ;
List < Map < String , Object > > sqlList = modelClueMapper . selectByUniqueKeys ( sql ) ;
System . out . println ( "模型105查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
System . out . println ( "模型105查询数据库完毕,结果数量:" + sqlList . size ( ) ) ;
@ -1240,6 +1254,19 @@ public class ModelClueServiceImpl implements ModelClueService {
}
}
}
}
private static String getSpeDayString ( int days ) {
LocalDate today = LocalDate . now ( ) ;
LocalDate result = today . minusDays ( days ) ;
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( "yyyy年MM月dd日" ) ;
return result . format ( formatter ) ;
}
private static String getTodayString ( ) {
LocalDate today = LocalDate . now ( ) ;
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( "yyyy-MM-dd" ) ;
return today . format ( formatter ) ;
}
private static String getDateMinuteString ( Object param ) {
private static String getDateMinuteString ( Object param ) {
if ( param ! = null ) {
if ( param ! = null ) {
String time = null ;
String time = null ;