From 1716a440778b711fef86ab3ad00f3a8ee03d8369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=A2=A6=E8=BF=9C?= <1063331231@qq.com> Date: Tue, 27 May 2025 19:34:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=B9=E5=99=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sgs/app/cmd/control/LiquidAddCommand.java | 27 +++++++++++++++++ .../sgs/app/controller/ContainerController.java | 34 ++++++++++++++++++++++ .../sgs/app/service/api/ContainerService.java | 25 ++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 src/main/java/com/iflytop/sgs/app/controller/ContainerController.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/api/ContainerService.java diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java index c403068..253279a 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java @@ -6,6 +6,7 @@ import cn.hutool.json.JSONObject; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.bo.Point3D; import com.iflytop.sgs.app.model.bo.status.device.TransferModuleState; +import com.iflytop.sgs.app.model.bo.status.device.ValveState; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.model.entity.Solutions; import com.iflytop.sgs.app.service.api.DevicePositionService; @@ -64,6 +65,32 @@ public class LiquidAddCommand extends BaseCommandHandler { double volume = jsonObject.getDouble("volume");//量 Solutions solutions = solutionsService.getById(solutionId);//获取溶液 ValveStateCode valveStateCode = ValveStateCode.valueOf(solutions.getName());//根据溶液获取电磁阀code + ValveState valveState=deviceStateService.getDeviceState().getSolutionModule().getValveState();//获取当前电磁阀的值 + if(!valveState.getState().equals(valveStateCode)) {//判断是否与当前加酸的通道一致 + switch (valveStateCode) { + case ValveStateCode.thin -> { + solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), ValveStateCode.waste);//废液通道打开 + double distance=devicePositionService.getPosition(DevicePositionCode.thinPreFillDistance).getDistance();//稀硝酸预充距离 + solutionModuleService.liquidPumpMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), -distance);//排空 + solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), ValveStateCode.thin);//废液通道打开 + solutionModuleService.liquidPumpMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), distance);//预充 + } + case ValveStateCode.thick -> { + solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), valveStateCode);//电磁阀对应通道打开 + double distance=devicePositionService.getPosition(DevicePositionCode.thickPreFillDistance).getDistance();//浓硝酸预充距离 + solutionModuleService.liquidPumpMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), distance);//预充 + } + case ValveStateCode.water -> { + solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), valveStateCode);//电磁阀对应通道打开 + double distance=devicePositionService.getPosition(DevicePositionCode.thickPreFillDistance).getDistance();//水预充距离 + solutionModuleService.liquidPumpMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), distance);//预充 + } + case ValveStateCode.waste -> { + solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), valveStateCode);//电磁阀对应通道打开 + + }//已经排空 + } + } double scale = Double.parseDouble(systemConfigService.getSystemConfigValueByCode(valveStateCode.getSystemConfigCode()));//根据溶液获取转换比 double position = volume * scale * 8;//加液泵的转数 solutionModuleService.liquidValveSwitch(cmdDTO.getCommandId(), cmdDTO.getCommand(), valveStateCode);//电磁阀对应通道打开 diff --git a/src/main/java/com/iflytop/sgs/app/controller/ContainerController.java b/src/main/java/com/iflytop/sgs/app/controller/ContainerController.java new file mode 100644 index 0000000..a801ebb --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/controller/ContainerController.java @@ -0,0 +1,34 @@ +package com.iflytop.sgs.app.controller; + +import com.iflytop.sgs.app.model.entity.Container; +import com.iflytop.sgs.app.service.api.ContainerService; +import com.iflytop.sgs.common.result.Result; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "容器") +@RestController +@RequestMapping("/api/container") +@RequiredArgsConstructor +@Slf4j +public class ContainerController { + private final ContainerService containerService; + + @Operation(summary = "容器列表") + @GetMapping("/list") + public Result> getList() { + return Result.success(containerService.getList()); + } + + @Operation(summary = "更新容器配置") + @PutMapping("") + public Result update(@Valid @RequestBody Container container) { + return Result.success(containerService.updateById(container)); + } +} diff --git a/src/main/java/com/iflytop/sgs/app/service/api/ContainerService.java b/src/main/java/com/iflytop/sgs/app/service/api/ContainerService.java new file mode 100644 index 0000000..ac8aa70 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/api/ContainerService.java @@ -0,0 +1,25 @@ +package com.iflytop.sgs.app.service.api; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iflytop.sgs.app.mapper.ContainerMapper; +import com.iflytop.sgs.app.model.entity.Container; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 容器接口服务 + */ +@Service +@RequiredArgsConstructor +public class ContainerService extends ServiceImpl { + private final ContainerMapper containerMapper; + + public List getList() { + return this.list(); + } + + +}