Browse Source

fix:指令接口和socket推送方法更改

master
guoapeng 6 months ago
parent
commit
12ee2b9838
  1. 3
      src/main/java/com/qyft/gd/model/vo/WebsocketResult.java
  2. 31
      src/main/java/com/qyft/gd/service/CMDService.java
  3. 9
      src/main/java/com/qyft/gd/service/WebSocketService.java

3
src/main/java/com/qyft/gd/model/vo/WebsocketResult.java

@ -1,5 +1,6 @@
package com.qyft.gd.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@ -7,9 +8,11 @@ public class WebsocketResult {
/**
* 推送类型(指令 cmd,报警 warn ,状态 status)
*/
@Schema(description = "推送类型(指令 cmd,报警 warn ,状态 status)")
private String type;
/**
* 执行结果
*/
@Schema(description = "推送数据")
private Object data;
}

31
src/main/java/com/qyft/gd/service/CMDService.java

@ -22,7 +22,6 @@ public class CMDService {
DeviceService deviceService;
DeviceStateService deviceStateService;
Map<String, Function<CMDForm, Boolean>> commandMap;
CMDForm form = new CMDForm();
@Autowired
public CMDService(DeviceService deviceService) {
@ -164,28 +163,24 @@ public class CMDService {
}
public boolean executeCommand(CMDForm cmdForm) {
form = cmdForm;
String commandName = cmdForm.getCommand();
Function<CMDForm, Boolean> command = commandMap.get(commandName);
if (command == null) {
return false;
}
WebsocketResult websocketResult = new WebsocketResult();
websocketResult.setType("warn");
ExecutionResult executionResult = new ExecutionResult();
executionResult.setCommandId(cmdForm.getCommandId());
executionResult.setCommandName(cmdForm.getCommand());
boolean result =command.apply(cmdForm);
if(result) {
executionResult.setStatus(CMDResultCode.SUCCESS.getCode());
executionResult.setMessage(CMDResultCode.SUCCESS.getMsg());
}else {
executionResult.setStatus(CMDResultCode.FAILURE.getCode());
executionResult.setMessage(CMDResultCode.FAILURE.getMsg());
}
websocketResult.setData(executionResult);
// 发送消息给客户端
WebSocketServer.sendMessageToClients(JSONUtil.toJsonStr(websocketResult));
command.apply(cmdForm);
return true;
// ExecutionResult executionResult = new ExecutionResult();
// executionResult.setCommandId(cmdForm.getCommandId());
// executionResult.setCommandName(cmdForm.getCommand());
// boolean result =command.apply(cmdForm);
// if(result) {
// executionResult.setStatus(CMDResultCode.SUCCESS.getCode());
// executionResult.setMessage(CMDResultCode.SUCCESS.getMsg());
// }else {
// executionResult.setStatus(CMDResultCode.FAILURE.getCode());
// executionResult.setMessage(CMDResultCode.FAILURE.getMsg());
// }
}
}

9
src/main/java/com/qyft/gd/service/warnService.java → src/main/java/com/qyft/gd/service/WebSocketService.java

@ -2,17 +2,16 @@ package com.qyft.gd.service;
import cn.hutool.json.JSONUtil;
import com.qyft.gd.config.WebSocketServer;
import com.qyft.gd.device.model.bo.DeviceAlarm;
import com.qyft.gd.model.vo.WebsocketResult;
import org.springframework.stereotype.Service;
@Service
public class warnService {
public boolean pushWarnMsg(DeviceAlarm deviceAlarm) {
public class WebSocketService {
public boolean pushMsg(String type, Object result) {
WebsocketResult websocketResult = new WebsocketResult();
websocketResult.setType("warn");
websocketResult.setData(deviceAlarm);
websocketResult.setType(type);
websocketResult.setData(result);
// 发送消息给客户端
WebSocketServer.sendMessageToClients(JSONUtil.toJsonStr(websocketResult));
return true;
Loading…
Cancel
Save