diff --git a/src/main/java/com/biutag/supervision/service/BusinessDepartService.java b/src/main/java/com/biutag/supervision/service/BusinessDepartService.java index 281048d..9bc429d 100644 --- a/src/main/java/com/biutag/supervision/service/BusinessDepartService.java +++ b/src/main/java/com/biutag/supervision/service/BusinessDepartService.java @@ -70,6 +70,16 @@ public class BusinessDepartService extends ServiceImpl { List modelClues = new ArrayList<>(); if (modelId == 2) { // 2号模型:行政、刑事案件受立案不及时问题监督模型 return getModelCluesForModel2(modelClues); + } else if (modelId == 4) { // 4号模型:疑似漏登执法办案场所问题监督模型 + List> maps = modelClueDataMapper.selectByUniqueKeys(sql); + for (Map data : maps) { + ModelClue modelClue = new ModelClue(); + modelClue.setData(JSONObject.toJSONString(maps)); + modelClue.setStatus(0); + modelClue.setInvolveDepartId((String) data.get("involve_depart_id")); + modelClue.setInvolveDepartName((String) data.get("involve_depart_name")); + modelClue.setThingDesc("在" + getNowTime() + "之前的1个月内," + data.get("involve_depart_name") + + "的总警情数为" + data.get("zjjs") + + ",执法场所登记数为" + data.get("zfcsdjs") + + ",每100起警情执法场所登记比例为" + data.get("bl") + + ",低于全市平均值(" + data.get("avg_percentage") + + "%),疑似漏登执法办案场所。"); + modelClues.add(modelClue); + } + return modelClues; } else { modelClues = modelClueDataMapper.selectDataByDynamicSql(sql); } 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), String::valueOf); + List oldUniqueKeys = this.listObjs(new LambdaQueryWrapper().select(ModelClue::getUniqueKey).eq(ModelClue::getStatus, 0).eq(ModelClue::getModelId, modelId), String::valueOf); List changeStatusIds = oldUniqueKeys.stream().filter(item -> !uniqueKeys.contains(item)).toList(); if (!changeStatusIds.isEmpty()) { modelClueMapper.update(null, new LambdaUpdateWrapper().in(ModelClue::getUniqueKey, changeStatusIds).set(ModelClue::getStatus, 1)); @@ -221,6 +238,21 @@ public class ModelClueService extends ServiceImpl { + ",当前案件状态为“" + data.get("AJZTmc") + "”,已经超过" + "30" + "日仍未受理。案件详情:" + thingDesc); + } else if (modelId == 3) { // 3号模型:执法办案场所登记时长超时问题监督模型 + if (data.get("lksj") != null && !data.get("lksj").equals("")) { + modelClue.setThingDesc("姓名" + data.get("xm") + + ",身份证号" + data.get("zjhm") + + ",于" + formatStringDate((String) data.get("djsj")) + + "登记进入" + data.get("csmc") + + ",离开时间为" + formatStringDate((String) data.get("lksj")) + + ",超过了48小时。"); + } else { + modelClue.setThingDesc("姓名" + data.get("xm") + + ",身份证号" + data.get("zjhm") + + ",于" + formatStringDate((String) data.get("djsj")) + + "登记进入" + data.get("csmc") + + ",没有离开时间。"); + } } break; } @@ -245,7 +277,7 @@ public class ModelClueService extends ServiceImpl { modelClue.setData(JSONObject.toJSONString(data)); modelClue.setStatus(0); modelClue.setThingDesc("该" + data.get("jqxzmc") - + "案件 接警单编号为" + data.get("jjdbh") + + "警情接警单编号为" + data.get("jjdbh") + ",报案时间为" + getDateString(data.get("bjsj")) + ",没有匹配到立案时间,受立案不及时。"); break; @@ -269,11 +301,11 @@ public class ModelClueService extends ServiceImpl { modelClue.setData(JSONObject.toJSONString(data)); modelClue.setStatus(0); modelClue.setThingDesc("该" + data.get("jqxzmc") - + "案件 编号为" + data.get("ajbh") - + ",接警单编号为" + data.get("jjdbh") + + "警情接警单编号为" + data.get("jjdbh") + ",报案时间为" + getDateString(data.get("bjsj")) - + ",立案时间为" + data.get("lasj") - + ",立案时间与报案时间超过7天,受立案不及时。"); + + ",案件编号为" + data.get("ajbh") + + ",立案时间为" + formatStringDate((String) data.get("lasj")) + + ",报案时间与立案时间超过7天,受立案不及时。"); break; } } @@ -345,4 +377,16 @@ public class ModelClueService extends ServiceImpl { return originalFieldName; } + public static String formatStringDate(String date) { + DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(date, inputFormatter); + return dateTime.format(outputFormatter); + } + + public static String getNowTime() { + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return now.format(formatter); + } }