Files
bj_power/bj_power_wms/schema/material.go
T
SunYF 62e45b7379 feat: 完成附件存储重构与磁盘监控功能,同步物料档案与入库单规则更新
1.  新增跨平台磁盘空间监控能力,每日7点自动检测附件目录剩余空间,触发阈值告警
2.  重构附件存储方案为年/月/日/文件类型分层结构,统一MES与WMS的附件管理逻辑
3.  对齐物料档案与入库单的质量状态校验规则,仅合格品计入库存与出库
4.  实现入库单作废功能与区域库位的多级父子结构管理
5.  删除物料简称字段,补充规格型号与单位必填项,统一系统数据口径
6.  新增附件中心与磁盘状态查询接口,完善权限控制与操作日志
2026-09-19 10:54:15 +08:00

59 lines
3.2 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("物料真实名称"),
// 「简称」字段已按 2026-09-19 用户裁决整体删除(新增/编辑表单不再出现)。
// 字段级必填口径:图号 code / 名称 name / 规格 spec / 单位 unit / 品类 item_type /
// 类型 manage_mode / 安全库存 safety_stock 均必填;仅「说明」description 可空。
// 必填在 handler 层校验(DB 列保持可空,避免存量行 NULL 扫描失败)。
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("物料模板编码(物料种类)"),
// 图号已按客户裁决(问题记录 L18)与物料编码合并:code 即图号,界面统一显示「图号」,
// 不再保留独立 drawing_no 字段(避免两个「图号」并存造成混乱)。
// 安全库存:低于该值触发缺货预警(客户诉求 问题记录 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"),
}
}