同步页面权限、业务功能、SQL脚本及项目文档
This commit is contained in:
40
gptlog-process/gptlog.md
Normal file
40
gptlog-process/gptlog.md
Normal 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)
|
||||
|
||||
Reference in New Issue
Block a user