From ffba242ceef7ff00603f802198e54d72953cdbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 8 May 2025 15:04:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=BD=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gd/app/model/entity/DevicePosition.java | 23 +++++ .../gd/app/service/DevicePositionService.java | 16 ++++ .../gd/common/enums/data/DevicePositionCode.java | 102 ++++++++++++++++++++- 3 files changed, 140 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java b/src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java index ba64e44..977031a 100644 --- a/src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java +++ b/src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java @@ -1,6 +1,8 @@ package com.iflytop.gd.app.model.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.iflytop.gd.app.model.bo.Point2D; +import com.iflytop.gd.app.model.bo.Point3D; import com.iflytop.gd.common.base.BaseEntity; import com.iflytop.gd.common.enums.data.DevicePositionCode; import com.iflytop.gd.common.enums.data.DevicePositionType; @@ -10,6 +12,8 @@ import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Arrays; + @EqualsAndHashCode(callSuper = true) @Schema(description = "设备位置记录") @TableName("device_position") @@ -30,5 +34,24 @@ public class DevicePosition extends BaseEntity { @Schema(description = "位置数据") private String position; + public Point3D getPoint3D() { + String[] positions = position.split(","); + Double[] doublePositions = Arrays.stream(positions) + .map(Double::parseDouble) + .toArray(Double[]::new); + return new Point3D(doublePositions[0], doublePositions[1], doublePositions[2]); + } + + public Point2D getPoint2D() { + String[] positions = position.split(","); + Double[] doublePositions = Arrays.stream(positions) + .map(Double::parseDouble) + .toArray(Double[]::new); + return new Point2D(doublePositions[0], doublePositions[1]); + } + + public Double getDistance() { + return Double.valueOf(position); + } } \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/app/service/DevicePositionService.java b/src/main/java/com/iflytop/gd/app/service/DevicePositionService.java index eed748f..8368bc9 100644 --- a/src/main/java/com/iflytop/gd/app/service/DevicePositionService.java +++ b/src/main/java/com/iflytop/gd/app/service/DevicePositionService.java @@ -6,6 +6,7 @@ import com.iflytop.gd.app.mapper.DevicePositionMapper; import com.iflytop.gd.app.model.entity.DevicePosition; import com.iflytop.gd.app.model.vo.DevicePositionVO; import com.iflytop.gd.common.enums.data.DevicePositionCode; +import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -20,6 +21,21 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class DevicePositionService extends ServiceImpl { + @PostConstruct + private void init(){ + for (DevicePositionCode positionCode : DevicePositionCode.values()) { + System.out.println(positionCode.getName()); // 打印每个枚举常量的name属性 + DevicePosition devicePosition = this.getOne(new LambdaQueryWrapper().eq(DevicePosition::getCode, positionCode)); + if(devicePosition == null){ + devicePosition = new DevicePosition(); + devicePosition.setCode(positionCode); + devicePosition.setName(positionCode.getName()); + devicePosition.setType(positionCode.getType()); + this.save(devicePosition); + } + } + } + public List getList() { List devicePositions = super.list(); return devicePositions.stream() diff --git a/src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java b/src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java index e38d33e..a819252 100644 --- a/src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java +++ b/src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java @@ -7,6 +7,106 @@ import lombok.Getter; */ @Getter public enum DevicePositionCode { - test + /** + * 托盘夹取位置 + */ + trayPick(DevicePositionType.DISTANCE, "托盘夹取位置"), + /** + * 托盘夹紧位置 + */ + trayGrip(DevicePositionType.DISTANCE, "托盘夹紧位置"), + + /** + * 加液区原点 + */ + liquidAreaOrigin(DevicePositionType.POINT_3D, "加液区原点"), + + /** + * 加热区1原点 + */ + heatArea1Origin(DevicePositionType.POINT_3D, "加热区1原点"), + + /** + * 加热区2原点 + */ + heatArea2Origin(DevicePositionType.POINT_3D, "加热区2原点"), + + /** + * 加热区3原点 + */ + heatArea3Origin(DevicePositionType.POINT_3D, "加热区3原点"), + + /** + * 加热区4原点 + */ + heatArea4Origin(DevicePositionType.POINT_3D, "加热区4原点"), + + /** + * 加热区5原点 + */ + heatArea5Origin(DevicePositionType.POINT_3D, "加热区5原点"), + + /** + * 加热区6原点 + */ + heatArea6Origin(DevicePositionType.POINT_3D, "加热区6原点"), + + /** + * 试管间距 + */ + testTubeSpacing(DevicePositionType.DISTANCE, "试管间距"), + + /** + * 试管夹取位置 + */ + testTubePick(DevicePositionType.DISTANCE, "试管夹取位置"), + + /** + * 试管夹紧位置 + */ + testTubeGrip(DevicePositionType.DISTANCE, "试管夹紧位置"), + + /** + * 拍子相对原点位置 + */ + capRelativeToOrigin(DevicePositionType.POINT_3D, "拍子相对原点位置"), + + /** + * 拍子夹取位置 + */ + capPick(DevicePositionType.DISTANCE, "拍子夹取位置"), + + /** + * 拍子夹紧位置 + */ + capGrip(DevicePositionType.DISTANCE, "拍子夹紧位置"), + + /** + * 拍子存放区位置 + */ + capStorage(DevicePositionType.POINT_3D, "拍子存放区位置"), + + /** + * 拍子相对原点位置 + */ + capRelativePosition(DevicePositionType.POINT_3D, "拍子相对原点位置"), + + /** + * 托盘相对原点位置 + */ + trayRelativeToOrigin(DevicePositionType.POINT_3D, "托盘相对原点位置"), + + /** + * 试管相对原点位置 + */ + testTubeRelativeToOrigin(DevicePositionType.POINT_3D, "试管相对原点位置"); + + private final DevicePositionType type; + private final String name; + + DevicePositionCode(DevicePositionType type, String name) { + this.type = type; + this.name = name; + } }