---
name: financial-statement-check
description: 企业财报三表（资产负债表 / 利润表 / 纳税申报表）勾稽检查技能包。当用户上传财报PDF/图片、或要求进行财报审核、三表勾稽校验时，应自动调用此技能。支持从财报PDF/图片中结构化抽取三表关键数据，自动统一单位（万元）与币种（必要时按实时汇率折算为CNY），执行时间一致性/字段完整性/核心税会差异/跨表校验，并按规则输出标准审核报告。适用于银行信贷审批、企业财报初审、财务尽调等场景。
---

# 企业财报三表勾稽检查（资产负债表 / 利润表 / 纳税申报表）

## 用途

对企业财报（PDF/图片）进行结构化抽取与三表勾稽校验，帮助银行/风控/财务人员加速财报初审。

核心能力：
- **智能页码定位**：先用 PyMuPDF 提取PDF文本，通过关键词快速定位三表所在页码，避免对无关页面调用OCR
- **表格OCR识别**：调用腾讯云高精度表格识别接口（RecognizeTableAccurateOCR）
- **并行OCR调用**：多页PDF自动并行调用OCR API，大幅缩短等待时间（内置PDF→PNG转换）
- **三表智能识别**：识别并区分 **资产负债表 / 利润表 / 纳税申报表**
- **单位与币种统一**：所有金额统一为 **万元**；三表币种不一致时按实时汇率折算为 **CNY**，并在输出中标注币种
- **时间一致性 / 字段完整性 / 核心指标 / 跨表校验**：按规则引擎执行校验，区分"必输出"与"仅异常时输出"
- **用户自定义检查项**：支持用户在调用 skill 时附带其他关注点，以自然语言形式在输出末尾追加补充分析

## 📚 可用资源

### References（场景化指引）
- `references/cross-check-rules.md` — 时间检查 / 字段完整性 / 原始指标 / 核心指标 / 跨表校验 / 用户自定义检查 的规则与输出条件
- `references/field-mapping.md` — 三表科目字段映射、必填字段清单、单位与币种统一规则、报告期与申报类型识别

### Scripts（可执行脚本）
- `scripts/table_ocr.py` — 腾讯云表格OCR识别脚本，支持PDF/图片输入，返回结构化表格数据

## 使用时机

当用户提出以下需求时触发此技能：
- 用户上传了财报PDF或图片，要求进行财报审核或数据提取
- 用户提到"三表勾稽"、"勾稽检查"、"勾稽校验"、"财报校验"等关键词
- 用户要求从财报中提取资产负债表、利润表、纳税申报表（增值税/企业所得税）数据
- 用户要求对财报数据进行税会一致性 / 跨表一致性校验
- 涉及银行信贷审批中的财报初审场景
- 用户提到"财务报表"、"年报"、"财报"、"纳税申报"并要求进行数据分析或校验

### 🤖 自动触发指引（面向大模型）

当检测到以下信号时，应**自动调用**此技能：
1. **用户上传了PDF/图片**：文件名包含"财报"、"年报"、"资产负债"、"利润表"、"纳税申报"等关键词
2. **用户意图关键词**："勾稽"、"三表"、"财报审核"、"财报校验"、"资产负债表"、"利润表"、"纳税申报表"、"税会一致性"
3. **场景关键词**："信贷审批"、"财报初审"、"财务尽调"、"增值税申报"、"企业所得税申报"

## 环境要求

- Python 3.6+
- 依赖：
  - `tencentcloud-sdk-python`（`pip install tencentcloud-sdk-python`）
  - `PyMuPDF`（`pip install PyMuPDF`）
- 环境变量：
  - `TENCENTCLOUD_SECRET_ID`：腾讯云API密钥ID
  - `TENCENTCLOUD_SECRET_KEY`：腾讯云API密钥Key

## 完整工作流程

```
用户上传财报 PDF / 图片
        │
        ▼
  Step 0: 【智能页码定位】用 PyMuPDF 提取PDF全文文本
        │  根据关键词定位 资产负债表 / 利润表 / 纳税申报表 所在页码（~2秒，无需OCR）
        ▼
  Step 1: 调用 scripts/table_ocr.py --pdf --pdf-pages 并行表格OCR
        ▼
  Step 2: 获取结构化表格数据（HTML/JSON）
        ▼
  Step 3: 大模型根据 field-mapping.md 识别三表类型、映射标准字段名
        ▼
  Step 4: 数值提取 + 单位统一（万元） + 币种一致性检查与汇率折算（必要时）
        ▼
  Step 5: 按 cross-check-rules.md 执行：
          ① 时间检查（必输出）
          ② 字段完整性检查（仅异常时输出）
          ③ 原始指标输出（必输出）
          ④ 核心指标检查（仅异常时输出）
          ⑤ 跨表校验（仅异常时输出）
          ⑥ 用户自定义检查项（如有）
        ▼
  Step 6: 按"输出格式"章节模板生成审核报告
```

### Step 0: 智能页码定位（PDF专用，⭐性能关键步骤）

