Files
bj_power/bj_power_wms/schema/producible_snapshot.go
SunYF 1cc93795ce feat(mes): 添加定时同步可生产数量到WMS及BOM项相关标准字段
- 在main.go中添加定时任务每10分钟同步可生产数量到WMS系统
- 为BomItem实体添加relatedStandard字段及相关CRUD方法
- 为InspectionRecord实体添加reportNo、materialCode、materialName等字段
- 更新ent schema确保新字段的验证和默认值设置
- 添加必要的数据库迁移和字段映射逻辑
2026-09-17 12:49:07 +08:00

35 lines
1.4 KiB
Go

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"),
}
}