From ce841ddf85c48bae32f9e3068403fdfe98ac8711 Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期三, 07 十月 2026 12:35:09 +0800
Subject: [PATCH] feat: add extension defaults for fault reporting
---
emergency-repair-server/src/main/java/com/emergencyrepair/business/entity/ProductNode.java | 185 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 172 insertions(+), 13 deletions(-)
diff --git a/emergency-repair-server/src/main/java/com/emergencyrepair/business/entity/ProductNode.java b/emergency-repair-server/src/main/java/com/emergencyrepair/business/entity/ProductNode.java
index 0853979..a1e87ff 100644
--- a/emergency-repair-server/src/main/java/com/emergencyrepair/business/entity/ProductNode.java
+++ b/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);
+ }
}
--
Gitblit v1.9.1