Browse Source

fix:修改业务指令增加参数

master
白凤吉 4 days ago
parent
commit
06f8ba7c3d
  1. 22
      src/main/java/com/iflytop/handacid/app/command/control/SolutionAddStartCommand.java
  2. 14
      src/main/java/com/iflytop/handacid/app/command/control/SolutionPreFillStartCommand.java
  3. 2
      src/main/java/com/iflytop/handacid/app/controller/TestController.java
  4. 2
      src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java

22
src/main/java/com/iflytop/handacid/app/command/control/SolutionAddStartCommand.java

@ -1,10 +1,18 @@
package com.iflytop.handacid.app.command.control; package com.iflytop.handacid.app.command.control;
import com.iflytop.handacid.app.common.annotation.CommandMapping; import com.iflytop.handacid.app.common.annotation.CommandMapping;
import com.iflytop.handacid.app.common.enums.ChannelCode;
import com.iflytop.handacid.app.common.enums.ChannelStateCode;
import com.iflytop.handacid.app.common.enums.Direction;
import com.iflytop.handacid.app.common.utils.CommandUtil;
import com.iflytop.handacid.app.core.command.BaseCommandHandler; import com.iflytop.handacid.app.core.command.BaseCommandHandler;
import com.iflytop.handacid.app.core.command.CommandFuture;
import com.iflytop.handacid.app.core.command.DeviceCommand;
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.model.dto.CommandDTO; import com.iflytop.handacid.app.model.dto.CommandDTO;
import com.iflytop.handacid.app.service.ChannelCtrlService; import com.iflytop.handacid.app.service.ChannelCtrlService;
import com.iflytop.handacid.app.service.DeviceCommandService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -19,14 +27,24 @@ import java.util.concurrent.CompletableFuture;
@RequiredArgsConstructor @RequiredArgsConstructor
@CommandMapping("solution_add_start") @CommandMapping("solution_add_start")
public class SolutionAddStartCommand extends BaseCommandHandler { public class SolutionAddStartCommand extends BaseCommandHandler {
private final DeviceCommandService deviceCommandService;
private final ChannelCtrlService channelCtrlService; private final ChannelCtrlService channelCtrlService;
private final DeviceState deviceState; private final DeviceState deviceState;
@Override @Override
public CompletableFuture<Void> handle(CommandDTO commandDTO) { public CompletableFuture<Void> handle(CommandDTO commandDTO) {
ChannelCode channelCode = commandDTO.getEnumParam("channelCode", ChannelCode.class);
if (channelCode == null) {
throw new IllegalArgumentException("参数 channelCode 不能为空");
}
Double position = commandDTO.getDoubleParam("position");
if (position == null) {
throw new IllegalArgumentException("参数 position 不能为空");
}
return runAsync(() -> { return runAsync(() -> {
channelCtrlService.solutionAddStart();
DeviceCommand deviceCommand = channelCtrlService.getPumpMoveCommandByChannel(channelCode, position);
CommandFuture commandFuture = deviceCommandService.sendCommand(deviceCommand);
CommandUtil.wait(commandFuture);
}); });
} }
} }

14
src/main/java/com/iflytop/handacid/app/command/control/SolutionPreFillStartCommand.java

@ -1,7 +1,11 @@
package com.iflytop.handacid.app.command.control; package com.iflytop.handacid.app.command.control;
import com.iflytop.handacid.app.common.annotation.CommandMapping; import com.iflytop.handacid.app.common.annotation.CommandMapping;
import com.iflytop.handacid.app.common.enums.ChannelCode;
import com.iflytop.handacid.app.common.utils.CommandUtil;
import com.iflytop.handacid.app.core.command.BaseCommandHandler; import com.iflytop.handacid.app.core.command.BaseCommandHandler;
import com.iflytop.handacid.app.core.command.CommandFuture;
import com.iflytop.handacid.app.core.command.DeviceCommand;
import com.iflytop.handacid.app.core.state.DeviceState; import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.model.dto.CommandDTO; import com.iflytop.handacid.app.model.dto.CommandDTO;
import com.iflytop.handacid.app.service.ChannelCtrlService; import com.iflytop.handacid.app.service.ChannelCtrlService;
@ -13,7 +17,7 @@ import org.springframework.stereotype.Component;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
/** /**
* 开始预充(废弃)
* 开始预充
*/ */
@Slf4j @Slf4j
@Component @Component
@ -26,8 +30,14 @@ public class SolutionPreFillStartCommand extends BaseCommandHandler {
@Override @Override
public CompletableFuture<Void> handle(CommandDTO commandDTO) { public CompletableFuture<Void> handle(CommandDTO commandDTO) {
ChannelCode channelCode = commandDTO.getEnumParam("channelCode", ChannelCode.class);
if (channelCode == null) {
throw new IllegalArgumentException("参数 channelCode 不能为空");
}
return runAsync(() -> { return runAsync(() -> {
channelCtrlService.solutionPreFillStart();
DeviceCommand deviceCommand = channelCtrlService.getPumpForwardRotateCommandByChannel(channelCode);
CommandFuture commandFuture = deviceCommandService.sendCommand(deviceCommand);
CommandUtil.wait(commandFuture);
}); });
} }
} }

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

@ -2,6 +2,7 @@ package com.iflytop.handacid.app.controller;
import com.iflytop.handacid.app.common.enums.ChannelCode; import com.iflytop.handacid.app.common.enums.ChannelCode;
import com.iflytop.handacid.app.core.state.DeviceState; import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.service.TestService;
import com.iflytop.handacid.common.result.Result; import com.iflytop.handacid.common.result.Result;
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;
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
public class TestController { public class TestController {
private final DeviceState deviceState; private final DeviceState deviceState;
private final AppEventBusService eventBus; private final AppEventBusService eventBus;
private final TestService testService;
@Operation(summary = "启动虚拟模式") @Operation(summary = "启动虚拟模式")
@PostMapping("/virtual") @PostMapping("/virtual")

2
src/main/java/com/iflytop/handacid/app/model/bo/SyncOperationsChannel.java

@ -12,7 +12,7 @@ public class SyncOperationsChannel {
private ChannelCode channelCode; private ChannelCode channelCode;
@Schema(description = "是否选中") @Schema(description = "是否选中")
private volatile boolean selected = false;
private volatile Boolean selected = false;
@Schema(description = "目标加液量(单位:mL)") @Schema(description = "目标加液量(单位:mL)")
private Double targetVolume; private Double targetVolume;

Loading…
Cancel
Save