feat: 完成附件存储重构与磁盘监控功能,同步物料档案与入库单规则更新

1.  新增跨平台磁盘空间监控能力,每日7点自动检测附件目录剩余空间,触发阈值告警
2.  重构附件存储方案为年/月/日/文件类型分层结构,统一MES与WMS的附件管理逻辑
3.  对齐物料档案与入库单的质量状态校验规则,仅合格品计入库存与出库
4.  实现入库单作废功能与区域库位的多级父子结构管理
5.  删除物料简称字段,补充规格型号与单位必填项,统一系统数据口径
6.  新增附件中心与磁盘状态查询接口,完善权限控制与操作日志
This commit is contained in:
SunYF
2026-09-19 10:54:15 +08:00
parent 9002d9a642
commit 62e45b7379
95 changed files with 10467 additions and 2677 deletions
+16 -1
View File
@@ -10,7 +10,9 @@ import (
"entgo.io/ent/schema/index"
)
// Attachment 业务附件:图纸 / 照片 / 文档等,按 bizType+bizId 关联业务单据
// Attachment 业务附件:图纸 / 照片 / 文档等,按 bizType+bizId 关联业务单据
// 存储落地约定(2026-09-19 统一方案):<Upload.Dir>/年/月/日/<文件类型大写枚举>/<uuid>.<ext>
// 库内 filePath 只存相对路径(如 2026/09/19/INSPECTION_PHOTO/xxx.jpg),不存绝对路径。
type Attachment struct {
ent.Schema
}
@@ -29,6 +31,17 @@ func (Attachment) Fields() []ent.Field {
field.Int("fileSize").Default(0).Comment("字节数"),
field.String("uploader").Default("").MaxLen(64).Comment("上传人"),
field.Time("createdAt").Default(time.Now).Immutable(),
// 文件类型(大写枚举):决定存储目录分层,与 bizType(业务对象)正交
field.String("fileType").Default("OTHER").MaxLen(32).Comment("文件类型 大写枚举 PROCESS_PDF/INSPECTION_PHOTO/..."),
field.String("fileExt").Default("").MaxLen(16).Comment("扩展名(小写,不含点)"),
field.String("fileMd5").Default("").MaxLen(64).Comment("文件MD5(秒传/去重)"),
field.String("mimeType").Default("").MaxLen(128).Comment("MIME类型"),
// 归档 / 逻辑删除:物理文件由归档任务统一处理,库内保留索引可追溯
field.Bool("archived").Default(false).Comment("是否已归档"),
field.Int64("archivedAt").Default(0).Comment("归档时间(unix秒)"),
field.Bool("deleted").Default(false).Comment("逻辑删除"),
field.Int64("deletedAt").Default(0).Comment("删除时间(unix秒)"),
field.String("deletedBy").Default("").MaxLen(64).Comment("删除人"),
}
}
@@ -36,5 +49,7 @@ func (Attachment) Indexes() []ent.Index {
return []ent.Index{
index.Fields("bizType", "bizId"),
index.Fields("createdAt"),
index.Fields("fileType"),
index.Fields("fileMd5"),
}
}