Browse Source

Merge remote-tracking branch 'origin/master'

master
HSZ_HeSongZhen 3 months ago
parent
commit
eda8605c4e
  1. 1
      src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java
  2. 4
      src/main/java/com/iflytop/gd/app/cmd/DualRobotJointOriginCommand.java
  3. 7
      src/main/java/com/iflytop/gd/app/cmd/GantryXOriginCommand.java
  4. 2
      src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java
  5. 1
      src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java
  6. 1
      src/main/java/com/iflytop/gd/app/controller/DevicePointController.java
  7. 5
      src/main/java/com/iflytop/gd/app/controller/HeatModuleController.java
  8. 2
      src/main/java/com/iflytop/gd/app/controller/OresController.java
  9. 2
      src/main/java/com/iflytop/gd/app/controller/SolutionsController.java
  10. 2
      src/main/java/com/iflytop/gd/app/controller/TasksController.java
  11. 4
      src/main/java/com/iflytop/gd/app/controller/TrayController.java
  12. 4
      src/main/java/com/iflytop/gd/app/controller/UserController.java
  13. 3
      src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java
  14. 24
      src/main/java/com/iflytop/gd/app/core/device/DeviceState.java
  15. 1
      src/main/java/com/iflytop/gd/app/mapper/SystemConfigMapper.java
  16. 6
      src/main/java/com/iflytop/gd/app/model/bo/Notification.java
  17. 1
      src/main/java/com/iflytop/gd/app/model/bo/Point3D.java
  18. 1
      src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java
  19. 1
      src/main/java/com/iflytop/gd/app/model/dto/LoginDTO.java
  20. 1
      src/main/java/com/iflytop/gd/app/model/dto/PauseCraftsDto.java
  21. 5
      src/main/java/com/iflytop/gd/app/model/entity/Container.java
  22. 2
      src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java
  23. 1
      src/main/java/com/iflytop/gd/app/model/vo/ModuleIdVO.java
  24. 4
      src/main/java/com/iflytop/gd/app/model/vo/SetTrayTubeVO.java
  25. 7
      src/main/java/com/iflytop/gd/app/service/CraftsService.java
  26. 5
      src/main/java/com/iflytop/gd/app/service/CraftsStepService.java
  27. 2
      src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java
  28. 33
      src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java
  29. 4
      src/main/java/com/iflytop/gd/app/service/DevicePositionService.java
  30. 2
      src/main/java/com/iflytop/gd/app/service/GantryArmService.java
  31. 4
      src/main/java/com/iflytop/gd/app/service/OresService.java
  32. 4
      src/main/java/com/iflytop/gd/app/service/SystemLogService.java
  33. 2
      src/main/java/com/iflytop/gd/app/service/TaskStepsService.java
  34. 2
      src/main/java/com/iflytop/gd/app/service/TasksService.java
  35. 2
      src/main/java/com/iflytop/gd/app/service/UserService.java
  36. 6
      src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java
  37. 5
      src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

1
src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java

@ -7,7 +7,6 @@ import com.iflytop.gd.app.service.DevicePositionService;
import com.iflytop.gd.app.service.DeviceStateService; import com.iflytop.gd.app.service.DeviceStateService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.enums.data.DevicePositionCode; import com.iflytop.gd.common.enums.data.DevicePositionCode;
import com.iflytop.gd.hardware.service.GDDeviceStatusService;
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;

4
src/main/java/com/iflytop/gd/app/cmd/DualRobotJointOriginCommand.java

