package schema import ( "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // ProducibleSnapshot 可生产数量快照(MES 计算后推送,WMS 只读展示) // // 业务背景(问题记录 L470-474):客户要求"已知原材料库存量和生产原材料清单计算出可生产数量"。 // BOM(单台用量)只在 MES,库存只在 WMS;为满足"两套系统互不影响可独立运行"的约束, // 由 MES 实时计算(经内部接口取 WMS 库存)并推送快照到本表,WMS 库存页卡片直接读快照展示。 // 每次推送全量覆盖(先清后写),synced_at 供界面标注数据时间。 type ProducibleSnapshot struct { ent.Schema } func (ProducibleSnapshot) Fields() []ent.Field { return []ent.Field{ field.String("product_code").Comment("产品编号"), field.String("product_name").Optional().Comment("产品名称"), field.Int("producible_qty").Default(0).Comment("可生产套数=min(各物料可用量/单台用量)"), field.String("short_text").Optional().Comment("短板物料描述(如 SCR-M4-12缺20)"), field.Int64("computed_at").Default(0).Comment("MES 计算时间(unix 秒)"), field.Int64("synced_at").DefaultFunc(nowUnix).Comment("同步到 WMS 时间(unix 秒)"), } } func (ProducibleSnapshot) Indexes() []ent.Index { return []ent.Index{ index.Fields("product_code"), } }