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 = "推送弹窗") @Operation(summary = "推送弹窗")
@PostMapping("/push-popup") @PostMapping("/push-popup")
public Result<?> pushPopup(AlertLevel lv, String resultCode) { public Result<?> pushPopup(AlertLevel lv, String resultCode) {
webSocketSender.pushPopup(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
webSocketSender.pushPopup(lv,ResultCode.getByCode(resultCode));
return Result.success(); return Result.success();
} }
@Operation(summary = "推送小提示") @Operation(summary = "推送小提示")
@PostMapping("/push-toast") @PostMapping("/push-toast")
public Result<?> pushToast(AlertLevel lv, String resultCode) { public Result<?> pushToast(AlertLevel lv, String resultCode) {
webSocketSender.pushToast(AlertGenerator.generateJson(lv,ResultCode.getByCode(resultCode)));
webSocketSender.pushToast(lv,ResultCode.getByCode(resultCode));
return Result.success(); 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.core.state.DeviceState;
import com.iflytop.handacid.app.scheduled.BleGamepadStateScheduledTask; import com.iflytop.handacid.app.scheduled.BleGamepadStateScheduledTask;
import com.iflytop.handacid.app.service.ChannelCtrlService; 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.service.AppEventBusService;
import com.iflytop.handacid.hardware.type.A8kPacket; import com.iflytop.handacid.hardware.type.A8kPacket;
import com.iflytop.handacid.hardware.type.CmdId; import com.iflytop.handacid.hardware.type.CmdId;
@ -25,6 +28,7 @@ public class BleGamepadEventListener {
private final ChannelCtrlService channelCtrlService; private final ChannelCtrlService channelCtrlService;
private final DeviceState deviceState; private final DeviceState deviceState;
private final BleGamepadStateScheduledTask bleGamepadStateScheduledTask; private final BleGamepadStateScheduledTask bleGamepadStateScheduledTask;
private final WebSocketSender webSocketSender;
@PostConstruct @PostConstruct
synchronized public void init() { synchronized public void init() {
@ -44,7 +48,7 @@ public class BleGamepadEventListener {
//判断当前的设备状态 //判断当前的设备状态
log.info("蓝牙手柄 加酸按钮 按下"); log.info("蓝牙手柄 加酸按钮 按下");
if (deviceState.isSolutionPreFillStart()) {//正在预充 忽略加液按钮事件 if (deviceState.isSolutionPreFillStart()) {//正在预充 忽略加液按钮事件
log.info("正在与预充中...");
webSocketSender.pushToast(AlertLevel.error, ResultCode.PRE_CHARGING);//正在预充中
return; return;
} }
if (deviceState.isSolutionAdding()) { if (deviceState.isSolutionAdding()) {
@ -55,7 +59,7 @@ public class BleGamepadEventListener {
} else if (CmdId.event_ble_gamepad_liquid_acid_prefilling.equals(cmdId)) { } else if (CmdId.event_ble_gamepad_liquid_acid_prefilling.equals(cmdId)) {
log.info("蓝牙手柄 预充按钮 按下"); log.info("蓝牙手柄 预充按钮 按下");
if (deviceState.isSolutionAdding()) {//正在加液 忽略预充按钮事件 if (deviceState.isSolutionAdding()) {//正在加液 忽略预充按钮事件
log.info("正在加液中...");
webSocketSender.pushToast(AlertLevel.error, ResultCode.SOLUTION_ADDING);//正在加液中
return; return;
} }
if (deviceState.isSolutionPreFillStart()) { 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.command.DeviceCommandGenerator;
import com.iflytop.handacid.app.core.state.ChannelState; import com.iflytop.handacid.app.core.state.ChannelState;
import com.iflytop.handacid.app.core.state.DeviceState; 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.AuditRecord;
import com.iflytop.handacid.common.model.entity.Channel; import com.iflytop.handacid.common.model.entity.Channel;
import com.iflytop.handacid.common.model.entity.Formulation; import com.iflytop.handacid.common.model.entity.Formulation;
import com.iflytop.handacid.common.model.entity.PreFill; import com.iflytop.handacid.common.model.entity.PreFill;
import com.iflytop.handacid.common.result.ResultCode;
import com.iflytop.handacid.common.service.*; import com.iflytop.handacid.common.service.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -40,6 +43,7 @@ public class ChannelCtrlService {
private final SystemConfigService systemConfigService; private final SystemConfigService systemConfigService;
private final ChannelService channelService; private final ChannelService channelService;
private final PreFillService preFillService; private final PreFillService preFillService;
private final WebSocketSender webSocketSender;
/** /**
* 开始加液 * 开始加液
@ -54,6 +58,13 @@ public class ChannelCtrlService {
log.warn("没有选中的通道"); log.warn("没有选中的通道");
return; return;
} }
for (ChannelState channelState : channelStateList) {
if(channelState.getTargetVolume() == null){
webSocketSender.pushPopup(AlertLevel.error, ResultCode.PLEASE_SELECT_VOLUME);
return;
}
}
channelStateList = deviceState.filterChannelStatesIsSelected(); channelStateList = deviceState.filterChannelStatesIsSelected();
try { try {
List<CommandFuture> valveOpenDeviceCommandFutureList = new ArrayList<>(); 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; package com.iflytop.handacid.app.websocket.server;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.iflytop.handacid.common.result.ResultCode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Slf4j @Slf4j
@Component @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) { 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", "目标模块无试管"), TARGET_MODULE_NO_TUBE("6022", "目标模块无试管"),
CMD_BUSY("6025", "设备忙,请稍后"), CMD_BUSY("6025", "设备忙,请稍后"),
FORMULATION_USED("6026", "存在正在使用的配方,禁止删除"), FORMULATION_USED("6026", "存在正在使用的配方,禁止删除"),
//============================ 8xxx主动推送 ============================
PLEASE_SELECT_VOLUME("8001", "请选择加液体积"),
PRE_CHARGING("8002", "正在预充中"),
SOLUTION_ADDING("8003", "正在加液中"),
; ;
/** /**
* 状态码 * 状态码

Loading…
Cancel
Save