@ -29,11 +29,11 @@ public class DualRobotJointOriginCommand extends BaseCommandHandler {
Boolean joint2 = cmdDTO.getBooleanParam("joint1"); Boolean joint2 = cmdDTO.getBooleanParam("joint1");
return runAsync(() -> { return runAsync(() -> {
if(joint1){
if (joint1) {
deviceCommandUtilService.dualRobotOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand(), CmdAxis.joint1); deviceCommandUtilService.dualRobotOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand(), CmdAxis.joint1);
selfTestService.getSelfTestState().setDualRobotJoint1Origin(true); selfTestService.getSelfTestState().setDualRobotJoint1Origin(true);
} }
if(joint2){
if (joint2) {
deviceCommandUtilService.dualRobotOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand(), CmdAxis.joint2); deviceCommandUtilService.dualRobotOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand(), CmdAxis.joint2);
selfTestService.getSelfTestState().setDualRobotJoint2Origin(true); selfTestService.getSelfTestState().setDualRobotJoint2Origin(true);
} }

7
src/main/java/com/iflytop/gd/app/cmd/GantryXOriginCommand.java

@ -3,19 +3,12 @@ package com.iflytop.gd.app.cmd;
import com.iflytop.gd.app.core.BaseCommandHandler; import com.iflytop.gd.app.core.BaseCommandHandler;
import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.app.service.DeviceCommandUtilService; import com.iflytop.gd.app.service.DeviceCommandUtilService;
import com.iflytop.gd.app.service.DevicePositionService;
import com.iflytop.gd.app.service.SelfTestService; import com.iflytop.gd.app.service.SelfTestService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.cmd.DeviceCommandBundle;
import com.iflytop.gd.common.cmd.DeviceCommandGenerator;
import com.iflytop.gd.common.enums.data.DevicePositionCode;
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;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
/** /**

2
src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java

@ -63,7 +63,7 @@ public class MoveToHeatAreaCommand extends BaseCommandHandler {
deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapGrip);//将夹爪收紧 deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapGrip);//将夹爪收紧
double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度 double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度
deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -capSafetyHeight);//机械臂提升至移动拍子的安全高度 deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -capSafetyHeight);//机械臂提升至移动拍子的安全高度
deviceCommandUtilService.capMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), 1); //提升拍子存放区1个位置
deviceCommandUtilService.capUpBalance(cmdDTO.getCommandId(), cmdDTO.getCommand()); //提升拍子存放区
Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位 Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位
Point3D heatAreaCapClawSafetyHeightPoint3D = new Point3D(heatAreaCapClawPoint3D.getX(), heatAreaCapClawPoint3D.getY(), heatAreaCapClawPoint3D.getZ() - capSafetyHeight);//加热区拍子上方加上移动拍子的安全高度 Point3D heatAreaCapClawSafetyHeightPoint3D = new Point3D(heatAreaCapClawPoint3D.getX(), heatAreaCapClawPoint3D.getY(), heatAreaCapClawPoint3D.getZ() - capSafetyHeight);//加热区拍子上方加上移动拍子的安全高度
deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaCapClawSafetyHeightPoint3D);//将机械臂移动至拍子上方加上移动拍子的安全高度 deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaCapClawSafetyHeightPoint3D);//将机械臂移动至拍子上方加上移动拍子的安全高度

1
src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java

@ -3,7 +3,6 @@ package com.iflytop.gd.app.cmd;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.iflytop.gd.app.core.BaseCommandHandler; import com.iflytop.gd.app.core.BaseCommandHandler;
import com.iflytop.gd.app.model.bo.Point2D;
import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.app.service.ContainerService; import com.iflytop.gd.app.service.ContainerService;
import com.iflytop.gd.app.service.DeviceCommandUtilService; import com.iflytop.gd.app.service.DeviceCommandUtilService;

1
src/main/java/com/iflytop/gd/app/controller/DevicePointController.java

@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 设备点位接口 * 设备点位接口

5
src/main/java/com/iflytop/gd/app/controller/HeatModuleController.java

@ -8,7 +8,10 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 加热模块控制 * 加热模块控制

2
src/main/java/com/iflytop/gd/app/controller/OresController.java

@ -3,9 +3,9 @@ package com.iflytop.gd.app.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iflytop.gd.app.model.entity.Ores; import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.vo.OresCraftsListVO; import com.iflytop.gd.app.model.vo.OresCraftsListVO;
import com.iflytop.gd.app.service.OresService;
import com.iflytop.gd.common.base.BasePageQuery; import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.common.result.PageResult; import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.app.service.OresService;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;

2
src/main/java/com/iflytop/gd/app/controller/SolutionsController.java

@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iflytop.gd.app.model.entity.Solutions; import com.iflytop.gd.app.model.entity.Solutions;
import com.iflytop.gd.app.service.SolutionsService; import com.iflytop.gd.app.service.SolutionsService;
import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.common.result.PageResult; import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
import com.iflytop.gd.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

2
src/main/java/com/iflytop/gd/app/controller/TasksController.java

@ -68,7 +68,7 @@ public class TasksController {
@Operation(summary = "停止实验") @Operation(summary = "停止实验")
@PostMapping("/stop") @PostMapping("/stop")
public Result<Integer> stopTask(@RequestBody StopTaskDTO dto) { public Result<Integer> stopTask(@RequestBody StopTaskDTO dto) {
if(dto.getTaskId() != null) {
if (dto.getTaskId() != null) {
return Result.success(tasksService.stopTask(dto.getTaskId())); return Result.success(tasksService.stopTask(dto.getTaskId()));
} }
return Result.failed("停止实验失败"); return Result.failed("停止实验失败");

4
src/main/java/com/iflytop/gd/app/controller/TrayController.java

@ -1,8 +1,6 @@
package com.iflytop.gd.app.controller; package com.iflytop.gd.app.controller;
import com.iflytop.gd.app.core.device.TrayState; import com.iflytop.gd.app.core.device.TrayState;
import com.iflytop.gd.app.core.device.TubeState;
import com.iflytop.gd.app.model.entity.User;
import com.iflytop.gd.app.model.vo.SetTrayTubeVO; import com.iflytop.gd.app.model.vo.SetTrayTubeVO;
import com.iflytop.gd.app.service.TrayService; import com.iflytop.gd.app.service.TrayService;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
@ -15,8 +13,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 托盘控制 * 托盘控制
*/ */

4
src/main/java/com/iflytop/gd/app/controller/UserController.java

@ -3,12 +3,12 @@ package com.iflytop.gd.app.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iflytop.gd.app.model.entity.User;
import com.iflytop.gd.app.service.UserService;
import com.iflytop.gd.common.base.BasePageQuery; import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.common.result.PageResult; import com.iflytop.gd.common.result.PageResult;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
import com.iflytop.gd.app.model.entity.User;
import com.iflytop.gd.app.service.UserService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

3
src/main/java/com/iflytop/gd/app/core/BaseCommandHandler.java

@ -1,10 +1,9 @@
package com.iflytop.gd.app.core; package com.iflytop.gd.app.core;
import com.iflytop.gd.common.annotation.CheckedRunnable; import com.iflytop.gd.common.annotation.CheckedRunnable;
import com.iflytop.gd.common.cmd.CommandHandler;
import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.cmd.CommandHandler;
import com.iflytop.gd.common.utils.LambdaUtil; import com.iflytop.gd.common.utils.LambdaUtil;
import java.util.Arrays; import java.util.Arrays;

24
src/main/java/com/iflytop/gd/app/core/device/DeviceState.java

@ -9,30 +9,22 @@ import java.util.List;
@Schema(description = "当前设备") @Schema(description = "当前设备")
@Data @Data
public class DeviceState { public class DeviceState {
@Schema(description = "虚拟模式,true为虚拟")
private boolean virtual = false;
@Schema(description = "初始化状态,true初始化完毕")
private boolean initComplete = false;
@Schema(description = "自检状态,true自检完毕")
private boolean selfTest = false;
@Schema(description = "是否是急停状态,true为急停")
private boolean emergencyStop = false;
@Schema(description = "门状态") @Schema(description = "门状态")
private final DoorState door = new DoorState(); private final DoorState door = new DoorState();
@Schema(description = "龙门架机械臂状态") @Schema(description = "龙门架机械臂状态")
private final GantryArmState gantryArm = new GantryArmState(); private final GantryArmState gantryArm = new GantryArmState();
@Schema(description = "加液模块属性") @Schema(description = "加液模块属性")
private final SolutionModuleState solutionModule = new SolutionModuleState(); private final SolutionModuleState solutionModule = new SolutionModuleState();
@Schema(description = "加热模块属性") @Schema(description = "加热模块属性")
private final List<HeatModuleState> heatModule = new ArrayList<>(); private final List<HeatModuleState> heatModule = new ArrayList<>();
@Schema(description = "托盘") @Schema(description = "托盘")
private final List<TrayState> tray = new ArrayList<>(); private final List<TrayState> tray = new ArrayList<>();
@Schema(description = "虚拟模式,true为虚拟")
private boolean virtual = false;
@Schema(description = "初始化状态,true初始化完毕")
private boolean initComplete = false;
@Schema(description = "自检状态,true自检完毕")
private boolean selfTest = false;
@Schema(description = "是否是急停状态,true为急停")
private boolean emergencyStop = false;
} }

1
src/main/java/com/iflytop/gd/app/mapper/SystemConfigMapper.java

@ -1,7 +1,6 @@
package com.iflytop.gd.app.mapper; package com.iflytop.gd.app.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.entity.SystemConfig; import com.iflytop.gd.app.model.entity.SystemConfig;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

6
src/main/java/com/iflytop/gd/app/model/bo/Notification.java

@ -15,8 +15,8 @@ public class Notification {
private final String command; private final String command;
private final String level; private final String level;
private final String title; private final String title;
private String content = null;
private final String dateTime = DateTime.now().toString("yyyy/MM/dd HH:mm:ss"); private final String dateTime = DateTime.now().toString("yyyy/MM/dd HH:mm:ss");
private String content = null;
private Notification(String commandId, String command, String level, String title, String content) { private Notification(String commandId, String command, String level, String title, String content) {
this.commandId = commandId; this.commandId = commandId;
@ -35,6 +35,7 @@ public class Notification {
/** /**
* 创建Info级别通知 * 创建Info级别通知
*
* @param content 通知内容 * @param content 通知内容
* @return 通知实例 * @return 通知实例
*/ */
@ -63,6 +64,7 @@ public class Notification {
/** /**
* 创建Warn级别通知 * 创建Warn级别通知
*
* @param content 通知内容 * @param content 通知内容
* @return 通知实例 * @return 通知实例
*/ */
@ -72,6 +74,7 @@ public class Notification {
/** /**
* 创建Error级别通知 * 创建Error级别通知
*
* @param content 通知内容 * @param content 通知内容
* @return 通知实例 * @return 通知实例
*/ */
@ -87,6 +90,7 @@ public class Notification {
/** /**
* 创建Fatal级别通知 * 创建Fatal级别通知
*
* @param content 通知内容 * @param content 通知内容
* @return 通知实例 * @return 通知实例
*/ */

1
src/main/java/com/iflytop/gd/app/model/bo/Point3D.java

@ -11,6 +11,7 @@ public class Point3D {
public Point3D() { public Point3D() {
} }
public Point3D(Double x, Double y, Double z) { public Point3D(Double x, Double y, Double z) {
this.x = x; this.x = x;
this.y = y; this.y = y;

1
src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java

@ -6,7 +6,6 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
import java.util.Optional;
@Schema(description = "指令") @Schema(description = "指令")
@Data @Data

1
src/main/java/com/iflytop/gd/app/model/dto/LoginDTO.java

@ -1,7 +1,6 @@
package com.iflytop.gd.app.model.dto; package com.iflytop.gd.app.model.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

1
src/main/java/com/iflytop/gd/app/model/dto/PauseCraftsDto.java

@ -1,7 +1,6 @@
package com.iflytop.gd.app.model.dto; package com.iflytop.gd.app.model.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

5
src/main/java/com/iflytop/gd/app/model/entity/Container.java

@ -3,7 +3,10 @@ package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.iflytop.gd.common.base.BaseEntity; import com.iflytop.gd.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

2
src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java

@ -1,7 +1,7 @@
package com.iflytop.gd.app.model.vo; package com.iflytop.gd.app.model.vo;
import com.iflytop.gd.common.enums.automaton.CraftStates;
import com.iflytop.gd.app.model.bo.CraftsStep; import com.iflytop.gd.app.model.bo.CraftsStep;
import com.iflytop.gd.common.enums.automaton.CraftStates;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

1
src/main/java/com/iflytop/gd/app/model/vo/ModuleIdVO.java

@ -1,4 +1,5 @@
package com.iflytop.gd.app.model.vo; package com.iflytop.gd.app.model.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

4
src/main/java/com/iflytop/gd/app/model/vo/SetTrayTubeVO.java

@ -1,13 +1,9 @@
package com.iflytop.gd.app.model.vo; package com.iflytop.gd.app.model.vo;
import com.iflytop.gd.app.core.device.TubeState; import com.iflytop.gd.app.core.device.TubeState;
import com.iflytop.gd.app.model.bo.CraftsStep;
import com.iflytop.gd.common.enums.automaton.CraftStates;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* 设置托盘试管 * 设置托盘试管
*/ */

7
src/main/java/com/iflytop/gd/app/service/CraftsService.java

@ -2,14 +2,14 @@ package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.common.enums.automaton.CraftEvents;
import com.iflytop.gd.common.enums.automaton.CraftStates;
import com.iflytop.gd.app.core.CraftsContext; import com.iflytop.gd.app.core.CraftsContext;
import com.iflytop.gd.app.mapper.CraftsMapper; import com.iflytop.gd.app.mapper.CraftsMapper;
import com.iflytop.gd.app.model.entity.Crafts; import com.iflytop.gd.app.model.entity.Crafts;
import com.iflytop.gd.app.model.entity.Ores; import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.vo.CraftStatusVO; import com.iflytop.gd.app.model.vo.CraftStatusVO;
import com.iflytop.gd.app.model.vo.SetCraftsVO; import com.iflytop.gd.app.model.vo.SetCraftsVO;
import com.iflytop.gd.common.enums.automaton.CraftEvents;
import com.iflytop.gd.common.enums.automaton.CraftStates;
import com.iflytop.gd.common.exception.AppException; import com.iflytop.gd.common.exception.AppException;
import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.common.result.ResultCode;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@ -35,10 +35,9 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
private final WebSocketService webSocketService; private final WebSocketService webSocketService;
private final CraftsStepService craftsStepService; private final CraftsStepService craftsStepService;
private final OresService oresService; private final OresService oresService;
private ExecutorService executor;
private final ConcurrentHashMap<String, CraftsContext> contextMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, CraftsContext> contextMap = new ConcurrentHashMap<>();
private final ConcurrentHashMap<String, Future<?>> futureMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, Future<?>> futureMap = new ConcurrentHashMap<>();
private ExecutorService executor;
@PostConstruct @PostConstruct
public void init() { public void init() {

5
src/main/java/com/iflytop/gd/app/service/CraftsStepService.java

@ -4,7 +4,6 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.iflytop.gd.app.core.CraftsDebugGenerator; import com.iflytop.gd.app.core.CraftsDebugGenerator;
import com.iflytop.gd.app.model.bo.CraftsStep; import com.iflytop.gd.app.model.bo.CraftsStep;
import com.iflytop.gd.app.model.bo.Point2D;
import com.iflytop.gd.app.model.bo.Point3D; import com.iflytop.gd.app.model.bo.Point3D;
import com.iflytop.gd.common.enums.AcidPumpDeviceCode; import com.iflytop.gd.common.enums.AcidPumpDeviceCode;
import com.iflytop.gd.common.enums.HeatModuleCode; import com.iflytop.gd.common.enums.HeatModuleCode;
@ -195,8 +194,8 @@ public class CraftsStepService {
double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度 double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "机械臂提升至移动拍子的安全高度", -capSafetyHeight)); webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "机械臂提升至移动拍子的安全高度", -capSafetyHeight));
deviceCommandUtilService.gantryZMoveBy(-capSafetyHeight);//机械臂提升至移动拍子的安全高度 deviceCommandUtilService.gantryZMoveBy(-capSafetyHeight);//机械臂提升至移动拍子的安全高度
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "提升拍子存放区1个位置", null));
deviceCommandUtilService.capMotorMove(1); //提升拍子存放区1个位置
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "提升拍子存放区", null));
deviceCommandUtilService.capUpBalance(); //提升拍子存放区
Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位 Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位
Point3D heatAreaCapClawSafetyHeightPoint3D = new Point3D(heatAreaCapClawPoint3D.getX(), heatAreaCapClawPoint3D.getY(), heatAreaCapClawPoint3D.getZ() - capSafetyHeight);//加热区拍子上方加上移动拍子的安全高度 Point3D heatAreaCapClawSafetyHeightPoint3D = new Point3D(heatAreaCapClawPoint3D.getX(), heatAreaCapClawPoint3D.getY(), heatAreaCapClawPoint3D.getZ() - capSafetyHeight);//加热区拍子上方加上移动拍子的安全高度
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "将机械臂移动至拍子上方加上移动拍子的安全高度", heatAreaCapClawSafetyHeightPoint3D)); webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "将机械臂移动至拍子上方加上移动拍子的安全高度", heatAreaCapClawSafetyHeightPoint3D));

2
src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java

@ -48,7 +48,7 @@ public class DeviceCommandService {
} }
} catch (Exception e) { } catch (Exception e) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
}finally {
} finally {
deviceStateService.setGantryArmStateIdle(false); deviceStateService.setGantryArmStateIdle(false);
} }
} }

