Browse Source

feat:添加弹窗提醒

master
白凤吉 2 days ago
parent
commit
d7bfb66bb5
  1. 4
      src/main/java/com/iflytop/handacid/app/controller/TestController.java
  2. 8
      src/main/java/com/iflytop/handacid/app/core/listener/BleGamepadEventListener.java
  3. 11
      src/main/java/com/iflytop/handacid/app/service/ChannelCtrlService.java
  4. 12
      src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketSender.java
  5. 6
      src/main/java/com/iflytop/handacid/common/result/ResultCode.java

4
src/main/java/com/iflytop/handacid/app/controller/TestController.java

@ -66,14 +66,14 @@ public class TestController {
@Operation(summary = "推送弹窗")
@PostMapping("/push-popup")
public Result<?> pushPopup(AlertLevel lv, String resultCode) {
webSocketSender.pushPopup(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
webSocketSender.pushPopup(lv,ResultCode.getByCode(resultCode));
return Result.success();
}
@Operation(summary = "推送小提示")
@PostMapping("/push-toast")
public Result<?> pushToast(AlertLevel lv, String resultCode) {
webSocketSender.pushToast(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
webSocketSender.pushToast(lv,ResultCode.getByCode(resultCode));
return Result.success();
}

8
src/main/java/com/iflytop/handacid/app/core/listener/BleGamepadEventListener.java

@ -3,6 +3,9 @@ package com.iflytop.handacid.app.core.listener;
import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.scheduled.BleGamepadStateScheduledTask;
import com.iflytop.handacid.app.service.ChannelCtrlService;
import com.iflytop.handacid.app.websocket.server.AlertLevel;
import com.iflytop.handacid.app.websocket.server.WebSocketSender;
import com.iflytop.handacid.common.result.ResultCode;
import com.iflytop.handacid.hardware.service.AppEventBusService;
import com.iflytop.handacid.hardware.type.A8kPacket;
import com.iflytop.handacid.hardware.type.CmdId;
@ -25,6 +28,7 @@ public class BleGamepadEventListener {
private final ChannelCtrlService channelCtrlService;
private final DeviceState deviceState;
private final BleGamepadStateScheduledTask bleGamepadStateScheduledTask;
private final WebSocketSender webSocketSender;
@PostConstruct
synchronized public void init() {
@ -44,7 +48,7 @@ public class BleGamepadEventListener {
//判断当前的设备状态
log.info("蓝牙手柄 加酸按钮 按下");
if (deviceState.isSolutionPreFillStart()) {//正在预充 忽略加液按钮事件
log.info("正在与预充中...");
webSocketSender.pushToast(AlertLevel.error, ResultCode.PRE_CHARGING);//正在预充中
return;
}
if (deviceState.isSolutionAdding()) {
@ -55,7 +59,7 @@ public class BleGamepadEventListener {
} else if (CmdId.event_ble_gamepad_liquid_acid_prefilling.equals(cmdId)) {
log.info("蓝牙手柄 预充按钮 按下");
if (deviceState.isSolutionAdding()) {//正在加液 忽略预充按钮事件
log.info("正在加液中...");
webSocketSender.pushToast(AlertLevel.error, ResultCode.SOLUTION_ADDING);//正在加液中
return;
}
if (deviceState.isSolutionPreFillStart()) {

11
src/main/java/com/iflytop/handacid/app/service/ChannelCtrlService.java

@ -11,10 +11,13 @@ import com.iflytop.handacid.app.core.command.DeviceCommand;
import com.iflytop.handacid.app.core.command.DeviceCommandGenerator;
import com.iflytop.handacid.app.core.state.ChannelState;
import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.websocket.server.AlertLevel;
import com.iflytop.handacid.app.websocket.server.WebSocketSender;
import com.iflytop.handacid.common.model.entity.AuditRecord;
import com.iflytop.handacid.common.model.entity.Channel;
import com.iflytop.handacid.common.model.entity.Formulation;
import com.iflytop.handacid.common.model.entity.PreFill;
import com.iflytop.handacid.common.result.ResultCode;
import com.iflytop.handacid.common.service.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -40,6 +43,7 @@ public class ChannelCtrlService {
private final SystemConfigService systemConfigService;
private final ChannelService channelService;
private final PreFillService preFillService;
private final WebSocketSender webSocketSender;
/**
* 开始加液
@ -54,6 +58,13 @@ public class ChannelCtrlService {
log.warn("没有选中的通道");
return;
}
for (ChannelState channelState : channelStateList) {
if(channelState.getTargetVolume() == null){
webSocketSender.pushPopup(AlertLevel.error, ResultCode.PLEASE_SELECT_VOLUME);
return;
}
}
channelStateList = deviceState.filterChannelStatesIsSelected();
try {
List<CommandFuture> valveOpenDeviceCommandFutureList = new ArrayList<>();

12
src/main/java/com/iflytop/handacid/app/websocket/server/WebSocketSender.java

@ -1,14 +1,12 @@
package com.iflytop.handacid.app.websocket.server;
import cn.hutool.json.JSONUtil;
import com.iflytop.handacid.common.result.ResultCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Slf4j
@Component
@ -29,15 +27,15 @@ public class WebSocketSender {
/**
* 弹窗
*/
public void pushPopup(Object data){
push(WebSocketMessageType.POPUP, data);
public void pushPopup(AlertLevel lv, ResultCode resultCode) {
push(WebSocketMessageType.POPUP, AlertGenerator.generateJson(lv, resultCode));
}
/**
* 小提醒
*/
public void pushToast(Object data){
push(WebSocketMessageType.TOAST, data);
public void pushToast(AlertLevel lv, ResultCode resultCode) {
push(WebSocketMessageType.TOAST, AlertGenerator.generateJson(lv, resultCode));
}
public void pushDebug(Object data) {

6
src/main/java/com/iflytop/handacid/common/result/ResultCode.java

@ -61,6 +61,12 @@ public enum ResultCode implements IResultCode, Serializable {
TARGET_MODULE_NO_TUBE("6022", "目标模块无试管"),
CMD_BUSY("6025", "设备忙,请稍后"),
FORMULATION_USED("6026", "存在正在使用的配方,禁止删除"),
//============================ 8xxx主动推送 ============================
PLEASE_SELECT_VOLUME("8001", "请选择加液体积"),
PRE_CHARGING("8002", "正在预充中"),
SOLUTION_ADDING("8003", "正在加液中"),
;
/**
* 状态码

Loading…
Cancel
Save