Browse Source

feat:初始化设备位置信息

master
白凤吉 3 months ago
parent
commit
ffba242cee
  1. 23
      src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java
  2. 16
      src/main/java/com/iflytop/gd/app/service/DevicePositionService.java
  3. 102
      src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

23
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);
}
}

16
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<DevicePositionMapper, DevicePosition> {
@PostConstruct
private void init(){
for (DevicePositionCode positionCode : DevicePositionCode.values()) {
System.out.println(positionCode.getName()); // 打印每个枚举常量的name属性
DevicePosition devicePosition = this.getOne(new LambdaQueryWrapper<DevicePosition>().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<DevicePositionVO> getList() {
List<DevicePosition> devicePositions = super.list();
return devicePositions.stream()

102
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;
}
}
Loading…
Cancel
Save