Browse Source

fix:调整状态,增加同步状态接口

master
白凤吉 5 days ago
parent
commit
611fb325a4
  1. 31
      src/main/java/com/iflytop/handacid/app/controller/DeviceController.java
  2. 7
      src/main/java/com/iflytop/handacid/app/controller/SystemController.java
  3. 6
      src/main/java/com/iflytop/handacid/app/core/state/ChannelState.java
  4. 5
      src/main/java/com/iflytop/handacid/app/core/state/DeviceState.java
  5. 20
      src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java
  6. 24
      src/main/java/com/iflytop/handacid/app/model/dto/SyncOperationsDTO.java

31
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());
}
}

7
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")

6
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;

5
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);

20
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;
}

24
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<SyncOperationsChannel> channels;
}
Loading…
Cancel
Save