fix: rebuild MES as compilable go-zero+ent backend (renamed bj_power_mes), restore 3 workstation projects from pristine original, align naming; all Go projects go build clean
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"bj_power_mes/constants"
|
||||
|
||||
"entgo.io/ent"
|
||||
"entgo.io/ent/dialect"
|
||||
"entgo.io/ent/dialect/entsql"
|
||||
"entgo.io/ent/schema"
|
||||
"entgo.io/ent/schema/edge"
|
||||
@@ -11,47 +12,49 @@ import (
|
||||
"entgo.io/ent/schema/index"
|
||||
)
|
||||
|
||||
// RecipeStep å·¥åº�定义,工艺路线ä¸çš„å�•ä¸ªåŠ å·¥æ¥éª¤ã€?
|
||||
//
|
||||
// 设计原则:æ¥éª¤çš„èµ°å�‘ç”?Scheduler 层实时决ç–,ä¸�通过 JSON å—æ®µé…�置分支逻辑ã€?
|
||||
// nextStepDefault æ��供默认下一跳,Scheduler çš?Generator/Filter å�¯åœ¨è¿�è¡Œæ—¶æ ¹æ�®ç³»ç»Ÿçжæ€�覆盖ã€?
|
||||
// RecipeStep 工序定义
|
||||
// 第一阶段:以 stepId 为业务步骤标识,stepIndex 仅保留为排序字段。
|
||||
type RecipeStep struct {
|
||||
ent.Schema
|
||||
}
|
||||
|
||||
func (RecipeStep) Annotations() []schema.Annotation {
|
||||
return []schema.Annotation{
|
||||
entsql.Annotation{
|
||||
Table: "recipe_step",
|
||||
Options: "COMMENT='å·¥åº�定义表,工艺路线ä¸çš„å�•ä¸ªåŠ å·¥æ¥éª¤'",
|
||||
},
|
||||
entsql.WithComments(true),
|
||||
entsql.Annotation{Table: "recipe_step"},
|
||||
}
|
||||
}
|
||||
|
||||
func (RecipeStep) Fields() []ent.Field {
|
||||
return []ent.Field{
|
||||
field.Int("id").Positive().Comment("主键ID"),
|
||||
field.Int("recipeId").Comment("所属工艺路线ID"),
|
||||
field.String("stepId").MaxLen(20).Default("").Comment("业务æ¥éª¤ID,如 OP10/OP20"),
|
||||
field.Int("id").Positive(),
|
||||
field.Int("recipeId").Comment("工艺路线ID"),
|
||||
field.String("stepId").MaxLen(20).Default("").Comment("业务步骤ID"),
|
||||
field.String("stepName").MaxLen(50).Comment("工序名称"),
|
||||
field.Int("stepIndex").Comment("工���"),
|
||||
field.Int("stepIndex").Comment("工序序号(排序字段)"),
|
||||
field.Enum("stepType").
|
||||
GoType(constants.StepType("")).
|
||||
Comment("工�类型:OPERATION/BUFFER_STAGE/AIR_BLOW/LOAD_DOCK/UNLOAD_DOCK"),
|
||||
field.String("resourceType").Default("").Comment("ç›®æ ‡è®¾å¤‡ç±»åž‹ç¼–ç �,如 GRINDER/FULL_CHECK,手æŒ�æ“�作时å�¯ä¸ºç©?),
|
||||
field.String("nextStepDefault").Default("").Comment("默认下一æ¥stepId,æ£å¸¸æµ�è½¬æ—¶çš„ç›®æ ‡æ¥éª?),
|
||||
field.Int("priority").Default(2).Comment("调度优先级,数值越å°�越优先(磨床å�–æ–™ç‰é«˜ä¼˜å…ˆï¼‰ï¼ŒtrySchedule 按当å‰�æ¥éª¤ä¼˜å…ˆçº§æŽ’åº�"),
|
||||
field.Int("timeoutSeconds").Default(-1).Comment("超时秒数�1=一致监�轮询兜底(�超时),0=�超时,>0=超时秒数"),
|
||||
field.Bool("holdUntilHandover").Default(false).Comment("本æ¥éª¤å®Œæˆ�å�Žæ˜¯å�¦æŒ‚èµ·ç‰å¾…交接(æ�¢æ–™åœºæ™¯ï¼šç£¨å®Œçš„工件ç‰ä¸‹ä¸€ä»¶æ�¥æ�¢æ–™äº¤æŽ¥ï¼Œçжæ€�è¿›å…?holding,ä¸�自动推进ï¼?),
|
||||
field.String("fallbackNextStep").MaxLen(20).Default("").Comment("holding æŒ‚èµ·æ—¶è‹¥æ— å�Žç»§å·¥ä»¶äº¤æŽ¥ï¼Œèµ°æ¤æ¥éª¤æ”¶å°¾ï¼ˆå¦‚最å�Žä¸€ä»¶è‡ªè¡Œå�–料)"),
|
||||
field.String("desc").Default("").Comment("工��述"),
|
||||
Comment("工序类型"),
|
||||
field.String("resourceType").Default("").Comment("工站设备类型(手持操作可为空)"),
|
||||
field.String("toolType").Default("").Comment("手持工具类型:SCANNER, LASER"),
|
||||
field.JSON("allowedResources", []string{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
}).Comment("允许的设备ID列表"),
|
||||
field.JSON("processingParams", map[string]any{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
}).Comment("加工参数"),
|
||||
field.String("nextStepDefault").Default("").Comment("默认下一步 stepId"),
|
||||
field.JSON("nextStepBranches", map[string]any{}).Optional().SchemaType(map[string]string{
|
||||
dialect.Postgres: "jsonb",
|
||||
}).Comment("条件分支:条件→stepId"),
|
||||
field.Int("stepTimeout").Default(0).Comment("工序超时秒数"),
|
||||
field.Int("restoreStep").Default(-1).Comment("恢复时回退步数(-1=不回退)"),
|
||||
field.String("desc").Default("").Comment("描述"),
|
||||
}
|
||||
}
|
||||
|
||||
func (RecipeStep) Edges() []ent.Edge {
|
||||
return []ent.Edge{
|
||||
edge.From("recipe", Recipe.Type).Ref("steps").Field("recipeId").Unique().Required().Comment("所属工艺路�),
|
||||
edge.From("recipe", Recipe.Type).Ref("steps").Field("recipeId").Unique().Required(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user