diff --git a/src/main/java/com/biutag/supervision/service/ModelClueService.java b/src/main/java/com/biutag/supervision/service/ModelClueService.java index 418628f..85dd12b 100644 --- a/src/main/java/com/biutag/supervision/service/ModelClueService.java +++ b/src/main/java/com/biutag/supervision/service/ModelClueService.java @@ -236,6 +236,9 @@ public class ModelClueService extends ServiceImpl { } 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 { List uniqueKeys = modelClues.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList(); List 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().select(ModelClue::getUniqueKey).ne(ModelClue::getDistributionState, "2").eq(ModelClue::getModelId, modelId), String::valueOf); List changeStatusIds = oldUniqueKeys.stream().filter(item -> !uniqueKeys.contains(item)).toList(); if (!changeStatusIds.isEmpty()) { @@ -409,7 +412,7 @@ public class ModelClueService extends ServiceImpl { } } // 反馈单 - 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 { } } + private void getModelCluesForModel103(String sql, List modelClues) { + System.out.println("模型103开始查询数据库"); + List> sqlList = modelClueDataMapper.selectByUniqueKeys(sql); + System.out.println("模型103查询数据库完毕,结果数量:" + sqlList.size()); + if (sqlList.isEmpty()) { + return; + } + for (Map 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> allData = modelClueDataMapper.selectByUniqueKeys(newSql); + System.out.println("模型103完成再次查询数据库"); + if (allData.isEmpty() || allData.get(0) == null || allData.get(0).get("jjdbh") == null) { + continue; + } + Map 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().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 modelClues2, List modelClues1 , int no) { for (ModelClue modelClue2 : modelClues2) { Iterator iterator1 = modelClues1.iterator(); @@ -1261,7 +1301,7 @@ public class ModelClueService extends ServiceImpl { 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(",")) + ");"; }