2026-08-28 15:06:01 +08:00
|
|
|
package schema
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"entgo.io/ent"
|
|
|
|
|
"entgo.io/ent/schema/field"
|
|
|
|
|
"entgo.io/ent/schema/index"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// OrderMaterialLedger 工单物料台账(WMS 侧)
|
|
|
|
|
// 维护:物料总需求数量、累计已出库数量、剩余待出库数量
|
|
|
|
|
// 强约束:累计出库 ≤ 工单总需求量;等于时领料完结,禁止再出库
|
|
|
|
|
type OrderMaterialLedger struct {
|
|
|
|
|
ent.Schema
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (OrderMaterialLedger) Fields() []ent.Field {
|
|
|
|
|
return []ent.Field{
|
|
|
|
|
field.String("order_no").Comment("工单号"),
|
|
|
|
|
field.String("material_code").Comment("物料编码"),
|
|
|
|
|
field.String("material_name").Optional().Comment("物料名称(冗余)"),
|
|
|
|
|
field.Int("total_qty").Default(0).Comment("物料总需求数量"),
|
|
|
|
|
field.Int("out_qty").Default(0).Comment("累计已出库数量"),
|
|
|
|
|
field.String("status").Default("进行中").Comment("进行中/领料完结"),
|
2026-09-15 16:37:39 +08:00
|
|
|
// 目标工位:备料送到哪个装配工位(客户诉求 L297-300;MES 同步台账时传入)
|
|
|
|
|
field.String("target_station").Optional().Comment("目标工位(装配工位号)"),
|
2026-08-28 15:06:01 +08:00
|
|
|
field.String("remark").Optional().Comment("备注"),
|
|
|
|
|
field.Int64("created_at").DefaultFunc(nowUnix),
|
|
|
|
|
field.Int64("updated_at").DefaultFunc(nowUnix),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (OrderMaterialLedger) Indexes() []ent.Index {
|
|
|
|
|
return []ent.Index{
|
|
|
|
|
index.Fields("order_no"),
|
|
|
|
|
index.Fields("material_code"),
|
|
|
|
|
}
|
|
|
|
|
}
|