From 51c0be3888a6fcc5cc65aa9dc73dff88f5128823 Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Thu, 2 Jul 2026 12:56:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E5=8F=91=E7=94=9F=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B9=9F=E8=A6=81=E6=8F=92=E5=85=A5=E4=B8=80=E6=9D=A1?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=B0=E5=A4=84=E7=90=86=E5=8E=86=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sender/dao/DashboardAlertDao.java | 55 ++++++++++++------- .../datacenter/sender/dao/DeviceDao.java | 2 + .../sender/entitiy/DeviceEntity.java | 2 + .../sender/service/CsdjService.java | 1 + .../datacenter/sender/service/F10Service.java | 1 + .../service/impl/DataProcessServiceImpl.java | 4 +- 6 files changed, 42 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java b/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java index 364fa87..9825e05 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java +++ b/src/main/java/com/techsor/datacenter/sender/dao/DashboardAlertDao.java @@ -184,22 +184,22 @@ public class DashboardAlertDao { return false; } - public void insertAlertHistory(DynamodbEntity entity) { - if (tryMergeAlert(entity.getDeviceId())) { - return; - } - - String sql = "INSERT INTO alert_history (" + - "device_id, receive_ts, retain_alert, block_flag " + - ") VALUES (?, ?, ?, ?)"; - - jdbcTemplate.update(sql, - entity.getDeviceId(), - entity.getReceive_ts(), - entity.getRetainAlert(), - entity.getAlertBlock() - ); - } +// public void insertAlertHistory(DynamodbEntity entity) { +// if (tryMergeAlert(entity.getDeviceId())) { +// return; +// } +// +// String sql = "INSERT INTO alert_history (" + +// "device_id, receive_ts, retain_alert, block_flag " + +// ") VALUES (?, ?, ?, ?)"; +// +// jdbcTemplate.update(sql, +// entity.getDeviceId(), +// entity.getReceive_ts(), +// entity.getRetainAlert(), +// entity.getAlertBlock() +// ); +// } public Long insertAlertHistory(DynamodbEntity entity, int sourceType) { @@ -208,8 +208,8 @@ public class DashboardAlertDao { } String sql = "INSERT INTO alert_history (" + - "device_id, receive_ts, source_type, block_flag " + - ") VALUES (?, ?, ?, ?)"; + "device_id, receive_ts, retain_alert, source_type, block_flag " + + ") VALUES (?, ?, ?, ?, ?)"; KeyHolder keyHolder = new GeneratedKeyHolder(); @@ -217,13 +217,26 @@ public class DashboardAlertDao { PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, entity.getDeviceId()); ps.setLong(2, entity.getReceive_ts()); - ps.setInt(3, sourceType); - ps.setLong(4, entity.getAlertBlock()); + ps.setLong(3, entity.getRetainAlert()); + ps.setInt(4, sourceType); + ps.setLong(5, entity.getAlertBlock()); return ps; }, keyHolder); // 获取主键ID - return keyHolder.getKey() != null ? keyHolder.getKey().longValue() : null; + Long alertHistoryId = keyHolder.getKey() != null ? keyHolder.getKey().longValue() : null; + + // 20260702需求,告警发生的时候,这里也要记录一条告警发报记录 + String insertHandleSql = "INSERT INTO alert_handle_history (" + + "alert_history_id, device_id, handle_at" + + ") VALUES (?, ?, ?)"; + jdbcTemplate.update(insertHandleSql, + alertHistoryId, + entity.getDeviceId(), + System.currentTimeMillis() + ); + + return alertHistoryId; } public void updateLatestAlertToAutoRecovered(DynamodbEntity entity) { diff --git a/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java b/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java index 926c039..7da21f2 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java +++ b/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java @@ -161,6 +161,7 @@ public class DeviceDao { + " dinfo.type_id,\r\n" + " bspace.space_id,\r\n" + " bbuilding.building_id,\r\n" + + " bbuilding.retain_alert retainAlert,\r\n" + " dinfo.device_name,\r\n" + " dinfo.project_id,\r\n" + " bfloor.floor_id,\r\n" @@ -191,6 +192,7 @@ public class DeviceDao { item.setAssetId(rs.getLong("asset_id")); item.setBigClassId(rs.getLong("class_big_id")); item.setCategoryId(rs.getLong("categoryId")); + item.setRetainAlert(rs.getInt("retainAlert")); return item; }); return dataList; diff --git a/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java b/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java index 642be98..9d274b9 100644 --- a/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java +++ b/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java @@ -73,5 +73,7 @@ public class DeviceEntity implements Serializable { private Long bigClassId; private Long categoryId; + + private Integer retainAlert; } diff --git a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java index e311a1d..9a2f559 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java +++ b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java @@ -139,6 +139,7 @@ public class CsdjService { DynamodbEntity entity = new DynamodbEntity(); entity.setDeviceId(terminalId); + entity.setRetainAlert(deviceEntity.getRetainAlert()); if (isAlarm) { dataProcessService.setAlertBlock(deviceInfoVO); diff --git a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java b/src/main/java/com/techsor/datacenter/sender/service/F10Service.java index ec9d612..f6fc667 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java +++ b/src/main/java/com/techsor/datacenter/sender/service/F10Service.java @@ -213,6 +213,7 @@ public class F10Service { if (!isExpired){ DynamodbEntity entity = new DynamodbEntity(); entity.setDeviceId(f10JournalLog.getDeviceId()); + entity.setRetainAlert(deviceEntity.get(0).getRetainAlert()); if ("1".equals(f10JournalLog.getInstructionFlag())){ dataProcessService.setAlertBlock(deviceInfoVO); diff --git a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java index 39ddb34..c020cc2 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java +++ b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java @@ -984,12 +984,12 @@ public class DataProcessServiceImpl implements IDataProcessService { String status = baseTransDataEntity.getStatus(); if (null == redisOldStatusObj) { if ("alert".equals(status)) { - dashboardAlertDao.insertAlertHistory(baseTransDataEntity); + dashboardAlertDao.insertAlertHistory(baseTransDataEntity, 1); } } else { String redisOldStatus = (String) redisOldStatusObj; if ("alert".equals(status) && !"alert".equals(redisOldStatus)) { - dashboardAlertDao.insertAlertHistory(baseTransDataEntity); + dashboardAlertDao.insertAlertHistory(baseTransDataEntity, 1); } else if (!"alert".equals(status) && "alert".equals(redisOldStatus)) { if (0 == baseTransDataEntity.getRetainAlert()) { dashboardAlertDao.updateLatestAlertToAutoRecovered(baseTransDataEntity);