|
@@ -46,7 +46,7 @@ public class DeviceMonitorManager {
|
|
|
private String userName;
|
|
|
@Value("${sooka.dahua_interface_server.userPwd}")
|
|
|
private String userPwd;
|
|
|
-// private String loginIp = "10.53.0.35";
|
|
|
+ // private String loginIp = "10.53.0.35";
|
|
|
// private String loginPort = "7901";
|
|
|
// private String userName = "system";
|
|
|
// private String userPwd = "Admin123";
|
|
@@ -120,7 +120,7 @@ public class DeviceMonitorManager {
|
|
|
long offlineMinutes = (now.getTime() - onlineTime.getTime()) / (60 * 1000);
|
|
|
if (offlineMinutes >= 5) {
|
|
|
// System.out.println("设备 " + deviceCode + " 已在线超过5分钟,触发报警!");
|
|
|
- triggerAlarm(deviceCode, onlineTime, "设备开机,未执法告警", null);
|
|
|
+ triggerAlarm(deviceCode, onlineTime, "设备开机,未执法告警", null, "0");
|
|
|
stopDeviceMonitoring(deviceCode);
|
|
|
}
|
|
|
}
|
|
@@ -128,17 +128,25 @@ public class DeviceMonitorManager {
|
|
|
/**
|
|
|
* 触发报警
|
|
|
*/
|
|
|
- private void triggerAlarm(String deviceCode, Date onlineTime, String alarmName, String recordId) {
|
|
|
+ private void triggerAlarm(String deviceCode, Date onlineTime, String alarmName, String recordId, String status) {
|
|
|
Map<String, Object> map = centermonitorTCamerachannelMapper.selectChannelCodeByDeviceCode(deviceCode);
|
|
|
- CentermonitorTRecorderAlarm saveVo = new CentermonitorTRecorderAlarm();
|
|
|
- saveVo.setCameraCode(map.get("channelCode").toString());
|
|
|
- saveVo.setCameraName(map.get("channelName").toString());
|
|
|
- saveVo.setAlarmName(alarmName);
|
|
|
- saveVo.setAlarmTime(onlineTime);
|
|
|
- saveVo.setRecordId(recordId);
|
|
|
-// log.info("设备编码:" + deviceCode + "摄像头编码:" + map.get("channelCode").toString() + "时间:" + onlineTime + "执行报警操作.");
|
|
|
- centermonitorTRecorderAlarmMapper.insertCentermonitorTRecorderAlarm(saveVo);
|
|
|
+
|
|
|
+ // 如果同一时间,同一状态,同一设备编码存在告警记录,则不再记录
|
|
|
+ Integer count = centermonitorTRecorderAlarmMapper.selectRecorderAlarm(map.get("channelCode").toString(), onlineTime, status);
|
|
|
+// log.info("设备编码:{}摄像头编码:{}时间:{}状态:{}告警次数:{}", deviceCode, map.get("channelCode").toString(), onlineTime, status, count);
|
|
|
+ if (!(count > 0)) {
|
|
|
+ CentermonitorTRecorderAlarm saveVo = new CentermonitorTRecorderAlarm();
|
|
|
+ saveVo.setCameraCode(map.get("channelCode").toString());
|
|
|
+ saveVo.setCameraName(map.get("channelName").toString());
|
|
|
+ saveVo.setAlarmName(alarmName);
|
|
|
+ saveVo.setAlarmTime(onlineTime);
|
|
|
+ saveVo.setRecordId(recordId);
|
|
|
+ saveVo.setStatus(status);
|
|
|
+// log.info("设备编码:{}摄像头编码:{}时间:{}执行报警操作.", deviceCode, map.get("channelCode").toString(), onlineTime);
|
|
|
+ centermonitorTRecorderAlarmMapper.insertCentermonitorTRecorderAlarm(saveVo);
|
|
|
// System.out.println("设备编码:" + deviceCode + "摄像头编码:" + map.get("channelCode").toString() + "执行报警操作.");
|
|
|
+ }
|
|
|
+// log.info("此设备已经告警,则不再记录");
|
|
|
}
|
|
|
|
|
|
|
|
@@ -184,7 +192,7 @@ public class DeviceMonitorManager {
|
|
|
|
|
|
long elapsedMinutes = (System.currentTimeMillis() - startTime) / (60 * 1000);
|
|
|
if (elapsedMinutes >= 10) {
|
|
|
- triggerAlarm(deviceCode, new Date(), "设备执法完成未关机,告警", recordId);
|
|
|
+ triggerAlarm(deviceCode, new Date(), "设备执法完成未关机,告警", recordId, "1");
|
|
|
// System.out.println("设备 " + deviceCode + " 触发关机按钮,超过5分钟内状态未变化,触发报警");
|
|
|
stopDeviceMonitoring(deviceCode);
|
|
|
}
|