33
src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java

@ -10,6 +10,8 @@ import com.iflytop.gd.common.enums.AcidPumpDeviceCode;
import com.iflytop.gd.common.enums.HeatModuleCode; import com.iflytop.gd.common.enums.HeatModuleCode;
import com.iflytop.gd.common.enums.cmd.CmdAxis; import com.iflytop.gd.common.enums.cmd.CmdAxis;
import com.iflytop.gd.common.enums.data.DevicePositionCode; import com.iflytop.gd.common.enums.data.DevicePositionCode;
import com.iflytop.gd.hardware.service.GDDeviceStatusService;
import com.iflytop.gd.hardware.type.IO.InputIOMId;
import com.iflytop.gd.hardware.type.LiquidDistributionArmDriver; import com.iflytop.gd.hardware.type.LiquidDistributionArmDriver;
import com.iflytop.gd.hardware.type.Servo.LiquidArmMId; import com.iflytop.gd.hardware.type.Servo.LiquidArmMId;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -25,6 +27,7 @@ public class DeviceCommandUtilService {
private final DeviceCommandService deviceCommandService; private final DeviceCommandService deviceCommandService;
private final DevicePositionService devicePositionService; private final DevicePositionService devicePositionService;
private final LiquidDistributionArmDriver liquidDistributionArmDriver; private final LiquidDistributionArmDriver liquidDistributionArmDriver;
private final GDDeviceStatusService gdDeviceStatusService;
/** /**
* 门电机移动 * 门电机移动
@ -231,14 +234,38 @@ public class DeviceCommandUtilService {
} }
/** /**
* 将拍子升降区抬升至可以获取的位置
*/
public void capUpBalance() throws Exception {
capUpBalance(null, null);
}
/**
* 将拍子升降区抬升至可以获取的位置
*/
public void capUpBalance(String cmdId, String cmdCode) throws Exception {
int capNum = 0;
for (InputIOMId inputIOMId : InputIOMId.values()) {
Boolean exist = gdDeviceStatusService.getInputState(inputIOMId);
if (exist) {
capNum++;
}
}
double capLiftingHeight = devicePositionService.getPosition(DevicePositionCode.capLiftingHeight).getDistance();
double capLiftingHeightSum = (6 - capNum) * capLiftingHeight;
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.trayMotorMove(capLiftingHeightSum);
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand);
commandWait(deviceCommandFuture);
}
/**
* 调整拍子升降电机位置 * 调整拍子升降电机位置
* *
* @param num 1为上升1格-1为下降1格 * @param num 1为上升1格-1为下降1格
*/ */
public void capMotorMove(String cmdId, String cmdCode, int num) throws Exception { public void capMotorMove(String cmdId, String cmdCode, int num) throws Exception {
double capHeight = 0.0; //TODO 每个拍子的高度 从数据库中获取
//TODO 获取当前拍子升降电机位置
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.trayMotorMove(num * capHeight);
double capLiftingHeight = devicePositionService.getPosition(DevicePositionCode.capLiftingHeight).getDistance();
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.trayMotorMove(num * capLiftingHeight);
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand);
commandWait(deviceCommandFuture); commandWait(deviceCommandFuture);
} }

