chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names

This commit is contained in:
SunYF
2026-08-27 10:09:54 +08:00
commit 1f0ee844a4
408 changed files with 102201 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
package schema
import (
"time"
"bj_power_mes/constants"
"entgo.io/ent"
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/schema"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/field"
)
// Equipment 设备实例,车间中实际存在的æ¯å°ç‰©ç†è®¾å¤‡ã€?
//
// 框架级通用抽象:ä¸åŒºåˆ†å·¥ç«™/æ¬è¿è®¾å¤‡çš„æ˜¾å¼åˆ†ç±»å­—段ã€?
// - slotCount >= 1 â†?å·¥ç«™ï¼ˆæŒæœ‰å·¥ä»¶ï¼Œå¯æ‰§è¡ŒåŠ å·¥ã€æ£€æµ‹ã€æš‚存)
// - slotCount = 0 â†?æ¬è¿è®¾å¤‡ï¼ˆæ— æ§½ä½ï¼Œä¸²è¡Œäº’斥,在工站间移动工件ï¼?
// 行为差异由信å·è¡¨ï¼ˆdoneSignalName)和工艺步骤(resourceType)驱动ã€?
type Equipment struct {
ent.Schema
}
func (Equipment) Annotations() []schema.Annotation {
return []schema.Annotation{
entsql.Annotation{
Table: "equipment",
Options: "COMMENT='设备实例表,记录车间æ¯å°ç‰©ç†è®¾å¤‡çš„é…置信æ?",
},
entsql.WithComments(true),
}
}
func (Equipment) Fields() []ent.Field {
return []ent.Field{
field.Int("id").Positive().Comment("主键ID"),
field.String("name").MaxLen(50).Comment("设备åç§°"),
field.Int("equipmentTypeId").Comment("设备类型ID"),
field.Enum("status").
GoType(constants.EquipmentStatus("")).
Default(string(constants.EquipmentStatus_Idle)).
Comment("设备è¿è¡Œçжæ€?),
field.Int("slotCount").Default(1).Comment("æ§½ä½æ°éï¼?=æ¬è¿è®¾å¤ï¼?=1=å·¥ç«"),
field.Bool("exchange").Default(false).Comment("æ˜¯å¦æ¯æŒæ¢æåè®®"),
field.Bool("batch").Default(false).Comment("æ˜¯å¦æ¹éå®Œæˆæ¨¡å¼"),
field.Bool("dualGrip").Default(false).Comment("是å¦åŒå¤¹æŒï¼ˆä»æ¬è¿è®¾å¤ï¼"),
field.String("ipAddress").Default("").Comment("设å¤IP地å"),
field.String("location").Default("").Comment("ç©çä½ç½®æè¿°"),
field.String("doneSignalName").Default("").Comment("加工完æˆä¿¡å·å,为空=æ PLCä¿¡å·"),
field.String("ngSignalName").Default("").Comment("æ£æµNGä¿¡å·å,为空=æ æ­¤ä¿¡å·"),
field.String("remark").Default("").Comment("夿³¨"),
// 设备å ç”¨ï¼šè°å³å°†ä½¿ç”¨è®¾å¤‡è°æŠ¢å é”,è°ä¸Šé”è°è§£é”ï¼›å‰ç«¯äººå·¥è§£é”按钮å¯è§£ä»»ä½•é”ã€?
// occupiedBy 为空 = 未å ç”¨ï¼Œéžç©º = 被å ç”¨ï¼ˆROBOT/AGV/MANUALï¼?
field.String("occupiedBy").Default("").Comment("å ç¨è:ROBOT/AGV/MANUAL"),
field.String("occupiedReason").Default("").Comment("å ç¨åŽŸå "),
field.Time("occupiedAt").Optional().Nillable().Comment("å ç¨å¼å§æé?),
field.Time("createdAt").Default(time.Now).Optional().Nillable().Comment("创建时间"),
field.Time("updatedAt").Default(time.Now).UpdateDefault(time.Now).Optional().Nillable().Comment("æ›´æ–°æ—¶é—´"),
}
}
func (Equipment) Edges() []ent.Edge {
return []ent.Edge{
edge.From("equipmentType", EquipmentType.Type).Ref("equipments").Field("equipmentTypeId").Unique().Required().Comment("所属设备类�),
edge.To("slots", EquipmentSlot.Type).Comment("è®¾å¤æ§½ä½åˆè¡¨"),
}
}