底座 P1 已上线 L0

会计档案归档

按年度-凭证号-附件复制归档,出目录清单与 sha256 完整性校验,重号与覆盖一律拦下

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

技能正文(随包 SKILL.md)

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

# 会计档案归档

会计档案最怕的不是整理得慢,是**整理完发现对不上**:
凭证号重号、复印件当正本、附件漏了、归档后谁动过不知道。

本包只做三件实事,一件都不含糊:

1. 按 `归档/<年度>/<凭证号>/附件_NN<扩展名>` 把附件**复制**(不是移动)到位,源文件原地不动;
2. 逐文件算全量 sha256 存进清单,做「文件名 / 相对路径 / 字节数 / SHA256 / 是否命中凭证号目录」五要素归档;
3. 凭证号缺失、含 `_duplicate_` 标记、清单内重号、附件与清单附件数对不上,一律识别并进异常表,一个都不悄悄归档。

**默认不写盘**:不加 `--execute` 只给你看「将要如何组织」的目录树预览。

## 输入

| 用途 | 参数 / 可识别列名 |
|---|---|
| 凭证清单表 | 位置参数 `file`,`.xlsx` / `.csv`,一行一条凭证 |
| 凭证号 | 凭证号 / 凭证编号 / 记账凭证号 / 凭证号码 / 凭证 |
| 年度 | 年度 / 年份 / 记账年度 / 所属年度 / 会计年度 |
| 附件数 | 附件数 / 附件数量 / 附件张数 |
| 所属期间 | 所属期间 / 会计期间 / 记账期间 / 期间 |
| 金额 | 金额 / 发生额 / 凭证金额 / 借贷金额 / 合计金额 |
| 附件实体目录 | `--attach-dir <目录>`,可含子目录,递归扫描 |

凭证号列**必须有**——没有它就报算不出,本包不猜哪个是凭证号。
年度优先取「年度」列;读不到就从凭证号里找四位年份(如 `记-2026-001` → 2026);
两边都读不到就标 `_未知年度` 并进异常表,绝不自己编一个年份出来。

## 输出

| 文件 | 内容 |
|---|---|
| `aa_归档清单_主表.csv` | 每个附件的归档路径 / 凭证号 / 年度 / 文件名 / 源相对路径 / 字节数 / SHA256 / 是否命中凭证号目录 / 动作 |
| `aa_归档清单_异常表.csv` | 凭证号缺失、重号、`_duplicate_` 标记、未命中附件、附件数对不上(带风险等级与清单行号) |
| `aa_归档清单_校验表.csv` | 归档结构、年度来源、命中规则、覆盖策略、命中/未命中数量、复制后摘要校验 |
| `fin-log.jsonl` | 处理日志(追加) |
| `aa_凭证汇总.csv` | 按凭证汇总:年度 / 期间 / 摘要 / 金额 / 清单附件数 / 实际附件数 / 附件实体清单 |

另外在 `--out-dir/归档/` 下生成真实归档目录(`归档/<年度>/<凭证号>/附件_NN<扩展名>`)。

## 用法

```bash
PY="<python 3.8+ 路径>"   # 纯标准库

# 1) 先看预览:只打印将要如何组织,不写盘
"$PY" <skill目录>/scripts/archive_build.py 凭证清单.xlsx --attach-dir ./附件库

# 2) 确认无误再真跑(复制,不是移动)
"$PY" <skill目录>/scripts/archive_build.py 凭证清单.xlsx --attach-dir ./附件库 \
      --out-dir _out --operator 张会计 --execute
```

| 参数 | 说明 |
|---|---|
| `file` | 凭证清单表(`.xlsx` / `.csv`) |
| `--attach-dir` | 附件实体目录,**必填**,不存在即拒绝 |
| `--out-dir` | 输出目录,归档根 = `<out-dir>/归档`,默认 `_out` |
| `--operator` | 操作人,写进日志 |
| `--execute` | 不加只预览;加了才建目录、复制文件 |

## 真实输出(实测粘贴)

