zzw
1 天以前 0642bc9c44d1c8277ada33059c4a3e6156335b30
emergency-repair-server/src/main/java/com/emergencyrepair/business/entity/ProductNode.java
@@ -9,23 +9,182 @@
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Locale;
@Data
@TableName("LX.T_PRODUCT_TREE")
@TableName("LX.ZT_BOAT_TREE")
public class ProductNode {
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    /**
     * 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("PARENT_ID") private Long parentId;
    @TableField("NODE_LEVEL") private Integer nodeLevel;
    @TableField("NODE_TYPE") private String nodeType;
    @TableField("NAME") private String name;
    @TableField("CODE") private String code;
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("BASE_EQUIPMENT_ID") private Long baseEquipmentId;
    @TableField("SORT_NO") private Integer sortNo;
    @TableField("REMARK") private String remark;
    @TableField("CREATE_TIME") private LocalDateTime createTime;
    @TableField("UPDATE_TIME") private LocalDateTime updateTime;
    @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);
    }
}