Files
bj_power/bj_power_wms/schema/material.go
T
SunYF 4a5e2d7bac feat: 完成多模块迭代更新
- 新增过程巡检按步骤上报、数量不符上报、工位退料功能
- 增加工单工程编号三级归属字段
- 新增物料安全库存与缺货预警
- 新增附件管理、退库单管理模块
- 优化生产看板展示逻辑与前端页面文案
- 清理冗余的工艺路线相关代码与备份文件
2026-09-15 16:37:39 +08:00

56 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package schema
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/index"
)
// Material 物料档案(主数据)
// 全系统物料的唯一定义来源,入库/出库/库存/检验都通过 material_code 关联本表。
// 管理粒度由 manage_mode 决定,贯穿整个库存链路:
// - manage_mode=1 结构件:按"批次"管理,一次到货入一批,库存以 quantity 计数;
// - manage_mode=2 电气件:按"SN 序列号"逐件管理,库存以单件行计数,可单件追溯。
// 品类由 item_type 区分(与库存主表 inventories.category 对应):
// - item_type=1 原材料 / 2 半成品 / 3 成品(成品即"产品型号"档案,MES 实时从本表拉取,
// 消除两系统双录——2026-09-08 并表定稿)。
// 注意:物料档案只描述"这个物料是什么、怎么管",不承载生命周期状态。
type Material struct {
ent.Schema
}
func (Material) Fields() []ent.Field {
return []ent.Field{
field.String("code").Unique().Comment("物料唯一编码"),
field.String("name").Comment("物料真实名称"),
field.String("short_name").Optional().Comment("简称"),
field.String("spec").Optional().Comment("规格型号"),
field.String("unit").Optional().Comment("单位"),
field.String("description").Optional().Comment("描述"),
// 品类:1=原材料 2=半成品 3=成品 4=其他(辅料/工装/试验设备,客户诉求 问题记录 L50)
field.Int("item_type").Default(1).Comment("品类 1原材料/2半成品/3成品/4其他"),
// 管理粒度:1=批次管理(结构件) 2=序列号管理(电气件)
field.Int("manage_mode").Default(1).Comment("管理粒度 1批次/2序列号"),
field.Bool("is_batch_managed").Default(false).Comment("是否批次管理"),
field.Bool("is_serial_managed").Default(false).Comment("是否序列号管理"),
// 所属物料模板(种类)
field.String("template_code").Optional().Comment("物料模板编码(物料种类)"),
// 图号(零件图纸编号,用于装配定位与追溯,可选)
field.String("drawing_no").Optional().Comment("图号(图纸编号)"),
// 安全库存:低于该值触发缺货预警(客户诉求 问题记录 L473:安全库存/缺货预警进 WMS 首页)
field.Int("safety_stock").Default(0).Comment("安全库存(低于则缺货预警,0=不预警)"),
// 启用状态:停用后不在新建工单/备料下拉出现(对齐 MES 产品型号 isActive
field.Bool("is_active").Default(true).Comment("是否启用"),
field.Int64("created_at").DefaultFunc(nowUnix).Comment("创建时间"),
field.Int64("updated_at").DefaultFunc(nowUnix).Comment("更新时间"),
}
}
func (Material) Indexes() []ent.Index {
return []ent.Index{
index.Fields("name"),
index.Fields("template_code"),
index.Fields("item_type"),
}
}