Browse Source

新增103号模型:接处警速度超过30分钟的异常数据

main
sjh 1 year ago
parent
commit
6640417f13
  1. 46
      src/main/java/com/biutag/supervision/service/ModelClueService.java

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

@ -236,6 +236,9 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
} 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号模型:接处警速度超过30分钟的异常数据
getModelCluesForModel103(sql, modelClues);
return modelClues;
} else { } else {
System.out.println("模型" + modelId + "开始查询数据库"); System.out.println("模型" + modelId + "开始查询数据库");
modelClues = modelClueDataMapper.selectDataByDynamicSql(sql); 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> uniqueKeys = modelClues.stream().map(ModelClue::getUniqueKey).filter(k -> k != null && !k.isEmpty()).toList();
List<String> oldUniqueKeys = new ArrayList<>(); 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); 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(); List<String> changeStatusIds = oldUniqueKeys.stream().filter(item -> !uniqueKeys.contains(item)).toList();
if (!changeStatusIds.isEmpty()) { 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 fkrbh = (String) data.get("fkrbh");
String fkrxm = (String) data.get("fkrxm"); String fkrxm = (String) data.get("fkrxm");
if (fkrbh != null && !fkrbh.isEmpty()) { 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) { private void mergeModelClues(List<ModelClue> modelClues2, List<ModelClue> modelClues1 , int no) {
for (ModelClue modelClue2 : modelClues2) { for (ModelClue modelClue2 : modelClues2) {
Iterator<ModelClue> iterator1 = modelClues1.iterator(); Iterator<ModelClue> iterator1 = modelClues1.iterator();
@ -1261,7 +1301,7 @@ public class ModelClueService extends ServiceImpl<ModelClueMapper, ModelClue> {
tableName = tableMatcher.group(1); tableName = tableMatcher.group(1);
} }
String originalFieldName = getKeyFieldName(originalSql); String originalFieldName = getKeyFieldName(originalSql);
// 接警单关联反馈单警员 // 接警单关联反馈单警员
if (modelId == 24 || modelId == 27 || modelId == 28 || modelId == 29 || modelId == 30) { 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(",")) + ");"; 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(",")) + ");";
} }

Loading…
Cancel
Save