From ac966af3d126d59081d119e05ba02f946257f669 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sun, 26 Jul 2026 23:22:36 +0800
Subject: [PATCH] fix: 移除所有help中的等号格式
---
internal/classify/entities.go | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 164 insertions(+), 0 deletions(-)
diff --git a/internal/classify/entities.go b/internal/classify/entities.go
new file mode 100644
index 0000000..14e4c7c
--- /dev/null
+++ b/internal/classify/entities.go
@@ -0,0 +1,164 @@
+package classify
+
+import (
+ "encoding/json"
+ "fmt"
+ "os"
+ "path/filepath"
+)
+
+// Entity 实体定义
+type Entity struct {
+ ID string `json:"id"`
+ Name string `json:"name"`
+ Aliases []string `json:"aliases"`
+ Platform string `json:"platform,omitempty"`
+ Description string `json:"description,omitempty"`
+ Users []string `json:"users,omitempty"`
+ URL string `json:"url,omitempty"`
+}
+
+// Entities 实体集合
+type Entities struct {
+ Platforms []Entity `json:"platforms"`
+ Apps []Entity `json:"apps"`
+ Devices []Entity `json:"devices"`
+}
+
+// Relation 实体关系
+type Relation struct {
+ From string `json:"from"`
+ To string `json:"to"`
+ Type string `json:"type"`
+ Description string `json:"description"`
+}
+
+// Relations 关系集合
+type Relations struct {
+ Relations []Relation `json:"relations"`
+}
+
+// ExtractEntities 从实体目录提取实体信息
+func ExtractEntities(vaultPath string) (*Entities, *Relations, error) {
+ entityDir := filepath.Join(vaultPath, "实体")
+
+ // 检查目录是否存在
+ if _, err := os.Stat(entityDir); os.IsNotExist(err) {
+ return nil, nil, fmt.Errorf("实体目录不存在: %s", entityDir)
+ }
+
+ // 预定义实体(从设计文档)
+ entities := &Entities{
+ Platforms: []Entity{
+ {
+ ID: "elc",
+ Name: "电子秤平台",
+ Aliases: []string{"电子秤后台", "elc平台", "elc.zhiheiot.com"},
+ URL: "https://elc.zhiheiot.com",
+ Description: "气站充装作业管理系统",
+ Users: []string{"气站站长", "充装员", "开票员"},
+ },
+ {
+ ID: "ops",
+ Name: "运营管理平台",
+ Aliases: []string{"运营平台", "运营后台", "rb.zhiheiot.com"},
+ URL: "https://rb.zhiheiot.com",
+ Description: "气站运营管理系统",
+ Users: []string{"老板", "管理层", "客服"},
+ },
+ },
+ Apps: []Entity{
+ {
+ ID: "safety",
+ Name: "安全用气App",
+ Aliases: []string{"配送App", "电子秤配送App"},
+ Platform: "elc",
+ Description: "二维码配送",
+ },
+ {
+ ID: "delivery",
+ Name: "易配送App",
+ Aliases: []string{"配送App", "运营配送"},
+ Platform: "ops",
+ Description: "NFC识别芯片配送",
+ },
+ {
+ ID: "assistant",
+ Name: "艾信助手App",
+ Aliases: []string{"建档App"},
+ Platform: "both",
+ Description: "融合两平台建档",
+ },
+ },
+ Devices: []Entity{
+ {
+ ID: "scale",
+ Name: "电子秤",
+ Aliases: []string{"充装电子秤"},
+ Platform: "elc",
+ Description: "充装作业设备",
+ },
+ {
+ ID: "gun",
+ Name: "智能枪",
+ Aliases: []string{"充装枪", "智能充装枪"},
+ Platform: "both",
+ Description: "共有硬件",
+ },
+ {
+ ID: "valve",
+ Name: "智能阀",
+ Aliases: []string{"智能角阀"},
+ Platform: "ops",
+ Description: "气瓶阀门",
+ },
+ {
+ ID: "box",
+ Name: "艾信盒子",
+ Aliases: []string{"4G通信设备"},
+ Platform: "both",
+ Description: "共有硬件",
+ },
+ },
+ }
+
+ // 预定义关系
+ relations := &Relations{
+ Relations: []Relation{
+ {From: "gun", To: "scale", Type: "connects", Description: "智能枪连接电子秤"},
+ {From: "gun", To: "box", Type: "syncs", Description: "充装数据同步到艾信盒子"},
+ {From: "box", To: "elc", Type: "uploads", Description: "上传充装记录"},
+ {From: "box", To: "ops", Type: "uploads", Description: "上传充装记录"},
+ {From: "valve", To: "delivery", Type: "identified_by", Description: "NFC识别"},
+ {From: "safety", To: "elc", Type: "belongs_to", Description: "属于电子秤平台"},
+ {From: "delivery", To: "ops", Type: "belongs_to", Description: "属于运营管理平台"},
+ },
+ }
+
+ return entities, relations, nil
+}
+
+// SaveEntities 保存实体和关系到 JSON 文件
+func SaveEntities(vaultPath string, entities *Entities, relations *Relations) error {
+ // 保存 entities.json
+ entitiesPath := filepath.Join(vaultPath, "entities.json")
+ entitiesData, err := json.MarshalIndent(entities, "", " ")
+ if err != nil {
+ return fmt.Errorf("序列化 entities 失败: %w", err)
+ }
+ if err := os.WriteFile(entitiesPath, entitiesData, 0644); err != nil {
+ return fmt.Errorf("写入 entities.json 失败: %w", err)
+ }
+
+ // 保存 relations.json
+ relationsPath := filepath.Join(vaultPath, "relations.json")
+ relationsData, err := json.MarshalIndent(relations, "", " ")
+ if err != nil {
+ return fmt.Errorf("序列化 relations 失败: %w", err)
+ }
+ if err := os.WriteFile(relationsPath, relationsData, 0644); err != nil {
+ return fmt.Errorf("写入 relations.json 失败: %w", err)
+ }
+
+ return nil
+}
--
Gitblit v1.9.1