Browse Source

fix:容器功能

master
王梦远 2 months ago
parent
commit
1716a44077
  1. 27
      src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java
  2. 34
      src/main/java/com/iflytop/sgs/app/controller/ContainerController.java
  3. 25
      src/main/java/com/iflytop/sgs/app/service/api/ContainerService.java

27
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);//电磁阀对应通道打开

34
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<List<Container>> getList() {
return Result.success(containerService.getList());
}
@Operation(summary = "更新容器配置")
@PutMapping("")
public Result<Boolean> update(@Valid @RequestBody Container container) {
return Result.success(containerService.updateById(container));
}
}

25
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<ContainerMapper, Container> {
private final ContainerMapper containerMapper;
public List<Container> getList() {
return this.list();
}
}
Loading…
Cancel
Save