对PDF文件**必须先执行此步骤**以减少不必要的OCR调用。

```python
import fitz  # PyMuPDF

doc = fitz.open("/path/to/report.pdf")
for page_num in range(len(doc)):
    text = doc[page_num].get_text()
    print(f"--- 第{page_num + 1}页 ---")
    print(text[:500])
doc.close()
```

**页码定位关键词**：
- 资产负债表："资产负债表"、"资产合计"、"负债合计"、"所有者权益"
- 利润表："利润表"、"营业收入"、"净利润"、"营业利润"
- 纳税申报表："纳税申报表"、"应税销售额"、"销项税额"、"进项税额"、"应纳税所得额"、"税款所属期"

> 💡 大模型应分析每页文本，判断哪些页包含三表数据，仅将这些页码传给 Step 1。对于图片输入，跳过此步骤。

### Step 1: 表格OCR识别

```bash
# 【推荐】识别PDF指定页码（内置PDF→PNG + 并行OCR）
python scripts/table_ocr.py --pdf /path/to/report.pdf --pdf-pages 6,7,8,9

# 识别页码范围 / 混合指定
python scripts/table_ocr.py --pdf /path/to/report.pdf --pdf-pages 1-5
python scripts/table_ocr.py --pdf /path/to/report.pdf --pdf-pages 1,3-5,8

# 识别图片
python scripts/table_ocr.py --image-url "https://example.com/financial_report.jpg"
python scripts/table_ocr.py --image-base64 ./financial_report.jpg
```

### Step 2-4: 三表识别、字段映射、单位与币种统一

加载 `references/field-mapping.md` 参考文档，按以下 Prompt 完成：

```
你是一位资深财务审计专家，精通中国会计准则（CAS）与税法。
请根据以下OCR识别出的财报表格数据，完成三表识别、字段映射、单位/币种统一。

## 三表范围
- 资产负债表（Balance Sheet）
- 利润表（Income Statement）
- 纳税申报表（增值税 / 企业所得税 Tax Return）

## 任务要求
1. 三表识别：根据表头/关键词判定每个表格归属
2. 字段映射：参考 field-mapping.md 的映射表，将 OCR 科目名称统一映射为标准字段名
3. 数值提取 & 单位统一：统一为"万元"（保留2位小数）；括号视为负数；去千分位逗号
4. 币种一致性：
   - 识别三表币种
   - 若不一致：按当前实时汇率将非CNY科目折算为CNY，**并在输出时标注币种与汇率**
5. 报告期识别：
   - 发生时间窗口（起止日）
   - 是否与自然年错位
   - 申报类型（月度/季度/年度，依据税款所属期跨度）
6. 空值处理："—"/空白 → null，"0" → 0

## OCR表格数据
---
{ocr_tables_data}
---

## 字段映射参考
---
{field_mapping_content}
---

请以 JSON 输出抽取结果。
```

### Step 5: 规则校验

加载 `references/cross-check-rules.md`，按其中定义执行六类检查。**区分必输出项与仅异常时输出项**。

### Step 6: 输出结果

按下方"输出格式"章节模板输出给用户。

## 输出格式

### 结构化数据输出（JSON，供下游系统使用）

```json
{
  "meta": {
    "report_period": "2024-01-01 ~ 2024-12-31",
    "is_fiscal_year_aligned": true,
    "declaration_type": "年度",
    "unit": "万元",
    "currency": "CNY",
    "currency_conversion_note": null
  },
  "balance_sheet": {
    "total_assets": 100000.00,
    "total_liabilities": 60000.00,
    "owners_equity": 40000.00,
    "current_liabilities": 35000.00,
    "cash_and_equivalents": 12000.00,
    "short_term_borrowings": 10000.00,
    "revenue": 80000.00
  },
  "income_statement": {
    "revenue": 80000.00,
    "revenue_last_period": 72000.00,
    "operating_cost": 50000.00,
    "operating_profit": 18000.00,
    "total_profit": 17000.00,
    "net_profit": 14000.00,
    "accounting_depreciation": 3000.00,
    "actual_employee_compensation": 6000.00
  },
  "tax_return": {
    "taxable_sales": 82000.00,
    "output_tax": 10660.00,
    "input_tax": 8500.00,
    "vat_payable": 2160.00,
    "vat_paid": 2150.00,
    "tax_revenue": 80000.00,
    "tax_total_profit": 17000.00,
    "tax_adjustment_increase": 500.00,
    "taxable_income": 17500.00,
    "income_tax_payable": 4375.00,
    "income_tax_paid": 4300.00,
    "tax_depreciation": 3100.00,
    "deductible_employee_compensation": 5900.00
  }
}
```

### 审核报告输出（Markdown，交付给用户）

**注意**：以下区块按条件输出。带 ⭐"必输出"的区块始终展示；其余区块**仅在存在异常/用户提问时**展示。

````markdown
# 📊 企业财报三表勾稽检查报告

---

## ⏱ 一、时间检查 ⭐必输出

