36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
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("进行中/领料完结"),
|
||
|
|
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"),
|
||
|
|
}
|
||
|
|
}
|