package com.emergencyrepair.business.entity;
|
|
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import lombok.Data;
|
|
import java.time.LocalDateTime;
|
import java.util.Locale;
|
|
@Data
|
@TableName("LX.ZT_BOAT_TREE")
|
public class ProductNode {
|
/**
|
* Business node id. The external tree uses INFO_ID for the node and
|
* CONNECT_ID for its parent, while ID is the physical relation row id.
|
*/
|
@TableId(value = "INFO_ID", type = IdType.INPUT)
|
@JsonSerialize(using = ToStringSerializer.class)
|
private Long id;
|
|
@TableField("ID")
|
private String recordId;
|
|
@JsonSerialize(using = ToStringSerializer.class)
|
@TableField("CONNECT_ID")
|
private Long parentId;
|
|
@TableField("CONNECT_GROUP")
|
private String connectGroup;
|
|
@TableField("LABEL")
|
private String name;
|
|
@TableField("LAYER")
|
private String layer;
|
|
@TableField("PROJECT")
|
private String project;
|
|
@TableField("SORT")
|
private Integer sortNo;
|
|
@TableField("ISDELETE")
|
private String isDelete;
|
|
@TableField("CREATE_BY")
|
private String createBy;
|
|
@TableField("CREATE_TIME")
|
private LocalDateTime createTime;
|
|
@TableField(exist = false)
|
private Integer nodeLevel;
|
|
@TableField(exist = false)
|
private String nodeType;
|
|
@TableField(exist = false)
|
private String code;
|
|
@TableField(exist = false)
|
private Long baseEquipmentId;
|
|
@TableField(exist = false)
|
private String remark;
|
|
@TableField(exist = false)
|
private LocalDateTime updateTime;
|
|
public Integer getNodeLevel() {
|
if (nodeLevel != null) {
|
return nodeLevel;
|
}
|
return levelForLayer(layer);
|
}
|
|
public void setNodeLevel(Integer nodeLevel) {
|
this.nodeLevel = nodeLevel;
|
if (layer == null && nodeLevel != null) {
|
layer = layerForLevel(nodeLevel);
|
}
|
}
|
|
public String getNodeType() {
|
if (nodeType != null) {
|
return nodeType;
|
}
|
return typeForLayer(layer);
|
}
|
|
public void setNodeType(String nodeType) {
|
this.nodeType = nodeType;
|
if (layer == null && nodeType != null) {
|
layer = layerForType(nodeType);
|
}
|
}
|
|
public static Integer levelForLayer(String value) {
|
String layer = normalize(value);
|
if ("model".equals(layer)) {
|
return 1;
|
}
|
if ("side".equals(layer)) {
|
return 2;
|
}
|
if ("system1".equals(layer)) {
|
return 3;
|
}
|
if ("system2".equals(layer)) {
|
return 4;
|
}
|
if ("equipment".equals(layer)) {
|
return 5;
|
}
|
return layer.isEmpty() ? null : 6;
|
}
|
|
public static String typeForLayer(String value) {
|
Integer level = levelForLayer(value);
|
if (level == null) {
|
return null;
|
}
|
if (level == 1) {
|
return "MODEL";
|
}
|
if (level == 2) {
|
return "X_NO";
|
}
|
if (level == 3) {
|
return "SYSTEM1";
|
}
|
if (level == 4) {
|
return "SYSTEM2";
|
}
|
if (level == 5) {
|
return "DEVICE";
|
}
|
return normalize(value).toUpperCase(Locale.ROOT);
|
}
|
|
public static String layerForLevel(Integer level) {
|
if (level == null) {
|
return null;
|
}
|
if (level == 1) {
|
return "model";
|
}
|
if (level == 2) {
|
return "side";
|
}
|
if (level == 3) {
|
return "system1";
|
}
|
if (level == 4) {
|
return "system2";
|
}
|
if (level == 5) {
|
return "equipment";
|
}
|
return null;
|
}
|
|
public static String layerForType(String type) {
|
String value = normalize(type);
|
if ("MODEL".equals(value)) {
|
return "model";
|
}
|
if ("X_NO".equals(value) || "XNUMBER".equals(value)) {
|
return "side";
|
}
|
if ("SYSTEM1".equals(value)) {
|
return "system1";
|
}
|
if ("SYSTEM2".equals(value)) {
|
return "system2";
|
}
|
if ("DEVICE".equals(value) || "EQUIPMENT".equals(value)) {
|
return "equipment";
|
}
|
return value.isEmpty() ? null : value.toLowerCase(Locale.ROOT);
|
}
|
|
private static String normalize(String value) {
|
return value == null ? "" : value.trim().toLowerCase(Locale.ROOT);
|
}
|
}
|