钉钉自动提取发票
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1329501/dingtalk-invoice-extractor。
技能介绍
要解决什么问题
财务或行政同事常要从钉钉里把已审批的差旅报销、日常报销单里的发票 PDF 捞出来,再手工抄号码、金额、行程进表。审批人多、主体公司(厦门/成都/北京等)又不同,按月汇总时很容易漏单或张冠李戴。
技能如何工作
技能把流程拆成下载 → 解析 → 分表 → 上报四段,由 run_extract.py 串联:
- 下载:遍历差旅与日常两类审批流程码,用
topapi/processinstance/listids查近 60 天实例;仅当指定审批人在tasks里为COMPLETED+AGREE时才拉附件 PDF,状态记在downloaded_approvals.json。 - 提取:
extract_invoice.py用pdfplumber读 PDF,抽出发票号码、类型、开票日期、购销方与税号、合计/税额/不含税金额,以及旅客、日期、起止地等行程字段。 - 分表:按报销实体(主体公司)分组,组内按审批时间正序,每个主体输出
{城市简称}-{月份}发票信息.xlsx,内含「财务预审汇总」「差旅费明细」「各种发票」三张 sheet。 - 上报:生成后的 Excel 自动上传到钉钉钉盘。
若 invoice/ 下已有 PDF 与元数据,可只跑提取;--run 时还会清理「审批人尚未通过」的实例对应 state、元数据和 PDF。
适用边界与注意
- 依赖钉钉应用 AppKey/AppSecret 与脚本里配置的审批人姓名;更换需改
scripts/download_oa_invoices.py开头。 - 只处理脚本内置流程码范围内的差旅/日常报销,且以 PDF 附件为主;解析质量取决于发票版式。
- 运行时数据落在
invoice/{月份}/、final_excel/{月份}/等目录,注意权限与备份。
使用场景
- 每月关账前,需把指定审批人已通过的差旅、日常报销单附件发票 PDF 全部拉下并汇总成表
- 同一批次报销涉及厦门、成都、北京等多个主体公司,要按报销实体分别出一份带三张 sheet 的 Excel
- 财务预审要对每张发票一行核对号码、税额与审批信息,并单独展开每人每次出行的差旅明细
- 本地 `invoice/` 已有上月下载的 PDF,只需重新解析字段并生成 `final_excel/` 下的分主体报表
适合人员
- 负责多城市主体公司报销归集、需按月产出分主体发票 Excel 的财务专员
- 对接钉钉 OA 报销流、要核验指定审批人节点已通过才纳入统计的内控或审计同事
- 处理大量差旅电子发票与行程单、要把 PDF 字段结构化进「财务预审汇总」表的会计
- 维护钉钉应用凭证与审批人配置、并定期把汇总表上传钉盘的 IT 或行政运维