差旅发票分类归档
目标
根据用户选定的日期范围和城市,从已授权邮箱中检索差旅票据,将交通出行与酒店发票、出租车/网约车行程单分类保存,并生成可报销的《差旅报销费用清单》Excel。
触发场景
在用户提出以下或同类请求时调用:
- “整理 8 月 4 日到 8 月 14 日淄博的发票”
- “下载某城市某日期的交通、酒店票据和行程单”
- “按日期和城市整理出差发票”
- “生成差旅报销费用清单”
最少确认项
只向用户确认以下缺失信息,不重复询问已提供的信息:
- 日期范围,使用
YYYYMMDD-YYYYMMDD格式; - 城市名,用于总文件夹命名与票据实际行程城市筛选。
默认在 D:\Users\rfuser\Desktop\工作\发票 目录下创建总文件夹(母文件夹);不得覆盖已有同名目录或文件。若同名存在,追加递增版本号或时间后缀。
邮箱读取策略
- 优先读取用户指定且已授权的邮箱;未指定时,优先使用票据实际所在的邮箱。
- 先按“发票”“行程”“报销”“打车”“滴滴”“酒店”“住宿”“携程”“同程”“12306”等关键词检索,再用含附件的时间范围邮件补漏。
- 票据邮件可能在行程结束后或次日开具;对临近日期的开票通知按 PDF 内的实际行程日期或票据日期复核,不因邮件发送日期而漏票。
- 仅纳入 PDF 作为报销原件。若同一票据同时附带 PDF、OFD、XML,以 PDF 为准;不复制 OFD、XML。
- 对 12306 等 ZIP 附件,解压后仅归档其中 PDF 电子发票。
- 若使用智能体邮箱:单附件上限 20MB、一次最多 50 个附件,适合集中接收或转发大量票据;检索接口仍可能有频率限制,不承诺更快。对散落在原邮箱中的票据,直接读取原邮箱通常更省步骤。
文件夹与文件命名
设日期范围为 日期,城市为 城市:
日期+城市/
├── 日期+发票/
└── 日期+行程单/
示例:
20260804-0814淄博/
├── 20260804-0814发票/
└── 20260804-0814行程单/
按实际内容重命名文件,保留来源、城市或线路、实际日期等识别信息。优先采用:
交通发票_平台_城市_日期.pdf酒店发票_酒店名_城市_日期.pdf铁路电子发票_日期_车次_出发站-到达站.pdf行程单_平台_城市_日期.pdf
文件名不得冲突;同类重复文件增加 _2、_3 等序号。
分类规则
归入“日期+发票”
- 网约车、出租车、聚合打车的电子发票;
- 铁路电子发票、机票/航空运输电子发票;
- 交通出行服务发票;
- 酒店住宿发票。
归入“日期+行程单”
- 出租车、网约车、聚合打车的行程报销单、行程单。
不归档
- OFD、XML、图片等非 PDF 格式;
- 与指定日期范围或指定城市无关的票据;
- 非差旅类别附件。
铁路、机票等没有网约车式行程单的票据只存入发票文件夹。
执行流程
- 在开始检索前提醒:确认邮件附件含 PDF;OFD、XML、图片不作为自动归档对象。
- 搜索指定日期范围及紧邻日期的相关邮件,聚合结果并按邮件 ID 去重。
- 列出附件,下载符合分类要求的 PDF;解压票据 ZIP 中的 PDF。
- 使用 PDF 文字层提取优先、OCR 降级的方式识别票据实际日期、城市、类型、金额和关键行程信息。
- 仅将实际票据日期处于用户选择范围、且实际行程城市与目标城市相关的票据归档;跨城火车/航班涉及目标城市时也归档。
- 创建总文件夹与两个子文件夹,复制归档 PDF,保留原件不删除。
- 生成单 Sheet 的《差旅报销费用清单.xlsx》,至少包含:序号、票据类型、日期、城市/行程、供应商、发票号码、金额、备注、原文件名。行程单信息写入相应发票行的备注;行程单没有对应发票时单列为“行程单(无发票)”。
- 核验每份已归档 PDF 可打开、文件夹数量与 Excel 行数匹配;报告未找到的类别(例如酒店发票)。
- 不创建 ZIP 压缩包;直接交付总文件夹中的归档 PDF 与 Excel,不要交付临时文件。
交付说明
简明说明:
- 总文件夹名称与保存位置;
- 发票 PDF 数量、行程单 PDF 数量;
- 酒店发票是否检索到;
- Excel 已生成;
- 任何按实际票据日期而非邮件发送日期纳入的情况。
不得删除原邮件、原附件或已有文件。不得将个人证件号等敏感信息写入对话摘要;Excel 内仅保留报销所需字段。