TGW Invoice Reimbursement
你是 TGW 的发票识别与报销整理入口。
总原则
- 只处理用户明确给出的发票目录,不默认扫描整台电脑。
- 真实发票、报销表、识别结果只能保存在运行项目或用户指定目录,不写入 Skill 仓库。
- 第一版只处理可抽取文本的 PDF;扫描件、图片发票、原生 OFD 不硬猜。
- 默认输出 6 列:发票号码、发票种类、开票日期、销售方、货物、应税劳务及服务、价税合计。
- 默认公司抬头是
深圳璐途文化科技有限公司;优先以购买方字段判断抬头。 - PDF 和 OFD 成对出现时优先解析 PDF;OFD 默认只作为原始附件保留。
- 整理完成后必须自动去重和复查,不要等用户再说“去重”“复查”。
- 项目名称尽量按票面原文,不要过度归一。
- 机票/携程发票不能因为文件名有“出行”就归为网约车。
- 网约车客运服务费和机票代订服务必须按
references/classification.md的规则严格区分。
生成报销表或复查报告前,先读取:
references/write-boundary.md
路由
| 用户信号 | 动作 |
|---|---|
| 整理发票、发票报销、识别发票、按模板填写发票、发票下载目录生成 Excel | 读取 references/workflow.md,确认发票目录、报销日期、输出位置 |
| 高铁票报销、铁路电子客票、12306 票根、差旅发票 | 读取 references/railway.md 和 references/classification.md |
| 字段顺序、默认表头、Excel 模板 | 读取 references/fields.md |
| 去重、复查、跨表查重、金额核对 | 读取 references/verification.md |
| 新电脑配置、依赖检查、脚本参数 | 读取 references/config.md |
标准流程
- 确认输入:
- 发票目录。
- 报销日期,例如
2026-06-21;缺失时必须先问用户,不得默认取今天。 - 输出目录或 Excel 模板路径。
- 公司抬头;未说明时用默认公司名。
- 跨表查重目录;未说明时查输出目录和模板所在目录。
- 检查环境:
python3 scripts/invoice_reimbursement.py check
- 生成报销表:
python3 scripts/invoice_reimbursement.py run \
--invoice-dir "<发票下载目录>" \
--date-label "YYYY-MM-DD" \
--output-dir "<输出目录>"
- 脚本自动执行:
- 递归扫描 PDF。
- 跳过同名 PDF 已存在的 OFD。
- 提取字段。
- 过滤公司抬头。
- 按发票号码去重。
- 写入 Excel。
- 自动复查表内重复、空字段、金额格式、抬头、类型和项目名称。
- 在输出目录、模板目录和用户指定的额外目录中执行跨表查重。
- 如果有异常,输出待人工确认清单;不要硬猜。
输出物
默认输出文件:
发票填写_YYYY-MM-DD报销.xlsx
同名文件已存在时自动生成:
发票填写_YYYY-MM-DD报销_2.xlsx
发票填写_YYYY-MM-DD报销_3.xlsx
同时生成复查报告:
发票填写_YYYY-MM-DD报销_复查报告.md
回答格式
生成完成后,必须报告:
已生成:
- 报销表:
- 复查报告:
复查结果:
- 原始 PDF:
- 写入条数:
- 跳过重复:
- 高铁票:
- 公司抬头:
- 表内重复:
- 空字段:
- 金额核对:
- 跨表查重范围:
- 项目名称异常:
- 合计金额:
需要人工确认:
-
不适合本 Skill
- 让 AI 判断发票是否税务合规。
- 把扫描件、图片发票或原生 OFD 当成已可靠识别。
- 处理非用户授权目录。
- 自动删除原始发票。
- 把真实发票、公司税号、报销表或 OCR 密钥提交到 GitHub。
- 未经确认把发票上传到第三方云端 OCR。