From d69a77cec1ad51126a376b607b9c9244001b4b04 Mon Sep 17 00:00:00 2001 From: yueli Date: Fri, 11 Sep 2026 11:44:35 +0800 Subject: [PATCH] =?UTF-8?q?fix(export):=20=E8=A1=A5=E4=B8=8A=20export=5Fex?= =?UTF-8?q?cel=20=E7=BC=BA=E5=A4=B1=E7=9A=84=E8=A1=A8=E5=A4=B4=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 列,未出现串列。 --- inventory-backend/app/services/inbound/base_service.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/inventory-backend/app/services/inbound/base_service.py b/inventory-backend/app/services/inbound/base_service.py index de1ecd7..bd0698b 100644 --- a/inventory-backend/app/services/inbound/base_service.py +++ b/inventory-backend/app/services/inbound/base_service.py @@ -878,6 +878,15 @@ class MaterialBaseService: # 3. 流式写入 Excel(write_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):