Files
bj_power/bj_power_mes/schema/equipment.go
T

69 lines
2.9 KiB
Go
Raw Normal View History

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("设备槽ä½åˆè¡¨"),
}
}