package schema import ( "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // InboundOrder 入库单 type InboundOrder struct { ent.Schema } func (InboundOrder) Fields() []ent.Field { return []ent.Field{ field.String("inbound_no").Unique().Comment("入库单号"), // 类型:purchase(采购/结构件) semi(半成品) finished(成品) return(退货) other(其他入库) field.String("inbound_type").Default("purchase").Comment("入库类型 purchase/semi/finished/return/other"), field.String("material_code").Comment("物料编码"), field.String("material_name").Optional().Comment("物料名称(冗余)"), // 管理粒度 1批次(结构件)/2序列号(电气件),冗余自物料档案,便于单单据直接判断 field.Int("manage_mode").Default(1).Comment("管理粒度 1批次/2序列号"), field.String("batch_no").Optional().Comment("批次号(结构件)"), field.String("zone_code").Optional().Comment("入库区域"), field.Int("quantity").Default(0).Comment("本次入库总数量(批次合计或SN条数)"), field.String("operator").Optional().Comment("操作人"), field.String("remark").Optional().Comment("备注"), // 检测单号:入库检报告单号,必填以闭环质量追溯 field.String("inspection_no").Comment("检测单号(入库检报告单号)"), // 归属(客户诉求 问题记录 L54:入库记录增加 工单号/科技项目号/无) // ownership_type: workorder(工单号) / project(科技项目号) / none(无) field.String("ownership_type").Default("none").Comment("归属类型 workorder/project/none"), field.String("ownership_no").Optional().Comment("归属编号(工单号/科技项目号)"), field.Int64("created_at").DefaultFunc(nowUnix).Comment("创建时间"), } } func (InboundOrder) Indexes() []ent.Index { return []ent.Index{ index.Fields("material_code"), index.Fields("inbound_type"), index.Fields("operator"), } }