From e946ac3348233a1608c994c8131b2015c9beb474 Mon Sep 17 00:00:00 2001 From: sjh Date: Fri, 25 Oct 2024 15:02:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=9E=8B3=E3=80=814?= =?UTF-8?q?=EF=BC=9A=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9Bbug2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/service/ModelClueService.java | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/biutag/supervision/service/ModelClueService.java b/src/main/java/com/biutag/supervision/service/ModelClueService.java index 18d7c19..9ff170f 100644 --- a/src/main/java/com/biutag/supervision/service/ModelClueService.java +++ b/src/main/java/com/biutag/supervision/service/ModelClueService.java @@ -210,7 +210,7 @@ public class ModelClueService extends ServiceImpl { } else { System.out.println("测试" + modelId + "开始查询数据库"); modelClues = modelClueDataMapper.selectDataByDynamicSql(sql); - System.out.println("测试" + modelId + "查询数据库完毕"); + System.out.println("测试" + modelId + "查询数据库完毕,数量为:" + modelClues.size()); } List uniqueKeys = modelClues.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList(); List oldUniqueKeys = this.listObjs(new LambdaQueryWrapper().select(ModelClue::getUniqueKey).eq(ModelClue::getStatus, 0).eq(ModelClue::getModelId, modelId), String::valueOf); @@ -268,20 +268,24 @@ public class ModelClueService extends ServiceImpl { private List getModelCluesForModel2(List modelClues, String param) { List modelClues1 = new ArrayList<>(); List 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 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> allData = modelClueDataMapper.selectByUniqueKeys(newSql); + System.out.println("测试2查询数据库newSql记录条数:" + allData.size()); for (ModelClue modelClue : modelClues1) { for (Map 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 { modelClues.addAll(modelClues1); } List 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 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> allData2 = modelClueDataMapper.selectByUniqueKeys(newSql2); + System.out.println("测试2查询数据库newSql2记录条数:" + allData2.size()); for (ModelClue modelClue : modelClues2) { for (Map 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 { .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 { result.add(formattedDate2); return result; } + + private static String summarizeAttribute(Map 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; + } }