同步页面权限、业务功能、SQL脚本及项目文档

This commit is contained in:
Developer
2026-10-22 09:05:16 +08:00
parent ffac9fcc61
commit 9f64ad5c82
201 changed files with 343899 additions and 637 deletions

40
gptlog-process/gptlog.md Normal file
View File

@@ -0,0 +1,40 @@
## 2026-07-09 08:20:52 - 入库记录导出功能列名数据错位修复
### 提问
用户反馈 WarehousingRecord 组件的导出功能导出的 Excel 表格列名和数据对不上,提供了正确和错误两个 Excel 文件对比。
### 排查过程
1. 读取正确的表和错误的表,对比发现:错误的表中"物料名称"值出现在"类型"列下,"图号/型号"值出现在"物料编号"列下,全部列偏移。
2. 读取 WarehousingRecord.vue,发现导出调用 his.exportExcel_NPOI(Data),存储过程名为 仓储管理_入库记录_导出表格_查询。
3. 查看 exportExcel_NPOI 定义(curd.js),确认导出是通过 NPOI 后端处理器按位置映射列。
4. 查询存储过程定义,发现动态 SQL 使用 A.* 返回 UNION ALL 视图的全部24列 + JOIN 的6列 = 30列数据,但导出表头只定义了16列。
5. 查询6个视图的列顺序,确认视图首列是"物料名称"而非"类型",导致按位置映射时全部错位。
6. 对比正常工作的 仓储管理_外协到货记录_导出表格_查询,确认其使用显式列选择。
### 根因
存储过程 仓储管理_入库记录_导出表格_查询 的动态 SQL 使用 A.* 返回全部列,NPOI 导出处理器按位置将数据映射到表头,但视图列顺序(物料名称, 图号或型号, 入库数, 单位, 入库日期, ...)与表头顺序(类型, 物料编号, 物料名称, 图号/型号, 单位, 入库数, ...)不一致,导致列名和数据错位。
### 结论与修复
将存储过程中 A.* 改为显式选择16列,按表头顺序排列并使用 AS 别名匹配表头名称:
- A.类型
- 库存管理_物料主文件_基本.物料编码 as 物料编号
- A.物料名称
- A.图号或型号 as [图号/型号]
- A.单位
- A.入库数
- 库存管理_货位主文件.货位名称 as 库位
- A.入库日期
- 入库单去重.入库单号
- A.批次编号
- 采购管理_供应商.供应商编号
- A.供应商
- A.采购合同编号 as 采购合同
- A.订单号
- A.产品名称 as [产品/组件名称]
- A.备注 as 采购备注
已在数据库 ERPTOOL_JY 上执行 ALTER PROCEDURE 修复,验证修复后数据列顺序正确。
### 修改的数据库对象
- 存储过程:仓储管理_入库记录_导出表格_查询(ERPTOOL_JY 数据库,192.168.1.27)