票证 P1 已上线 L0

发票文件批量命名

按 日期-销方-金额-号码 规范批量重命名发票文件,默认干跑、冲突不覆盖、结果可追溯

技能 sluginvoice-batch-rename
所属栏目票证 发票 / 票据
交付阶段P1 P1 在建 · 形成数据-票证-记账-报表-资金-分析-底座的完整闭环
版权© 2026 律令科技(深圳)有限公司开发 · 财友云(caiyouyun.cn)发布
这个包已上线。复制到本地即可离线运行;正文与用法以下方随包 SKILL.md 为准。

技能正文(随包 SKILL.md)

> **本地运行,零网络、免 API Key、数据不出电脑。**
> 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。

# 发票文件批量命名

「发票(1).pdf」「invoice_20260908_003.pdf」「未命名.pdf」——等到年底归档时,这些名字等于没名字。

本包把文件改成 `20260908-广州某某物资-22600.00-00012345.pdf` 这种能排序、能搜、能一眼看出内容的名字。

**默认只打印改名清单,一个文件都不动。** 确认后才用 `--apply` 执行。目标名字已存在时跳过并记进异常表,绝不覆盖——发票是证据,覆盖是不可逆的。

## 输出四件套(每次运行必有)

| 文件 | 内容 |
|---|---|
| `rename_清单.csv` | 原文件名 → 新文件名 → 状态(已改 / 跳过 / 冲突 / 无法命名) |
| `rename_异常表.csv` | 跳过的文件与原因 |
| `rename_校验表.csv` | 命名模板、字段来源、时间、人工复核声明 |
| `fin-log.jsonl` | 处理日志(追加) |

## 环境准备

```bash
PY="<python 3.8+ 路径>"   # 纯标准库
"$PY" <skill目录>/scripts/batch_rename.py <发票目录> [参数]
```

## 用法

### 先看会改成什么样(默认)

```bash
batch_rename.py ./发票目录
```

真实输出:

```
方案:./发票目录 | 文件数=8 | 模式=干跑
  发票(1).pdf              -> 20260908-广州某某物资-22600.00-00012345.pdf
  invoice_20260912_003.pdf -> 20260912-深圳市乙服务-22600.00-00099987.pdf
  未命名.pdf               -> 跳过:文件名里没有可识别信息,且 PDF 无文本层
```

### 确认后执行

```bash
batch_rename.py ./发票目录 --apply
```

### 自定义命名模板

```bash
batch_rename.py ./发票目录 --template "{号码}-{金额}-{销方}"
```

可用占位:`{日期}{销方}{购方}{金额}{号码}`。

## 字段怎么来

| 来源 | 方式 |
|---|---|
| PDF 有文本层 | 调同包 `pdf_extract` 抽字段(号码/日期/销方/金额) |
| 图片(jpg/png) | 从文件名解析:`2026-09-08_某某_22600.pdf` 这类,解析不出就跳过 |
| 指定了明细表 | `--from-table 发票明细.xlsx --map 文件名,号码` 用明细补字段 |

**抽不到就不改名**:宁可留在列表「无法命名」,也不用一个凑出来的名字。凑出来的名字在归档时比乱名更危险——它会让你以为这个名字是对的。

## 安全与边界(拒绝权)

- **默认不改名**:不加 `--apply` 一个字节都不动
- **冲突绝不覆盖**:目标文件已存在 → 跳过,记入异常表
- **不碰其他文件**:只重命名,不移动、不删除、不改内容
- **字段缺失不硬凑**:标「无法命名」而不是用默认值填坑

## 人工复核(必读)

- 改名前的清单请自己扫一遍,尤其是销方名是否截断了(名称过长会被截断到 12 字)
- 建议先在小范围文件夹试跑,确认命名符合归档规范再全量
- 发票原件是税务凭证,改名后请连同原目录一起归档,别只留新名

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 从 PDF 里抽字段 | `invoice-pdf-extract` |
| 改名后查重 | `invoice-duplicate-check` |
| 发票合规预检 | `invoice-rule-check` |

## 可直接复制的说法

```text
把这个目录里的发票文件按「日期-销方-金额-号码」批量重命名。先给我看清单,别动文件。
字段能从 PDF 文本层抽的就用,抽不到就跳过别硬凑。
如果新名字已经有文件存在,跳过它并告诉我,别覆盖。
```

## 做完怎么算完成

- [ ] 清单里每一行的「新名字」都符合归档规范
- [ ] 「无法命名」的文件已人工处理,没有遗漏
- [ ] 没有发生覆盖(冲突项全部跳过)
- [ ] 原始文件备份或原目录仍可追溯

---

本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。

版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。
本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。

允许个人及企业内部免费使用、复制、修改,包括内部生产环境。
未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。
各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。

相邻技能

票证 规划中P0 计划 已上线

发票查重

按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账

L0 · 发票 / 票据
票证 规划中P0 计划 已上线

发票台账

进销项发票台账,按月/客户/税率汇总,导出 CSV

L0 · 发票 / 票据
票证 规划中P1 在建 已上线

发票 PDF 字段提取

从带文本层的数电票 PDF 抽取号码/日期/金额/税率/购销方

L0 · 发票 / 票据
票证 规划中P1 在建 已上线

发票合规预检

必填字段、金额勾稽、备注栏与清单发票规则校验

L1 · 发票 / 票据
票证 规划中P1 在建 已上线

进销项发票月度核对

按所属期与开票期双口径汇总,红字与原票关联,跨期/未勾选/税率异常单列,输出申报前待确认清单

L1 · 发票 / 票据
资金 规划中P0 计划 已上线

银行流水解析

多银行 CSV/Excel 流水归一化成统一字段与方向标记

L0 · 现金 / 银行 / 收付
资金 规划中P0 计划 已上线

银企对账

流水与账面按金额+日期窗口匹配,输出已勾对/单边与余额调节表

L0 · 现金 / 银行 / 收付
记账 规划中P1 在建 已上线

批量生成记账凭证

从业务单据表按科目映射批量生成凭证草稿,借贷平衡预检

L0 · 凭证 / 账簿
报表 规划中P1 在建 已上线

财务指标分析

40+ 指标(偿债/营运/盈利/成长)+ 多期趋势与同业占位

L0 · 报表 / 申报
底座 规划中P0 计划 已上线

税费计算

增值税/附加/个税/印花税/所得税预缴,附公式与政策依据

L1 · 计算工具 / 归档 / 合规
底座 规划中P0 计划 已上线

财税数值工具

金额大写、含税不含税互算、价税分离、尾差分摊、百分比反算

L0 · 计算工具 / 归档 / 合规
记账 规划中P1 在建 已上线

分录合法性校验

借贷平衡、科目级次、辅助核算必填、红字方向、异常金额预警

L0 · 凭证 / 账簿
本页内容由本地构建生成于 2026-09-27。技能正文以随包 SKILL.md 为准。