Browse Source

修改模型3、4:修复一些bug2

main
sjh 1 year ago
parent
commit
e946ac3348
  1. 34
      src/main/java/com/biutag/supervision/service/ModelClueService.java

34
src/main/java/com/biutag/supervision/service/ModelClueService.java

@ -210,7 +210,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
} else {
System.out.println("测试" + modelId + "开始查询数据库");
modelClues = modelClueDataMapper.selectDataByDynamicSql(sql);
System.out.println("测试" + modelId + "查询数据库完毕");
System.out.println("测试" + modelId + "查询数据库完毕,数量为:" + modelClues.size());
}
List<String> uniqueKeys = modelClues.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList();
List<String> oldUniqueKeys = this.listObjs(new LambdaQueryWrapper<ModelClue>().select(ModelClue::getUniqueKey).eq(ModelClue::getStatus, 0).eq(ModelClue::getModelId, modelId), String::valueOf);
@ -268,20 +268,24 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
private List<ModelClue> getModelCluesForModel2(List<ModelClue> modelClues, String param) {
List<ModelClue> modelClues1 = new ArrayList<>();
List<String> params = parseSqlForModel2(param);
String preSql = "SELECT a.jjdbh AS uniqueKey, a.jjdbh AS negative_id, a.gxdwmc AS involve_depart_name, a.gxdwdm AS involve_depart_id FROM dwd_asj_zhtx_jjd a WHERE a.jqxzdm NOT LIKE '11%' AND a.jqxzdm NOT LIKE '99%' AND a.bjnr LIKE '%";
String preSql = "SELECT a.jjdbh AS uniqueKey, a.jjdbh AS negative_id, a.gxdwmc AS involve_depart_name, a.gxdwdm AS involve_depart_id FROM dwd_asj_zhtx_jjd a WHERE (a.jqxzdm LIKE '01%' OR a.jqxzdm LIKE '02%') AND a.bjnr LIKE '%";
String postSql = "%' AND NOT EXISTS (SELECT 1 FROM dwd_asj_sjjhygx_jjcjxxb b WHERE b.BARLXDH = a.bjdh) AND a.bjsj BETWEEN '" + params.get(0) + " 00:00:00' AND '" + params.get(1) + " 00:00:00';";
genarateModelCluesForModel2(preSql, postSql, modelClues1);
List<String> uniqueKeys = modelClues1.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList();
if (!uniqueKeys.isEmpty()) {
String newSql = "SELECT a.* FROM dwd_asj_zhtx_jjd a LEFT JOIN dwd_asj_sjjhygx_jjcjxxb b ON b.BARLXDH = a.bjdh WHERE a.jjdbh IN " + "(" + uniqueKeys.stream().map(k -> "'" + k + "'").collect(Collectors.joining(",")) + ");";
System.out.println("测试2开始查询数据库 newSql");
List<Map<String, Object>> allData = modelClueDataMapper.selectByUniqueKeys(newSql);
System.out.println("测试2查询数据库newSql记录条数:" + allData.size());
for (ModelClue modelClue : modelClues1) {
for (Map<String, Object> data : allData) {
String keyColumn = (String) data.get("jjdbh");
if (Objects.equals(keyColumn, modelClue.getUniqueKey())) {
modelClue.setData(JSONObject.toJSONString(data));
modelClue.setStatus(0);
modelClue.setThingDesc("该" + data.get("jqxzmc")
String jqxz = "";
jqxz = summarizeAttribute(data, jqxz);
modelClue.setThingDesc("该" + jqxz
+ "警情接警单编号为" + data.get("jjdbh")
+ ",报案时间为" + getDateString(data.get("bjsj"))
+ ",没有匹配到立案时间,受立案不及时。");
@ -292,20 +296,24 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
modelClues.addAll(modelClues1);
}
List<ModelClue> modelClues2 = new ArrayList<>();
String preSql2 = "SELECT a.jjdbh AS uniqueKey, a.jjdbh AS negative_id, a.gxdwmc AS involve_depart_name, a.gxdwdm AS involve_depart_id FROM dwd_asj_zhtx_jjd a WHERE a.jqxzdm NOT LIKE '11%' AND a.jqxzdm NOT LIKE '99%' AND a.bjnr LIKE '%";
String preSql2 = "SELECT a.jjdbh AS uniqueKey, a.jjdbh AS negative_id, a.gxdwmc AS involve_depart_name, a.gxdwdm AS involve_depart_id FROM dwd_asj_zhtx_jjd a WHERE (a.jqxzdm LIKE '01%' OR a.jqxzdm LIKE '02%') AND a.bjnr LIKE '%";
String postSql2 = "%' AND EXISTS (SELECT 1 FROM dwd_asj_sjjhygx_jjcjxxb b WHERE b.lasj IS NOT NULL AND b.basj < DATE_SUB(STR_TO_DATE(b.lasj, '%Y%m%d%H%i%s') , INTERVAL 7 DAY) AND b.BARLXDH = a.bjdh AND STR_TO_DATE(b.lasj, '%Y%m%d%H%i%s') > a.bjsj) AND a.bjsj BETWEEN '" + params.get(0) + " 00:00:00' AND '" + params.get(1) + " 00:00:00' ORDER BY a.bjsj desc LIMIT 1;";
genarateModelCluesForModel2(preSql2, postSql2, modelClues2);
List<String> uniqueKeys2 = modelClues2.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList();
if (!uniqueKeys2.isEmpty()) {
String newSql2 = "SELECT a.*, b.ajbh, b.lasj FROM dwd_asj_zhtx_jjd a LEFT JOIN dwd_asj_sjjhygx_jjcjxxb b ON b.BARLXDH = a.bjdh WHERE a.jjdbh IN " + "(" + uniqueKeys2.stream().map(k -> "'" + k + "'").collect(Collectors.joining(",")) + ");";
System.out.println("测试2开始查询数据库 newSql2");
List<Map<String, Object>> allData2 = modelClueDataMapper.selectByUniqueKeys(newSql2);
System.out.println("测试2查询数据库newSql2记录条数:" + allData2.size());
for (ModelClue modelClue : modelClues2) {
for (Map<String, Object> data : allData2) {
String keyColumn = (String) data.get("jjdbh");
if (Objects.equals(keyColumn, modelClue.getUniqueKey())) {
modelClue.setData(JSONObject.toJSONString(data));
modelClue.setStatus(0);
modelClue.setThingDesc("该" + data.get("jqxzmc")
String jqxz = "";
jqxz = summarizeAttribute(data, jqxz);
modelClue.setThingDesc("该" + jqxz
+ "警情接警单编号为" + data.get("jjdbh")
+ ",报案时间为" + getDateString(data.get("bjsj"))
+ ",案件编号为" + data.get("ajbh")
@ -349,7 +357,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
.flatMap(List::stream)
.collect(Collectors.toMap(ModelClue::getUniqueKey, data -> data, (existing, replacement) -> existing))
.values());
System.out.println("测试2查询数据库完毕");
System.out.println("测试2查询数据库完毕,数量为:" + modelClues.size());
}
private static String getDateString(Object param) {
@ -441,4 +449,18 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
result.add(formattedDate2);
return result;
}
private static String summarizeAttribute(Map<String, Object> data, String jqxz) {
try {
String substring = String.valueOf(data.get("jqxzdm")).substring(0, 2);
if (substring.equals("01")) {
jqxz = "刑事";
} else if (substring.equals("02")) {
jqxz = "行政";
}
} catch (Exception e) {
System.out.println("警情性质转换失败" + e);
}
return jqxz;
}
}

Loading…
Cancel
Save