4
src/main/java/com/iflytop/gd/app/service/DevicePositionService.java

@ -22,11 +22,11 @@ import java.util.stream.Collectors;
public class DevicePositionService extends ServiceImpl<DevicePositionMapper, DevicePosition> { public class DevicePositionService extends ServiceImpl<DevicePositionMapper, DevicePosition> {
@PostConstruct @PostConstruct
private void init(){
private void init() {
for (DevicePositionCode positionCode : DevicePositionCode.values()) { for (DevicePositionCode positionCode : DevicePositionCode.values()) {
System.out.println(positionCode.getName()); // 打印每个枚举常量的name属性 System.out.println(positionCode.getName()); // 打印每个枚举常量的name属性
DevicePosition devicePosition = this.getOne(new LambdaQueryWrapper<DevicePosition>().eq(DevicePosition::getCode, positionCode)); DevicePosition devicePosition = this.getOne(new LambdaQueryWrapper<DevicePosition>().eq(DevicePosition::getCode, positionCode));
if(devicePosition == null){
if (devicePosition == null) {
devicePosition = new DevicePosition(); devicePosition = new DevicePosition();
devicePosition.setCode(positionCode); devicePosition.setCode(positionCode);
devicePosition.setName(positionCode.getName()); devicePosition.setName(positionCode.getName());

2
src/main/java/com/iflytop/gd/app/service/GantryArmService.java

@ -32,6 +32,7 @@ public class GantryArmService {
liquidLock.unlock(); liquidLock.unlock();
} }
} }
/** /**
* 锁定加液区 * 锁定加液区
*/ */
@ -44,6 +45,7 @@ public class GantryArmService {
liquidLock.unlock(); liquidLock.unlock();
} }
} }
/** /**
* 释放加液区 * 释放加液区
*/ */

4
src/main/java/com/iflytop/gd/app/service/OresService.java

@ -5,12 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.app.model.vo.OresCraftsListVO;
import com.iflytop.gd.common.base.BasePageQuery;
import com.iflytop.gd.app.mapper.CraftsMapper; import com.iflytop.gd.app.mapper.CraftsMapper;
import com.iflytop.gd.app.mapper.OresMapper; import com.iflytop.gd.app.mapper.OresMapper;
import com.iflytop.gd.app.model.entity.Crafts; import com.iflytop.gd.app.model.entity.Crafts;
import com.iflytop.gd.app.model.entity.Ores; import com.iflytop.gd.app.model.entity.Ores;
import com.iflytop.gd.app.model.vo.OresCraftsListVO;
import com.iflytop.gd.common.base.BasePageQuery;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

4
src/main/java/com/iflytop/gd/app/service/SystemLogService.java

@ -1,16 +1,12 @@
package com.iflytop.gd.app.service; package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.app.mapper.SystemConfigMapper;
import com.iflytop.gd.app.mapper.SystemLogMapper; import com.iflytop.gd.app.mapper.SystemLogMapper;
import com.iflytop.gd.app.model.entity.SystemConfig;
import com.iflytop.gd.app.model.entity.SystemLog; import com.iflytop.gd.app.model.entity.SystemLog;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;

2
src/main/java/com/iflytop/gd/app/service/TaskStepsService.java

@ -13,7 +13,7 @@ import java.util.List;
*/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class TaskStepsService extends ServiceImpl<TaskStepsMapper, TaskSteps>{
public class TaskStepsService extends ServiceImpl<TaskStepsMapper, TaskSteps> {
private final TaskStepsMapper taskStepsMapper; private final TaskStepsMapper taskStepsMapper;
public List<TaskSteps> getTaskStepsByTaskId(Long taskId) { public List<TaskSteps> getTaskStepsByTaskId(Long taskId) {

2
src/main/java/com/iflytop/gd/app/service/TasksService.java

@ -24,7 +24,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class TasksService extends ServiceImpl<TasksMapper, Tasks>{
public class TasksService extends ServiceImpl<TasksMapper, Tasks> {
private final TasksMapper tasksMapper; private final TasksMapper tasksMapper;
private final UserService userService; private final UserService userService;

2
src/main/java/com/iflytop/gd/app/service/UserService.java

@ -1,9 +1,9 @@
package com.iflytop.gd.app.service; package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.common.enums.data.FixedUser;
import com.iflytop.gd.app.mapper.UserMapper; import com.iflytop.gd.app.mapper.UserMapper;
import com.iflytop.gd.app.model.entity.User; import com.iflytop.gd.app.model.entity.User;
import com.iflytop.gd.common.enums.data.FixedUser;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter; import lombok.Setter;

6
src/main/java/com/iflytop/gd/app/service/scheduled/FetchTemperatureScheduledTask.java

@ -22,7 +22,7 @@ public class FetchTemperatureScheduledTask {
@Scheduled(fixedRate = 30000) @Scheduled(fixedRate = 30000)
public void fetchTemperature() { public void fetchTemperature() {
try { try {
if(!deviceStateService.getDeviceState().isVirtual()){
if (!deviceStateService.getDeviceState().isVirtual()) {
Double heatModule01Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD1_ID); Double heatModule01Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD1_ID);
deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_01, heatModule01Temperature); deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_01, heatModule01Temperature);
@ -40,10 +40,10 @@ public class FetchTemperatureScheduledTask {
Double heatModule06Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD6_ID); Double heatModule06Temperature = gdDeviceStatusService.getHeaterRodTemperature(HeaterRodSlavedId.HEATER_ROD6_ID);
deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_06, heatModule06Temperature); deviceStateService.setHeatModuleStateTemperature(HeatModuleCode.heat_module_06, heatModule06Temperature);
}else{
} else {
List<HeatModuleState> heatModuleStateList = deviceStateService.getDeviceState().getHeatModule(); List<HeatModuleState> heatModuleStateList = deviceStateService.getDeviceState().getHeatModule();
for (HeatModuleState heatModuleState : heatModuleStateList) { for (HeatModuleState heatModuleState : heatModuleStateList) {
if(heatModuleState.isHeating()){
if (heatModuleState.isHeating()) {
deviceStateService.setHeatModuleStateTemperature(heatModuleState.getModuleCode(), 999); deviceStateService.setHeatModuleStateTemperature(heatModuleState.getModuleCode(), 999);
} }
} }

5
src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

@ -83,6 +83,11 @@ public enum DevicePositionCode {
*/ */
testTubeSafetyHeight(DevicePositionType.DISTANCE, "移动试管安全高度"), testTubeSafetyHeight(DevicePositionType.DISTANCE, "移动试管安全高度"),
/**
* 拍子升降高度
*/
capLiftingHeight(DevicePositionType.DISTANCE, "拍子升降高度"),
//////////////////////// ////////////////////////
/** /**

Loading…
Cancel
Save