预览模式(不写盘):

```
方案:凭证清单 aa_凭证清单.xlsx(5 行,5 个有效凭证) | 附件目录 _out/aa_附件库(9 个文件)
[预览模式] 未建归档目录并复制附件。确认无误后加 --execute 执行。

--- 归档目录树(预览,未写盘)---
归档/
├─ 2025/
│  └─ 记-2025-087/
│     └─ 附件_01.xlsx  [60 B]
└─ 2026/
   ├─ 记-2026-001/
   │  ├─ 附件_01.pdf  [61 B]
   │  └─ 附件_02.jpg  [62 B]
   ├─ 记-2026-002/
   │  └─ 附件_01.xlsx  [57 B]
   └─ 记-2026-003/
      ├─ 附件_01.pdf  [62 B]
      ├─ 附件_02.pdf  [62 B]
      └─ 附件_03.pdf  [59 B]
  (共 2 个年度 / 4 个凭证 / 7 个附件)

[预览模式] 将新建 7 个文件、4 个目录,确认无误后加 --execute
```

执行模式(`--execute`):

```
方案:凭证清单 aa_凭证清单.xlsx(5 行,5 个有效凭证) | 附件目录 _out/aa_附件库(9 个文件)

--- 归档结果 ---
  复制 7 个附件 | 新建 4 个目录 | 命中 7 | 未命中 1 | 覆盖冲突 0
  [高] 记-2026-005_副本_duplicate_:凭证号含「_duplicate_」标记,可能是重号/复印件,需人工确认后再归档
  [中] misc/待归类扫描件.pdf:附件实体未命中任何凭证号目录(附件命名与凭证号对不上,或该凭证号本身缺失/重号)
  [高] 附件1.pdf:凭证号重复或含 _duplicate_ 标记,未生成目标路径
  [高] 待归类扫描件.pdf:未命中凭证号目录

已生成凭证汇总:aa_凭证汇总.csv(5 个凭证)
--- 校验表 ---
  命中凭证附件 | 7
  未命中附件 | 1
  _duplicate_/重号凭证数 | 1
  已复制文件 | 7
  新建目录数 | 4
  覆盖冲突数 | 0
  复制后校验一致 | 7 / 7
```

## 拒绝权(什么情况下算不出)

| 情况 | 处理 |
|---|---|
| 凭证清单文件不存在 | **直接拒绝**:「找不到凭证清单」 |
| 没传 `--attach-dir` | **直接拒绝**:「本包不知道附件实体在哪里」 |
| 附件目录不存在 / 不是目录 / 目录为空 | **直接拒绝**,出不了归档清单 |
| 凭证清单里没有凭证号列 | **直接拒绝**,归档目录无法命名 |
| 凭证号缺失(空值) | 进异常表(高),该行不产生归档目录 |
| 凭证号含 `_duplicate_` 标记 | 进异常表(高),识别为疑似重号,附件**不复制**,等人工确认 |
| 凭证号在清单里重复出现 | 第二条进异常表(中),只归档第一条 |
| 年度缺失且凭证号里读不出年份 | 进异常表(高),归入 `_未知年度` |
| 附件实体命中不了任何凭证号 | 进异常表(中),清单里标「未命中」,不复制 |
| 归档目标已存在同名文件 | **直接拒绝并列出全部冲突**,一个字节都不写 |
| 复制后 SHA256 与源不一致 | **直接拒绝**,不给未经校验的归档结论 |

## 关键设计(容易踩的坑)

1. **复制,不是移动**:附件实体留在原处,归档是副本。源文件被挪走就再也复核不了了。
2. **归档根在 `_out` 里**:`归档/` 建在 `--out-dir` 下,源文件目录一个字节都不动。
3. **命中规则**:路径段或文件主名「去掉 `-` `_` `.` 空格等分隔符号后」与凭证号相等,
   或取其开头连续字母数字段与凭证号相等(这样 `记-2026-001` 目录能认出凭证号 `2026-001`)。
   认不出来就进异常表,**不硬套、不就近塞进别的凭证**。
