From 611fb325a4ad95fe4d389f5371335a2d45b9029d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Wed, 30 Jul 2025 10:01:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E7=8A=B6=E6=80=81?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=90=8C=E6=AD=A5=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handacid/app/controller/DeviceController.java | 31 ++++++++++++++++++++++ .../handacid/app/controller/SystemController.java | 7 ----- .../handacid/app/core/state/ChannelState.java | 6 +++++ .../handacid/app/core/state/DeviceState.java | 5 ++++ .../app/model/bo/SyncOperationsChannel.java | 20 ++++++++++++++ .../handacid/app/model/dto/SyncOperationsDTO.java | 24 +++++++++++++++++ 6 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/iflytop/handacid/app/controller/DeviceController.java create mode 100644 src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java create mode 100644 src/main/java/com/iflytop/handacid/app/model/dto/SyncOperationsDTO.java diff --git a/src/main/java/com/iflytop/handacid/app/controller/DeviceController.java b/src/main/java/com/iflytop/handacid/app/controller/DeviceController.java new file mode 100644 index 0000000..9b5e1cd --- /dev/null +++ b/src/main/java/com/iflytop/handacid/app/controller/DeviceController.java @@ -0,0 +1,31 @@ +package com.iflytop.handacid.app.controller; + +import com.iflytop.handacid.app.core.state.DeviceState; +import com.iflytop.handacid.app.model.dto.SyncOperationsDTO; +import com.iflytop.handacid.common.result.Result; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "\uD83D\uDDA5\uFE0F设备") +@RestController +@RequestMapping("/api/device") +@RequiredArgsConstructor +@Slf4j +public class DeviceController { + private final DeviceState deviceState; + + @Operation(summary = "获取当前设备状态") + @GetMapping("/device-status") + public Result getDeviceStatus() { + return Result.success(deviceState.toJSON()); + } + + @Operation(summary = "同步用户操作") + @PostMapping("/sync") + public Result syncOperations(@RequestBody SyncOperationsDTO syncOperationsDTO) { + return Result.success(deviceState.toJSON()); + } +} diff --git a/src/main/java/com/iflytop/handacid/app/controller/SystemController.java b/src/main/java/com/iflytop/handacid/app/controller/SystemController.java index 863a67a..8dfcc07 100644 --- a/src/main/java/com/iflytop/handacid/app/controller/SystemController.java +++ b/src/main/java/com/iflytop/handacid/app/controller/SystemController.java @@ -21,13 +21,6 @@ import java.time.Instant; @Slf4j public class SystemController { private final SystemService systemService; - private final DeviceState deviceState; - - @Operation(summary = "获取当前设备状态") - @GetMapping("/device-status") - public Result getDeviceStatus() { - return Result.success(deviceState.toJSON()); - } @Operation(summary = "设置系统时间") @PostMapping("/set-datetime") diff --git a/src/main/java/com/iflytop/handacid/app/core/state/ChannelState.java b/src/main/java/com/iflytop/handacid/app/core/state/ChannelState.java index 36626f9..a66ef46 100644 --- a/src/main/java/com/iflytop/handacid/app/core/state/ChannelState.java +++ b/src/main/java/com/iflytop/handacid/app/core/state/ChannelState.java @@ -37,6 +37,12 @@ public class ChannelState { @Schema(description = "溶液浓度") private String concentration; + @Schema(description = "是否选中") + private volatile boolean selected = false; + + @Schema(description = "目标加液量(单位:mL)") + private Double targetVolume; + public ChannelState(ChannelCode channelCode, Double remainingVolume, Long solutionId, String solutionName, String concentration) { this.channelCode = channelCode; this.remainingVolume = remainingVolume; diff --git a/src/main/java/com/iflytop/handacid/app/core/state/DeviceState.java b/src/main/java/com/iflytop/handacid/app/core/state/DeviceState.java index 1acad1d..96669f8 100644 --- a/src/main/java/com/iflytop/handacid/app/core/state/DeviceState.java +++ b/src/main/java/com/iflytop/handacid/app/core/state/DeviceState.java @@ -3,6 +3,7 @@ package com.iflytop.handacid.app.core.state; import cn.hutool.json.JSONObject; import com.iflytop.handacid.app.common.enums.ChannelCode; import com.iflytop.handacid.app.common.enums.ChannelStateCode; +import com.iflytop.handacid.app.common.enums.SolutionAddMode; import com.iflytop.handacid.common.model.entity.User; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -24,6 +25,9 @@ public class DeviceState { @Schema(description = "是否停止加液") private volatile boolean solutionAddStop = false; + @Schema(description = "加液模式") + private volatile SolutionAddMode mode; + @Schema(description = "虚拟模式,true为虚拟") private volatile boolean virtual = false; @@ -36,6 +40,7 @@ public class DeviceState { public JSONObject toJSON() { JSONObject json = new JSONObject(); json.putOnce("channelState", new ArrayList<>(channelStateMap.values())); + json.putOnce("mode", mode); json.putOnce("virtual", virtual); json.putOnce("emergencyStop", emergencyStop); json.putOnce("currentUser", currentUser); diff --git a/src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java b/src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java new file mode 100644 index 0000000..6c8bc0b --- /dev/null +++ b/src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java @@ -0,0 +1,20 @@ +package com.iflytop.handacid.app.model.bo; + +import com.iflytop.handacid.app.common.enums.ChannelCode; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "用户操作-通道") +@Data +public class SyncOperationsChannel { + + @Schema(description = "通道code") + private ChannelCode channelCode; + + @Schema(description = "是否选中") + private volatile boolean selected = false; + + @Schema(description = "目标加液量(单位:mL)") + private Double targetVolume; + +} diff --git a/src/main/java/com/iflytop/handacid/app/model/dto/SyncOperationsDTO.java b/src/main/java/com/iflytop/handacid/app/model/dto/SyncOperationsDTO.java new file mode 100644 index 0000000..d4e26f1 --- /dev/null +++ b/src/main/java/com/iflytop/handacid/app/model/dto/SyncOperationsDTO.java @@ -0,0 +1,24 @@ +package com.iflytop.handacid.app.model.dto; + +import com.iflytop.handacid.app.common.enums.SolutionAddMode; +import com.iflytop.handacid.app.model.bo.SyncOperationsChannel; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * 同步用户操作 + */ +@Schema(description = "同步用户操作") +@Data +public class SyncOperationsDTO { + + @Schema(description = "加液模式") + private SolutionAddMode mode; + + @Schema(description = "通道") + private List channels; + +}