fix(export): 补上 export_excel 缺失的表头定义

GET /api/v1/inbound/base/export(物料页「导出库存统计」)在
base_service.py 里执行 ws.append(headers),而 headers 全文件从未赋值,
每次调用必抛 NameError,导出功能 100% 不可用。

按 _write_stock_rows 实际写入的 22 列顺序补齐表头,命名对齐同仓库
inbound_summary_service 与 stock.py 的既有报表。

实测: 容器内导出成功 203282 字节,1817 行(含表头),表头与数据行
均为 22 列,未出现串列。
This commit is contained in:
yueli
2026-09-11 11:44:35 +08:00
parent f4d97b6c4f
commit d69a77cec1

View File

@ -878,6 +878,15 @@ class MaterialBaseService:
# 3. 流式写入 Excelwrite_only=True 不占内存)
wb = Workbook(write_only=True)
ws = wb.create_sheet("库存统计")
# ★ 表头必须与下方 _write_stock_rows 里 ws.append([...]) 的 22 列严格一一对应,
# 顺序错位会让整张报表串列。该变量此前漏定义,导致导出接口必抛 NameError。
headers = [
'所属公司', '物料名称', '规格型号', '物料类型',
'一级分类', '二级分类', '三级分类', '四级分类', '五级分类',
'单位', '库存类型', '批次/序列号', '库位', '供应商/负责人',
'入库/生产日期', '库存数量', '可用数量',
'不含税单价', '不含税金额', '税率(%)', '含税单价', '含税金额'
]
ws.append(headers)
def _write_stock_rows(iterable, type_name, price_getter, tax_getter=None):