4. **附件编号**:同一凭证内按源相对路径排序,编号为 `附件_01` 起,保留原扩展名。
5. **覆盖即停**:先扫全部目标再动手,发现有同名文件就整单拒绝——不做「覆盖一部分」这种半吊子结果。
6. **摘要双算**:复制完重新读目标文件算 sha256,与源比对;不一致直接 refuse。
7. **本包不管归档后的保管期限、调阅、销毁**:那是《会计档案管理办法》里另一套流程,本包不做判断。

## 人工复核(必读)

- 重号 / `_duplicate_` 的凭证,**本包已停在你这里**,人工确认前不要放行
- 「未命中凭证号目录」的附件,通常是命名与凭证号对不上(如附件名没带凭证号),需人工归类
- 清单「附件数」与实际命中数对不上,说明可能漏扫或漏登记,以附件实体为准再补清单
- SHA256 只证明「复制后没被改动」,不证明附件内容本身正确(如传错了一张发票,哈希照样一致)
- 归档目录建在输出目录里,不要把输出目录指到附件原件目录,否则等于就地覆盖

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 凭证号是否重号 / 分录平衡校验 | `accounting-entry-check` |
| 凭证批量生成 | `voucher-batch-generate` |
| 附件 PDF 文字提取与核对 | `invoice-pdf-extract` |
| 发票重复报销、重复票核对 | `invoice-duplicate-check` |
| 账套备份与可恢复性验证 | `book-backup-verify` |
| 归档目录里按凭证查操作记录 | `audit-trail-view` |

## 可直接复制的说法

```text
把这张凭证清单和附件库按年度-凭证号归档,目录结构用
归档/<年度>/<凭证号>/附件_NN,附件是复制不是移动。
每个附件都要记文件名、相对路径、字节数、SHA256,以及是否命中了凭证号目录。
凭证号缺失、凭证号里带 _duplicate_ 的、清单里重号的,全部标出来进异常表,
这些先别归档,等人确认。
目标位置已经有同名文件就别覆盖,把冲突列给我。
先给我看预览,确认了再加 --execute。
```

## 做完怎么算完成

- [ ] 预览的目录树已与业务上的归档口径核对(年度 / 凭证号层级一致)
- [ ] 重号 / `_duplicate_` 的凭证已逐条人工确认,确认结论已回写清单
- [ ] 「未命中凭证号目录」的附件已查明去向,没有遗留
- [ ] 异常表逐条追到底,无「未说明原因的缺失」
- [ ] 附件原件仍在原位,未被移动或删除
- [ ] 「复制后校验一致」为 N / N,无遗漏
- [ ] 归档目录在约定的保管介质 / 位置已妥善转存

---

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

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

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

相邻技能

底座 规划中P0 计划 已上线

税费计算

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

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

财税数值工具

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

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

工资表计算

五险一金 + 个税累计预扣预缴 + 实发,支持多地参数表

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

固定资产折旧

直线/双倍余额/年数总和/工作量法,生成折旧明细表

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

会计期间工具

期间生成、周旬季年切换、工作日调整、账期与自然日换算

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

工资条拆分生成

按人拆成独立文件,可加密打包,不留明文

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

摊销计算

无形资产与长期待摊费用摊销明细表

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

固定资产卡片台账

新增/折旧/处置/盘点全生命周期台账

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

贷款还款计划

等额本息/等额本金/气球贷,含实际利率与 IRR 校验

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

外币折算与汇兑损益

多币种折算、期末汇兑损益计算,汇率走内置表或导入

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

操作留痕查询

合并查询所有财税技能的运行日志,按时间/技能/级别过滤

L0 · 计算工具 / 归档 / 合规
底座 规划中P2 长尾 已上线

财务敏感信息扫描

银行卡/身份证/税号/账套口令扫描与脱敏报告

L0 · 计算工具 / 归档 / 合规
本页内容由本地构建生成于 2026-09-27。技能正文以随包 SKILL.md 为准。