From bc1352b9185431222bf3db30ecf259f740f4aaef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E7=9D=BF=20=E5=BC=A0?= Date: Mon, 12 Oct 2026 11:56:51 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=A0=87=E6=B3=A8=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=A1=A8=E5=8F=AA=E5=86=99=E4=B8=8D=E8=AF=BB?= =?UTF-8?q?=EF=BC=8C=E7=95=99=E4=BD=9C=E5=90=8E=E7=BB=AD=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/superpowers/plans/2026-10-10-material-bulk-import.md | 2 +- internal/repository/material_import.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/plans/2026-10-10-material-bulk-import.md b/docs/superpowers/plans/2026-10-10-material-bulk-import.md index 730213bf..e40b0a34 100644 --- a/docs/superpowers/plans/2026-10-10-material-bulk-import.md +++ b/docs/superpowers/plans/2026-10-10-material-bulk-import.md @@ -109,7 +109,7 @@ - 整批入库在**一个事务**内:分配编码 → 分批多值 INSERT 物料(每批 500 行)→ 回填 ID → 批量写 `material_logs`(每条物料一条 `CREATE` 审计记录,与单条新增保持一致)。 - 任一行插入失败则整体回滚。 -- **仅记录成功导入**:事务提交后写一条 `material_import_logs` 成功汇总,包含操作人、公司、时间、文件名、总行数和成功数;失败数为 0、状态为 `success`、失败原因为空。模板错误、主数据查询失败、行校验失败和事务失败均不写历史记录;**逐行错误明细不落库**,只在响应里返回并可由前端导出 CSV。 +- **仅记录成功导入**:事务提交后写一条 `material_import_logs` 成功汇总,包含操作人、公司、时间、文件名、总行数和成功数;失败数为 0、状态为 `success`、失败原因为空。模板错误、主数据查询失败、行校验失败和事务失败均不写历史记录;**逐行错误明细不落库**,只在响应里返回并可由前端导出 CSV。该表目前**只写不读**(没有查询接口与页面),留作将来做「导入历史」入口时的数据源。 - 成功导入的每件物料保存完整 `new_value` JSON 快照,与单条新增保持一致;现有日志页「查看详情」首行显示「批量导入创建:物料名称(物料编码)」,下方按行显示导入时的编码、名称、规格、分类名称、单位名称和状态,并显示操作人及时间;继续使用该入口查看成功操作。该页面展示物料操作日志,不展示 `material_import_logs` 的文件名或批次汇总。 ### 7. 权限 diff --git a/internal/repository/material_import.go b/internal/repository/material_import.go index 7016f516..55a4ecc2 100644 --- a/internal/repository/material_import.go +++ b/internal/repository/material_import.go @@ -5,6 +5,12 @@ import ( "github.com/wmms/wmms/pkg/database" ) +// MaterialImportLogRepo 负责 material_import_logs 的写入,表里存的是文件级批次汇总 +// (操作人、文件名、总行数、成功数)。 +// +// 目前只写不读:没有查询接口也没有页面——逐条物料的溯源走日志页,成功导入的每件物料 +// 都有一条带操作人和「批量导入创建」详情的 CREATE 记录。这张表留作将来做「导入历史」 +// 入口时的数据源,暂时没有使用方。 type MaterialImportLogRepo struct{} func NewMaterialImportLogRepo() *MaterialImportLogRepo { return &MaterialImportLogRepo{} }