diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java index 1f6dc83..944370f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java @@ -3,8 +3,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.AlarmAIDTO; @@ -32,6 +34,9 @@ private IAlarmRecordService alarmRecordService; @Autowired + private AbstractDictService dictService; + + @Autowired private IBusMonipoiInfoService iBusMonipoiInfoService; @Autowired @@ -72,13 +77,14 @@ msg.put("monitorId", alarmRecord.getMonitorId()); msg.put("alarmId", alarmRecord.getId()); msg.put("alarmTime", alarmRecord.getAlarmTime()); + msg.put("alarmType", alarmRecord.getAlarmType()); + msg.put("alarmTypeName", dictService.getDictNameByCode(DictEnum.ALARM_TYPE,alarmRecord.getAlarmType())); msg.put("alarmPhoto", alarmRecord.getPhoto()); webSocket.sendAllMessage(msg.toJSONString()); logger.info("*******sendWebSocketAiRecord,monitorid=" + alarmRecord.getId() + ",time:" + new Date()); return true; } catch (Exception e) { - e.printStackTrace(); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - return false; } } diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java index 1f6dc83..944370f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java @@ -3,8 +3,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.AlarmAIDTO; @@ -32,6 +34,9 @@ private IAlarmRecordService alarmRecordService; @Autowired + private AbstractDictService dictService; + + @Autowired private IBusMonipoiInfoService iBusMonipoiInfoService; @Autowired @@ -72,13 +77,14 @@ msg.put("monitorId", alarmRecord.getMonitorId()); msg.put("alarmId", alarmRecord.getId()); msg.put("alarmTime", alarmRecord.getAlarmTime()); + msg.put("alarmType", alarmRecord.getAlarmType()); + msg.put("alarmTypeName", dictService.getDictNameByCode(DictEnum.ALARM_TYPE,alarmRecord.getAlarmType())); msg.put("alarmPhoto", alarmRecord.getPhoto()); webSocket.sendAllMessage(msg.toJSONString()); logger.info("*******sendWebSocketAiRecord,monitorid=" + alarmRecord.getId() + ",time:" + new Date()); return true; } catch (Exception e) { - e.printStackTrace(); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - return false; } } 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 3082500..b27830a 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 @@ -126,6 +126,7 @@ //若在线,更新设备离线 if (deviceStatus) { if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); deviceStatus = false; } } @@ -147,6 +148,7 @@ //若离线, 更新成在线 if(!deviceStatus){ if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); deviceStatus = true; } } diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java index 1f6dc83..944370f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java @@ -3,8 +3,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.AlarmAIDTO; @@ -32,6 +34,9 @@ private IAlarmRecordService alarmRecordService; @Autowired + private AbstractDictService dictService; + + @Autowired private IBusMonipoiInfoService iBusMonipoiInfoService; @Autowired @@ -72,13 +77,14 @@ msg.put("monitorId", alarmRecord.getMonitorId()); msg.put("alarmId", alarmRecord.getId()); msg.put("alarmTime", alarmRecord.getAlarmTime()); + msg.put("alarmType", alarmRecord.getAlarmType()); + msg.put("alarmTypeName", dictService.getDictNameByCode(DictEnum.ALARM_TYPE,alarmRecord.getAlarmType())); msg.put("alarmPhoto", alarmRecord.getPhoto()); webSocket.sendAllMessage(msg.toJSONString()); logger.info("*******sendWebSocketAiRecord,monitorid=" + alarmRecord.getId() + ",time:" + new Date()); return true; } catch (Exception e) { - e.printStackTrace(); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - return false; } } 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 3082500..b27830a 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 @@ -126,6 +126,7 @@ //若在线,更新设备离线 if (deviceStatus) { if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); deviceStatus = false; } } @@ -147,6 +148,7 @@ //若离线, 更新成在线 if(!deviceStatus){ if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); deviceStatus = true; } } 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 f8f320e..22777d5 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 @@ -91,6 +91,7 @@ latitude, station_name AS stationName, location, + DEVICE_IP as deviceIp, device_status AS deviceStatus FROM ( diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java index 1f6dc83..944370f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java @@ -3,8 +3,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.AlarmAIDTO; @@ -32,6 +34,9 @@ private IAlarmRecordService alarmRecordService; @Autowired + private AbstractDictService dictService; + + @Autowired private IBusMonipoiInfoService iBusMonipoiInfoService; @Autowired @@ -72,13 +77,14 @@ msg.put("monitorId", alarmRecord.getMonitorId()); msg.put("alarmId", alarmRecord.getId()); msg.put("alarmTime", alarmRecord.getAlarmTime()); + msg.put("alarmType", alarmRecord.getAlarmType()); + msg.put("alarmTypeName", dictService.getDictNameByCode(DictEnum.ALARM_TYPE,alarmRecord.getAlarmType())); msg.put("alarmPhoto", alarmRecord.getPhoto()); webSocket.sendAllMessage(msg.toJSONString()); logger.info("*******sendWebSocketAiRecord,monitorid=" + alarmRecord.getId() + ",time:" + new Date()); return true; } catch (Exception e) { - e.printStackTrace(); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - return false; } } 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 3082500..b27830a 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 @@ -126,6 +126,7 @@ //若在线,更新设备离线 if (deviceStatus) { if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); deviceStatus = false; } } @@ -147,6 +148,7 @@ //若离线, 更新成在线 if(!deviceStatus){ if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); deviceStatus = true; } } 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 f8f320e..22777d5 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 @@ -91,6 +91,7 @@ latitude, station_name AS stationName, location, + DEVICE_IP as deviceIp, device_status AS deviceStatus FROM ( diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java index 0f9babb..09c85ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java @@ -15,6 +15,10 @@ */ private Long monitorId; /** + * 设备IP + */ + private String deviceIp; + /** * 设备名称 */ private String monitorName; diff --git a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java index 9232625..68e08e9 100644 --- a/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/config/WebSocketConfig.java @@ -1,6 +1,7 @@ package com.casic.missiles.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; // tomcat启动无需配置 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 ea42aad..34fb08a 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 @@ -438,6 +438,7 @@ * 全局配置设备 */ @RequestMapping(value = "/config") + @ResponseBody public Object globalSet(@RequestBody @Valid GlobalParamsDTO globalParamsDTO) { Assert.isFalse(Objects.isNull(globalParamsDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java index ba5bce3..8bdd6a1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceptionController.java @@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import javax.annotation.Resource; import javax.validation.Valid; @Controller diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java index d59b50d..61262eb 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IHCNetService.java @@ -57,4 +57,6 @@ Long getUserIdByIp(String deviceIp); void globalSet(GlobalParamsDTO globalParamsDTO); + + void sendDeviceStatusData(String deviceIp, String deviceStatus); } 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 efd0514..af08323 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 @@ -49,7 +49,7 @@ private static final Integer delayTime = 7200; //特殊预置点号数组 - private static final Integer[] presets = {65, 67, 68, 69, 70, 72, 73, 87, 88}; + private static final Integer[] presets = {65,67,68,69,70,72,73,82,87,88,90,92,114,121,122,129}; public Long getTimestampCollcect() { return timestampCollcect; @@ -477,6 +477,8 @@ return restart(userId); case "9C": return softReset(serialHandle); + case "65136": + return clearPoints(serialHandle); default: break; } @@ -484,6 +486,33 @@ } + /** + * 宇视通设备一键清除预置点 + * 调用65预置位,再调用136预置位 + */ + public boolean clearPoints(Long serialHandle) { + + boolean flag = false; + try { + //先停止巡航 + if (sendStopCommand(serialHandle)) { + Thread.sleep(300); + //启动复位操作 + if (sendPreset(serialHandle, 65)) { + Thread.sleep(300); + //启动复位操作 + flag = sendPreset(serialHandle, 136); + //自启动预留30秒 + Thread.sleep(30 * 1000); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + flag = false; + } + return flag; + } + @Override public boolean interruptStart(String deviceIp) { @@ -1303,27 +1332,6 @@ handleGasData(deviceInfo, String.valueOf(chars)); } else { int flag = ires[3]; -// if (flag == 0x93) { -// // 云台节点地址配置add 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device config 93-->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x97) { -// // 云台复位配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device reset 97--->").concat(String.valueOf(ires[4]))); -// } else if (flag == 0x94) { -// // 云台风险点角度配置 应答 -// logger.info(deviceInfo.getDeviceIp().concat(" get device angle 94--->").concat(String.valueOf(ires[4]))); -// } -// else { -// logger.info(deviceInfo.getDeviceIp().concat(" get device msg--->").concat(Arrays.toString(ires))); -// } -// if (flag == 0x59) { -// // 水平角度 -// handleHorizontalAngle(deviceInfo, ires); -// } -// if (flag == 0x5b) { -// // 垂直角度 -// handleVerticalAngle(deviceInfo, ires); -// } } } } @@ -1341,6 +1349,16 @@ webSocket.sendAllMessage(msg.toJSONString()); } + @Override + public void sendDeviceStatusData(String deviceIp, String deviceStatus) { + JSONObject msg = new JSONObject(); + msg.put("deviceIp", deviceIp); + msg.put("time", DateUtil.formatDateTime(new Date())); + msg.put("type", deviceStatus); + webSocket.sendAllMessage(msg.toJSONString()); + } + + /** * 处理垂直角度返回数据 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java index 1f6dc83..944370f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ReceptionServiceImpl.java @@ -3,8 +3,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.enums.StatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.system.dto.AlarmAIDTO; @@ -32,6 +34,9 @@ private IAlarmRecordService alarmRecordService; @Autowired + private AbstractDictService dictService; + + @Autowired private IBusMonipoiInfoService iBusMonipoiInfoService; @Autowired @@ -72,13 +77,14 @@ msg.put("monitorId", alarmRecord.getMonitorId()); msg.put("alarmId", alarmRecord.getId()); msg.put("alarmTime", alarmRecord.getAlarmTime()); + msg.put("alarmType", alarmRecord.getAlarmType()); + msg.put("alarmTypeName", dictService.getDictNameByCode(DictEnum.ALARM_TYPE,alarmRecord.getAlarmType())); msg.put("alarmPhoto", alarmRecord.getPhoto()); webSocket.sendAllMessage(msg.toJSONString()); logger.info("*******sendWebSocketAiRecord,monitorid=" + alarmRecord.getId() + ",time:" + new Date()); return true; } catch (Exception e) { - e.printStackTrace(); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - return false; } } 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 3082500..b27830a 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 @@ -126,6 +126,7 @@ //若在线,更新设备离线 if (deviceStatus) { if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_OFFLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"offLine"); deviceStatus = false; } } @@ -147,6 +148,7 @@ //若离线, 更新成在线 if(!deviceStatus){ if (monipoiInfoService.updateStatus(this.deviceIp, StatusEnum.STATUS_ONLINE)) { + ihcNetService.sendDeviceStatusData(this.deviceIp,"onLine"); deviceStatus = true; } } 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 f8f320e..22777d5 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 @@ -91,6 +91,7 @@ latitude, station_name AS stationName, location, + DEVICE_IP as deviceIp, device_status AS deviceStatus FROM ( diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java index 0f9babb..09c85ec 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/dto/monitor/MonitorOverviewMap.java @@ -15,6 +15,10 @@ */ private Long monitorId; /** + * 设备IP + */ + private String deviceIp; + /** * 设备名称 */ private String monitorName; diff --git a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java index 9c36f65..4aff47e 100644 --- a/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java +++ b/casic-station/src/main/java/com/casic/missiles/modular/system/service/impl/BusMonipoiInfoServiceImpl.java @@ -161,8 +161,8 @@ @Override public BusMonipoiInfo selectByNvr(String nvrIp, String channel) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("nvrIp", nvrIp); - queryWrapper.eq("nvrChannel", channel); + queryWrapper.eq("NVR_IP", nvrIp); + queryWrapper.eq("NVR_CHANNEL", channel); return this.getOne(queryWrapper); }