1. 新增跨平台磁盘空间监控能力,每日7点自动检测附件目录剩余空间,触发阈值告警 2. 重构附件存储方案为年/月/日/文件类型分层结构,统一MES与WMS的附件管理逻辑 3. 对齐物料档案与入库单的质量状态校验规则,仅合格品计入库存与出库 4. 实现入库单作废功能与区域库位的多级父子结构管理 5. 删除物料简称字段,补充规格型号与单位必填项,统一系统数据口径 6. 新增附件中心与磁盘状态查询接口,完善权限控制与操作日志
59 lines
3.2 KiB
Go
59 lines
3.2 KiB
Go
package schema
|
|
|
|
import (
|
|
"entgo.io/ent"
|
|
"entgo.io/ent/schema/field"
|
|
"entgo.io/ent/schema/index"
|
|
)
|
|
|
|
// InboundOrder 入库单
|
|
type InboundOrder struct {
|
|
ent.Schema
|
|
}
|
|
|
|
func (InboundOrder) Fields() []ent.Field {
|
|
return []ent.Field{
|
|
field.String("inbound_no").Unique().Comment("入库单号"),
|
|
// 类型:purchase(采购/结构件) semi(半成品) finished(成品) return(退货) other(其他入库)
|
|
field.String("inbound_type").Default("purchase").Comment("入库类型 purchase/semi/finished/return/other"),
|
|
field.String("material_code").Comment("物料编码"),
|
|
field.String("material_name").Optional().Comment("物料名称(冗余)"),
|
|
// 管理粒度 1批次(结构件)/2序列号(电气件),冗余自物料档案,便于单单据直接判断
|
|
field.Int("manage_mode").Default(1).Comment("管理粒度 1批次/2序列号"),
|
|
field.String("batch_no").Optional().Comment("批次号(结构件)"),
|
|
field.String("zone_code").Optional().Comment("入库区域(大区)"),
|
|
// 库位四级贯通(客户诉求 问题记录 L32/L169 + D5):区域→货架号→第几层→位置号。
|
|
// 与 zones 表 shelf_no/layer_no/position_no 对齐,落位到具体货架/层/位置。
|
|
field.String("shelf_no").Optional().Comment("货架号(如 A)"),
|
|
field.String("layer_no").Optional().Comment("第几层(如 3)"),
|
|
field.String("position_no").Optional().Comment("位置号(如 12)"),
|
|
field.Int("quantity").Default(0).Comment("本次入库总数量(批次合计或SN条数)"),
|
|
field.String("operator").Optional().Comment("操作人"),
|
|
field.String("remark").Optional().Comment("备注"),
|
|
// 检测单号:入库检报告单号,必填以闭环质量追溯
|
|
field.String("inspection_no").Comment("检测单号(入库检报告单号)"),
|
|
// 归属(客户诉求 问题记录 L54:入库记录增加 工单号/科技项目号/无)
|
|
// ownership_type: workorder(工单号) / project(科技项目号) / none(无)
|
|
field.String("ownership_type").Default("none").Comment("归属类型 workorder/project/none"),
|
|
field.String("ownership_no").Optional().Comment("归属编号(工单号/科技项目号)"),
|
|
// 质量状态(客户诉求 问题记录 L129:入库记录增加 合格/不合格 列,提交检验后跳转入库自动关联)
|
|
// 空=未关联检验记录;合格/不合格/部分(部分入库)。入库时按检测单号自动带出最近一次检验结论。
|
|
field.String("quality_status").Optional().Comment("质量状态 合格/不合格/部分(空=未关联检验)"),
|
|
// 作废(客户诉求 2026-09-19):入库单可作废,填写作废原因并回滚对应库存
|
|
// (结构件回滚批次数量;电气件按 SN 精确回滚本单的 SN,不与其它单混)。
|
|
field.Bool("voided").Default(false).Comment("是否已作废"),
|
|
field.String("void_reason").Optional().Comment("作废原因"),
|
|
field.String("voided_by").Optional().Comment("作废人"),
|
|
field.Int64("voided_at").Optional().Comment("作废时间(unix秒)"),
|
|
field.Int64("created_at").DefaultFunc(nowUnix).Comment("创建时间"),
|
|
}
|
|
}
|
|
|
|
func (InboundOrder) Indexes() []ent.Index {
|
|
return []ent.Index{
|
|
index.Fields("material_code"),
|
|
index.Fields("inbound_type"),
|
|
index.Fields("operator"),
|
|
}
|
|
}
|