diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 625dea2..0b3cd0e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -707,14 +707,27 @@ return res; } + //宇视通 默认5条巡航线 + private static Integer[] lineArr = {1, 2, 3, 4, 5}; + private boolean cruiseAdd(String cruiseName, String deviceIp, Integer cruiseValue) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); Integer lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), cruiseName); if (ObjectUtil.isNotEmpty(lineNum)) { throw new BusinessException(BusinessExceptionEnum.CRUISE_NAME_DUPLICATE); } else { - lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); - lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { + List lines = obserpoiInfoService.selectByMonitorLinesByCruiseName(baseInfo.getMonitorId(), ""); + for (int i = 0; i < lineArr.length; i++) { + if (!lines.contains(lineArr[i])) { + lineNum = lineArr[i]; + break; + } + } + } else { + lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); + lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + } } return obserpoiInfoService.addLine(baseInfo.getMonitorId(), lineNum, cruiseName); } @@ -761,8 +774,10 @@ } }); } - return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue) && - busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + //若有巡航任务,先删除任务 + busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); + } catch (Exception e) { throw new BusinessException(BusinessExceptionEnum.CRUISE_DELETE_ERROR); } @@ -1528,6 +1543,8 @@ StatusEnum.ALARM_ON, monitorBaseInfo.getLineNum()); alarmRecordService.save(alarmRecord); + //更新设备状态为报警 + monipoiInfoService.updateStatus(monitorBaseInfo.getMonitorId(), StatusEnum.STATUS_ALARM); //推送前端 JSONObject msg = new JSONObject(); msg.put("type", "gasAlarm"); @@ -1542,6 +1559,11 @@ logger.info("*******sendwebSocketAlarmRecord,monitorid=" + dataGas.getMonitorId() + ",time:" + new Date()); } else { + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } + // 自动消警(同一角度) int count = alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); if (count > 0) { diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 625dea2..0b3cd0e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -707,14 +707,27 @@ return res; } + //宇视通 默认5条巡航线 + private static Integer[] lineArr = {1, 2, 3, 4, 5}; + private boolean cruiseAdd(String cruiseName, String deviceIp, Integer cruiseValue) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); Integer lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), cruiseName); if (ObjectUtil.isNotEmpty(lineNum)) { throw new BusinessException(BusinessExceptionEnum.CRUISE_NAME_DUPLICATE); } else { - lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); - lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { + List lines = obserpoiInfoService.selectByMonitorLinesByCruiseName(baseInfo.getMonitorId(), ""); + for (int i = 0; i < lineArr.length; i++) { + if (!lines.contains(lineArr[i])) { + lineNum = lineArr[i]; + break; + } + } + } else { + lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); + lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + } } return obserpoiInfoService.addLine(baseInfo.getMonitorId(), lineNum, cruiseName); } @@ -761,8 +774,10 @@ } }); } - return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue) && - busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + //若有巡航任务,先删除任务 + busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); + } catch (Exception e) { throw new BusinessException(BusinessExceptionEnum.CRUISE_DELETE_ERROR); } @@ -1528,6 +1543,8 @@ StatusEnum.ALARM_ON, monitorBaseInfo.getLineNum()); alarmRecordService.save(alarmRecord); + //更新设备状态为报警 + monipoiInfoService.updateStatus(monitorBaseInfo.getMonitorId(), StatusEnum.STATUS_ALARM); //推送前端 JSONObject msg = new JSONObject(); msg.put("type", "gasAlarm"); @@ -1542,6 +1559,11 @@ logger.info("*******sendwebSocketAlarmRecord,monitorid=" + dataGas.getMonitorId() + ",time:" + new Date()); } else { + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } + // 自动消警(同一角度) int count = alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); if (count > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index 79a753b..972119f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -99,8 +99,7 @@ } private Map map = new HashMap<>(); - //默认离线 - boolean deviceStatus = false; + private void sendGasCommand() { DeviceInfo deviceInfo = DeviceCommom.selectByDeviceIp(this.deviceIp); Long serial = deviceInfo.getSerialHandle(); @@ -126,14 +125,14 @@ if (isOpen == 1) { if (map.get(this.deviceIp) != null) { map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 50L == 0) { + if (map.get(this.deviceIp) % 300L == 0) { //若在线,更新设备离线 - if (deviceStatus) { - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); - deviceStatus = false; - } + + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); +// deviceStatus = false; } + logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -147,15 +146,14 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } - else { + } else { //若离线, 更新成在线 - if(!deviceStatus){ - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); - deviceStatus = true; - } - } +// if (!deviceStatus) { +// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { +// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); +// deviceStatus = true; +// } +// } } } @@ -163,21 +161,21 @@ public void run() { System.out.println("Thread-" + deviceIp + " -> start... " + new Date()); // 登录,登录失败就一直尝试登录 - while (true) { - boolean register = registerAndStartSerial(); - if (register) { - break; - } - } - // 登录成功后,按每秒一次查询甲烷数据 - while (true) { - try { - sendGasCommand(); - Thread.sleep(collectInterval); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } +// while (true) { +// boolean register = registerAndStartSerial(); +// if (register) { +// break; +// } +// } +// // 登录成功后,按每秒一次查询甲烷数据 +// while (true) { +// try { +// sendGasCommand(); +// Thread.sleep(collectInterval); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } } } diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 625dea2..0b3cd0e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -707,14 +707,27 @@ return res; } + //宇视通 默认5条巡航线 + private static Integer[] lineArr = {1, 2, 3, 4, 5}; + private boolean cruiseAdd(String cruiseName, String deviceIp, Integer cruiseValue) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); Integer lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), cruiseName); if (ObjectUtil.isNotEmpty(lineNum)) { throw new BusinessException(BusinessExceptionEnum.CRUISE_NAME_DUPLICATE); } else { - lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); - lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { + List lines = obserpoiInfoService.selectByMonitorLinesByCruiseName(baseInfo.getMonitorId(), ""); + for (int i = 0; i < lineArr.length; i++) { + if (!lines.contains(lineArr[i])) { + lineNum = lineArr[i]; + break; + } + } + } else { + lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); + lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + } } return obserpoiInfoService.addLine(baseInfo.getMonitorId(), lineNum, cruiseName); } @@ -761,8 +774,10 @@ } }); } - return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue) && - busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + //若有巡航任务,先删除任务 + busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); + } catch (Exception e) { throw new BusinessException(BusinessExceptionEnum.CRUISE_DELETE_ERROR); } @@ -1528,6 +1543,8 @@ StatusEnum.ALARM_ON, monitorBaseInfo.getLineNum()); alarmRecordService.save(alarmRecord); + //更新设备状态为报警 + monipoiInfoService.updateStatus(monitorBaseInfo.getMonitorId(), StatusEnum.STATUS_ALARM); //推送前端 JSONObject msg = new JSONObject(); msg.put("type", "gasAlarm"); @@ -1542,6 +1559,11 @@ logger.info("*******sendwebSocketAlarmRecord,monitorid=" + dataGas.getMonitorId() + ",time:" + new Date()); } else { + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } + // 自动消警(同一角度) int count = alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); if (count > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index 79a753b..972119f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -99,8 +99,7 @@ } private Map map = new HashMap<>(); - //默认离线 - boolean deviceStatus = false; + private void sendGasCommand() { DeviceInfo deviceInfo = DeviceCommom.selectByDeviceIp(this.deviceIp); Long serial = deviceInfo.getSerialHandle(); @@ -126,14 +125,14 @@ if (isOpen == 1) { if (map.get(this.deviceIp) != null) { map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 50L == 0) { + if (map.get(this.deviceIp) % 300L == 0) { //若在线,更新设备离线 - if (deviceStatus) { - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); - deviceStatus = false; - } + + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); +// deviceStatus = false; } + logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -147,15 +146,14 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } - else { + } else { //若离线, 更新成在线 - if(!deviceStatus){ - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); - deviceStatus = true; - } - } +// if (!deviceStatus) { +// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { +// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); +// deviceStatus = true; +// } +// } } } @@ -163,21 +161,21 @@ public void run() { System.out.println("Thread-" + deviceIp + " -> start... " + new Date()); // 登录,登录失败就一直尝试登录 - while (true) { - boolean register = registerAndStartSerial(); - if (register) { - break; - } - } - // 登录成功后,按每秒一次查询甲烷数据 - while (true) { - try { - sendGasCommand(); - Thread.sleep(collectInterval); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } +// while (true) { +// boolean register = registerAndStartSerial(); +// if (register) { +// break; +// } +// } +// // 登录成功后,按每秒一次查询甲烷数据 +// while (true) { +// try { +// sendGasCommand(); +// Thread.sleep(collectInterval); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java index f106b73..7851ce6 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java @@ -29,6 +29,9 @@ Integer selectByMonitorByCruiseName(@Param("monitorId") Long monitorId, @Param("cruiseName") String cruiseName); + List selectByMonitorLinesByCruiseName(@Param("monitorId") Long monitorId, + @Param("cruiseName") String cruiseName); + List selectNoPage(@Param("obserpoiRequest") BusObserpoiRequest obserpoiRequest); List pageList(@Param("page") Page page, diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 625dea2..0b3cd0e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -707,14 +707,27 @@ return res; } + //宇视通 默认5条巡航线 + private static Integer[] lineArr = {1, 2, 3, 4, 5}; + private boolean cruiseAdd(String cruiseName, String deviceIp, Integer cruiseValue) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); Integer lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), cruiseName); if (ObjectUtil.isNotEmpty(lineNum)) { throw new BusinessException(BusinessExceptionEnum.CRUISE_NAME_DUPLICATE); } else { - lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); - lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { + List lines = obserpoiInfoService.selectByMonitorLinesByCruiseName(baseInfo.getMonitorId(), ""); + for (int i = 0; i < lineArr.length; i++) { + if (!lines.contains(lineArr[i])) { + lineNum = lineArr[i]; + break; + } + } + } else { + lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); + lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + } } return obserpoiInfoService.addLine(baseInfo.getMonitorId(), lineNum, cruiseName); } @@ -761,8 +774,10 @@ } }); } - return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue) && - busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + //若有巡航任务,先删除任务 + busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); + } catch (Exception e) { throw new BusinessException(BusinessExceptionEnum.CRUISE_DELETE_ERROR); } @@ -1528,6 +1543,8 @@ StatusEnum.ALARM_ON, monitorBaseInfo.getLineNum()); alarmRecordService.save(alarmRecord); + //更新设备状态为报警 + monipoiInfoService.updateStatus(monitorBaseInfo.getMonitorId(), StatusEnum.STATUS_ALARM); //推送前端 JSONObject msg = new JSONObject(); msg.put("type", "gasAlarm"); @@ -1542,6 +1559,11 @@ logger.info("*******sendwebSocketAlarmRecord,monitorid=" + dataGas.getMonitorId() + ",time:" + new Date()); } else { + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } + // 自动消警(同一角度) int count = alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); if (count > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index 79a753b..972119f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -99,8 +99,7 @@ } private Map map = new HashMap<>(); - //默认离线 - boolean deviceStatus = false; + private void sendGasCommand() { DeviceInfo deviceInfo = DeviceCommom.selectByDeviceIp(this.deviceIp); Long serial = deviceInfo.getSerialHandle(); @@ -126,14 +125,14 @@ if (isOpen == 1) { if (map.get(this.deviceIp) != null) { map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 50L == 0) { + if (map.get(this.deviceIp) % 300L == 0) { //若在线,更新设备离线 - if (deviceStatus) { - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); - deviceStatus = false; - } + + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); +// deviceStatus = false; } + logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -147,15 +146,14 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } - else { + } else { //若离线, 更新成在线 - if(!deviceStatus){ - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); - deviceStatus = true; - } - } +// if (!deviceStatus) { +// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { +// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); +// deviceStatus = true; +// } +// } } } @@ -163,21 +161,21 @@ public void run() { System.out.println("Thread-" + deviceIp + " -> start... " + new Date()); // 登录,登录失败就一直尝试登录 - while (true) { - boolean register = registerAndStartSerial(); - if (register) { - break; - } - } - // 登录成功后,按每秒一次查询甲烷数据 - while (true) { - try { - sendGasCommand(); - Thread.sleep(collectInterval); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } +// while (true) { +// boolean register = registerAndStartSerial(); +// if (register) { +// break; +// } +// } +// // 登录成功后,按每秒一次查询甲烷数据 +// while (true) { +// try { +// sendGasCommand(); +// Thread.sleep(collectInterval); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java index f106b73..7851ce6 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java @@ -29,6 +29,9 @@ Integer selectByMonitorByCruiseName(@Param("monitorId") Long monitorId, @Param("cruiseName") String cruiseName); + List selectByMonitorLinesByCruiseName(@Param("monitorId") Long monitorId, + @Param("cruiseName") String cruiseName); + List selectNoPage(@Param("obserpoiRequest") BusObserpoiRequest obserpoiRequest); List pageList(@Param("page") Page page, diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index de44bbe..66037aa 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -95,7 +95,8 @@ a.ID as monitorId, a.MONITOR_NAME as monitorName, a.DEVICE_CODE as devcode, - a.TYPE as type + a.TYPE as type, + a.DEVICE_IP as deviceIp FROM bus_monipoi_info a LEFT JOIN bus_station_info b on a.STATION_ID = b.ID WHERE a.VALID = '0' diff --git a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index f6dbcb6..88ee08a 100644 --- a/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -11,6 +11,7 @@ HANDLE_FAILED(500, "操作失败"), DEVICE_BOUND_FAILED(500, "设备绑定,场站删除失败"), ADD_FAILED(501, "新增失败!"), + NUMBER_FAILED(502, "不是正整数!"), MONITOR_VAILD_FAILED(2099, "云台登录地址重复"), DEVICE_REGISTER_FAILED(2500, "设备注册失败"), RUN_TASK_FAILED(2501, "此段时间有任务正在执行"), diff --git a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java index 57c0198..1d17d71 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/system/model/AlarmRecord.java @@ -69,7 +69,7 @@ * 报警数值 */ @TableField("ALARM_VALUE") - @ExcelProperty(value = "报警数值", order = 5) + @ExcelProperty(value = "告警值", order = 5) private Double alarmValue; /** * 报警阈值 @@ -80,19 +80,19 @@ * 报警方位 */ @TableField("ALARM_DIRECTION") - @ExcelProperty(value = "报警方位", order = 8) + @ExcelProperty(value = "水平角", order = 8) private Double alarmDirection; /** * 报警俯仰角 */ @TableField("ALARM_PITCH") - @ExcelProperty(value = "报警俯仰角", order = 9) + @ExcelProperty(value = "俯仰角", order = 9) private Double alarmPitch; /** * 报警时间 */ @TableField("ALARM_TIME") - @ExcelProperty(value = "报警时间", order = 10) + @ExcelProperty(value = "告警时间", order = 10) private Date alarmTime; /** * 报警图片 @@ -128,7 +128,7 @@ * 预置点号 */ @TableField("SERIAL_NUM") - @ExcelProperty(value = "预置点名称", order = 3) + @ExcelProperty(value = "巡航点位", order = 3) private Integer serialNum; /** * 时间 @@ -139,7 +139,7 @@ private Date ts; @TableField(exist = false) - @ExcelProperty(value = "监控点位名称", order = 1) + @ExcelProperty(value = "设备名称", order = 1) private String monitorName; @TableField(exist = false) @@ -147,15 +147,15 @@ private String stationName; @TableField(exist = false) - @ExcelProperty(value = "报警类型", order = 6) + @ExcelProperty(value = "告警类型", order = 6) private String alarmTypeName; @TableField(exist = false) - @ExcelProperty(value = "报警状态", order = 7) + @ExcelProperty(value = "告警状态", order = 7) private String alarmStatusName; @TableField(exist = false) - @ExcelProperty(value = "巡航路线名称", order = 2) + @ExcelProperty(value = "巡航路线", order = 2) private String lineName; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java index d2a6cf9..729c35c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/HCNetController.java @@ -208,10 +208,10 @@ @ResponseBody public Object cruiseRoute(String deviceIp, String command, Integer cruiseValue, String cruiseName) { - if (ihcNetService.cruiseRoute( command, cruiseValue, cruiseName, deviceIp)) { + if (ihcNetService.cruiseRoute(command, cruiseValue, cruiseName, deviceIp)) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航线操作失败"); } } @@ -234,7 +234,7 @@ if (res) { return ResponseData.success(); } else { - return ResponseData.error("设置失败"); + return ResponseData.error("巡航操作失败"); } } @@ -273,7 +273,7 @@ public Object toPosition(String deviceIp, String horizontalAngle, String verticalAngle) { Long userId = getUserIdByIp(deviceIp); if (ObjectUtil.isEmpty(userId) || userId < 0) { - return ResponseData.error("设备注册失败"); + return ResponseData.error("连接设备失败"); } BusMonipoiInfo monipoiInfo = monipoiInfoService.selectByDeviceIp(deviceIp); boolean res; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java index 625dea2..0b3cd0e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/HCNetServiceImpl.java @@ -707,14 +707,27 @@ return res; } + //宇视通 默认5条巡航线 + private static Integer[] lineArr = {1, 2, 3, 4, 5}; + private boolean cruiseAdd(String cruiseName, String deviceIp, Integer cruiseValue) { MonitorBaseInfo baseInfo = monipoiInfoService.selectInfoByDeviceIp(deviceIp); Integer lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), cruiseName); if (ObjectUtil.isNotEmpty(lineNum)) { throw new BusinessException(BusinessExceptionEnum.CRUISE_NAME_DUPLICATE); } else { - lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); - lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + if (DeviceTypeEnum.XST_TYPE.getCode().equals(baseInfo.getType())) { + List lines = obserpoiInfoService.selectByMonitorLinesByCruiseName(baseInfo.getMonitorId(), ""); + for (int i = 0; i < lineArr.length; i++) { + if (!lines.contains(lineArr[i])) { + lineNum = lineArr[i]; + break; + } + } + } else { + lineNum = obserpoiInfoService.selectByMonitorByCruiseName(baseInfo.getMonitorId(), ""); + lineNum = ObjectUtil.isNotEmpty(lineNum) ? lineNum + 1 : 1; + } } return obserpoiInfoService.addLine(baseInfo.getMonitorId(), lineNum, cruiseName); } @@ -761,8 +774,10 @@ } }); } - return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue) && - busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + //若有巡航任务,先删除任务 + busPlanService.deleteTaskByMonitorIdAndLine(busMonipoiInfo.getId(), cruiseValue); + return obserpoiInfoService.deleteCruise(deviceIp, cruiseName, cruiseValue); + } catch (Exception e) { throw new BusinessException(BusinessExceptionEnum.CRUISE_DELETE_ERROR); } @@ -1528,6 +1543,8 @@ StatusEnum.ALARM_ON, monitorBaseInfo.getLineNum()); alarmRecordService.save(alarmRecord); + //更新设备状态为报警 + monipoiInfoService.updateStatus(monitorBaseInfo.getMonitorId(), StatusEnum.STATUS_ALARM); //推送前端 JSONObject msg = new JSONObject(); msg.put("type", "gasAlarm"); @@ -1542,6 +1559,11 @@ logger.info("*******sendwebSocketAlarmRecord,monitorid=" + dataGas.getMonitorId() + ",time:" + new Date()); } else { + //更新和推送设备在线 + if (monipoiInfoService.updateStatus(monitorBaseInfo.getDeviceIp(), StatusEnum.STATUS_ONLINE)) { + this.sendDeviceStatusData(monitorBaseInfo.getDeviceIp(), "onLine"); + } + // 自动消警(同一角度) int count = alarmRecordService.clearByMonitor(dataGas.getMonitorId(), Double.valueOf(dataGas.getDirection()), Double.valueOf(dataGas.getPitch())); if (count > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java index 79a753b..972119f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/task/CollectGasDataTask.java @@ -99,8 +99,7 @@ } private Map map = new HashMap<>(); - //默认离线 - boolean deviceStatus = false; + private void sendGasCommand() { DeviceInfo deviceInfo = DeviceCommom.selectByDeviceIp(this.deviceIp); Long serial = deviceInfo.getSerialHandle(); @@ -126,14 +125,14 @@ if (isOpen == 1) { if (map.get(this.deviceIp) != null) { map.put(this.deviceIp, map.get(this.deviceIp) + 1); - if (map.get(this.deviceIp) % 50L == 0) { + if (map.get(this.deviceIp) % 300L == 0) { //若在线,更新设备离线 - if (deviceStatus) { - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); - deviceStatus = false; - } + + if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp, "offLine"); +// deviceStatus = false; } + logger.error(deviceIp.concat("door is opening! ********************* ")); if (ihcNetService.interruptStart(this.deviceIp)) { map.remove(this.deviceIp); @@ -147,15 +146,14 @@ } } logger.error(deviceIp.concat("fetch gas data error, error code: ").concat(String.valueOf(ihcNetService.getLastError()))); - } - else { + } else { //若离线, 更新成在线 - if(!deviceStatus){ - if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { - ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); - deviceStatus = true; - } - } +// if (!deviceStatus) { +// if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { +// ihcNetService.sendDeviceStatusData(this.deviceIp, "onLine"); +// deviceStatus = true; +// } +// } } } @@ -163,21 +161,21 @@ public void run() { System.out.println("Thread-" + deviceIp + " -> start... " + new Date()); // 登录,登录失败就一直尝试登录 - while (true) { - boolean register = registerAndStartSerial(); - if (register) { - break; - } - } - // 登录成功后,按每秒一次查询甲烷数据 - while (true) { - try { - sendGasCommand(); - Thread.sleep(collectInterval); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } +// while (true) { +// boolean register = registerAndStartSerial(); +// if (register) { +// break; +// } +// } +// // 登录成功后,按每秒一次查询甲烷数据 +// while (true) { +// try { +// sendGasCommand(); +// Thread.sleep(collectInterval); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } } } diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java index f106b73..7851ce6 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/BusObserpoiInfoMapper.java @@ -29,6 +29,9 @@ Integer selectByMonitorByCruiseName(@Param("monitorId") Long monitorId, @Param("cruiseName") String cruiseName); + List selectByMonitorLinesByCruiseName(@Param("monitorId") Long monitorId, + @Param("cruiseName") String cruiseName); + List selectNoPage(@Param("obserpoiRequest") BusObserpoiRequest obserpoiRequest); List pageList(@Param("page") Page page, diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml index de44bbe..66037aa 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusMonipoiInfoMapper.xml @@ -95,7 +95,8 @@ a.ID as monitorId, a.MONITOR_NAME as monitorName, a.DEVICE_CODE as devcode, - a.TYPE as type + a.TYPE as type, + a.DEVICE_IP as deviceIp FROM bus_monipoi_info a LEFT JOIN bus_station_info b on a.STATION_ID = b.ID WHERE a.VALID = '0' diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusObserpoiInfoMapper.xml b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusObserpoiInfoMapper.xml index 85bba52..3027559 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusObserpoiInfoMapper.xml +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusObserpoiInfoMapper.xml @@ -45,6 +45,16 @@ + + + + + + + + + + + + + + + + + +