| 项目 | 内容 |
|------|------|
| 发生时间窗口 | 2024-01-01 ~ 2024-12-31 |
| 三表时间一致性 | 一致 / 不一致 |
| 是否与自然年错位 | 错位 / 无错位 |
| 申报类型 | 月度 / 季度 / 年度 |

---

## ❗ 二、字段完整性检查（仅异常时输出）

> 本区块仅在存在缺失字段时展示。

| 报表 | 缺失字段 | 说明（≤50字） | 查验引导 |
|------|---------|--------------|----------|
| 资产负债表 | 货币资金 | 未识别到该科目金额 | 资产负债表·流动资产首行，PDF第3页 |

---

## 📑 三、原始指标输出 ⭐必输出

> 金额单位：**万元**，币种：**CNY**（若存在折算，此处会注明"已由XXX按汇率X.XX折算为CNY"）

### 3.1 资产负债表

| 类目 | 金额（万元） |
|------|------------|
| 【负债表】总资产 | 100,000.00 |
| 【负债表】总负债 | 60,000.00 |
| 【负债表】流动负债合计 | 35,000.00 |

### 3.2 利润表 — 经营结果

| 类目 | 金额（万元） |
|------|------------|
| 【利润表】本期营业收入 | 80,000.00 |
| 【利润表】上期营业收入 | 72,000.00 |
| 【利润表】营业成本 | 50,000.00 |
| 【利润表】利润总额 | 17,000.00 |
| 【利润表】净利润 | 14,000.00 |

### 3.3 利润表 — 税务指标

| 类目 | 金额（万元） |
|------|------------|
| 【利润表】应税销售额 | 82,000.00 |
| 【利润表】实缴增值税额 | 2,150.00 |
| 【利润表】企业应纳税所得额 | 17,500.00 |
| 【利润表】实缴企业所得税额 | 4,300.00 |
| 【利润表】企业纳税调增金额 | 500.00 |

> 未识别/未匹配的科目，金额栏标注：⚠️ 异常（未识别/未匹配）

---

## 🔍 四、核心指标检查（仅异常时输出）

> 本区块仅在下列任一项结果为"否/异常"时展示。

| # | 检查项 | 结果 | 说明（≤50字） | 查验引导 |
|---|--------|------|--------------|----------|
| C-01 | 增值税应税收入 = 会计收入？ | 否 | 应税收入较会计收入低12%，疑漏申报 | 增值税申报表主表第1行 / 利润表第1行 |
| C-02 | 应纳税所得额 = 利润总额？ | 否 | 差异属正常税会调整，请核对调整明细 | A105000 纳税调整明细表 |
| C-03 | 税法折旧 ?= 会计折旧？ | 否 | 差异来自加速折旧优惠 | 附注·固定资产 / A105080 |
| C-04 | 税表可扣除职工薪酬 = 实际计提？ | 否 | 税前扣除低于实际计提，存在调增 | A105050 职工薪酬扣除明细 |

---

## 🔗 五、跨表校验（仅异常时输出）

> 本区块仅在下列任一项结果为"异常/否"时展示。

| # | 校验项 | 结果 | 说明（≤50字） | 查验引导 |
|---|--------|------|--------------|----------|
| X-01 | 增值税应税销售额 ≥ 营业收入 且差异 ≤ ±10% | 符合预期 / 异常 | 差异幅度 15%，建议核对视同销售与价外费用 | 增值税申报表 / 利润表 |
| X-02a | 所得税申报表营业收入 ≈ 利润表营业收入 | 是 / 否 | —— | A100000 与 利润表第1行 |
| X-02b | 所得税申报表利润总额 ≈ 利润表利润总额 | 是 / 否 | —— | A100000 与 利润表 |
| X-03 | 应纳所得税额 ≈ 利润总额 × 法定税率 - 减免 - 抵免 | 是 / 否 | 偏离显著，建议核对税率适用与优惠 | A100000 主表 |

---

## 📝 六、补充分析（用户自定义检查项，可选）

> 本区块仅在用户调用时附带了其他问题时展示，以自然语言形式作为补充。

---

> ⚠️ **免责声明**：本报告基于OCR识别结果自动生成，仅供初审参考，不构成审计或税务意见。最终结论以人工审核为准。
````

## 密钥配置

### Step 1: 获取 API 密钥

🔗 **[腾讯云 API 密钥管理](https://console.cloud.tencent.com/cam/capi)**

### Step 2: 获取/购买 OCR 服务

🔗 **[腾讯云文字识别 OCR 购买页](https://buy.cloud.tencent.com/iai_ocr)**

在购买页面中选择 **表格识别（高精度版）** 完成购买。

### Step 3: 设置环境变量

**Linux / macOS：**
```bash
export TENCENTCLOUD_SECRET_ID="你的SecretId"
export TENCENTCLOUD_SECRET_KEY="你的SecretKey"
```

**Windows (PowerShell)：**
```powershell
$env:TENCENTCLOUD_SECRET_ID = "你的SecretId"
$env:TENCENTCLOUD_SECRET_KEY = "你的SecretKey"
```
