---
name: baoyu-overdue-analysis
description: |
  宝锐生物逾期应收账回款分析 — 从3月/4月逾期回款Excel提取关键数据，
  生成含图表的xlsx分析报告。数据源使用"附表_逾期&未逾期（汇总）"工作表，
  而非"逾期应收回款_进度"（后者仅含部分人员数据）。
triggers:
  - 逾期应收账款分析
  - 回款进度报告
  - 3月/4月回款对比
  - 销售员逾期排名
---

# 宝锐生物逾期回款分析

## 数据源

- 3月: `~/work/secure/2026/5月工作汇报/2026年3月逾期应收回款计划-总表（回款进度） .xlsx`
- 4月: `~/work/secure/2026/5月工作汇报/2026年4月逾期应收回款计划-总表（回款进度）.xlsx`
- **5月（销售拓展）**: `~/work/secure/2026/6月工作汇报/回款/2026年5月逾期应收回款计划-总表（回款进度）-销售拓展.xlsx`
- **5月（大客户）**: `~/work/secure/2026/6月工作汇报/回款/2026年5月逾期应收回款计划-总表（回款进度）-大客户.xlsx`
- **6月（销售拓展）**: `~/work/secure/2026/6月工作汇报/回款/2026年6月逾期应收回款计划-总表（回款进度）-销售拓展.xlsx`
- **6月（大客户）**: `~/work/secure/2026/6月工作汇报/回款/2026年6月逾期应收回款计划-总表（回款进度）-大客户.xlsx`

⚠️ 数据分两个文件时需分别加载后合并。使用"附表_逾期&未逾期（汇总）"Sheet（column 8=逾期天数, 9=逾期金额, 10=未逾期天数, 11=未逾期金额, 12=5月回款金额）。风险预测从"逾期应收回款_计划"Sheet补全（column 10=账龄, 12=风险预测）。

### 6月文件列布局变异（重大陷阱）

6月文件与3-5月文件列布局**不同**：
- col 0=销售部门, 1=销售员, 2=往来单位, 3=单据编号, 7=应收金额原币, 8=逾期天数或'-', 9=逾期金额（当8为数字时）或未逾期金额（当8='-'时）
- **关键**：col 8/9 的行为是**条件式的**——如果该笔逾期，col 8=逾期天数（数字），col 9=逾期金额；如果未逾期，col 8='-'，col 9='-'，此时逾期天数和金额跑到 col 10/col 11 变成了"未逾期天数/未逾期金额"
- **提取逻辑**：先判断 col 8 是否为有效数字（`try int()`），仅当 col 8 是数字时 col 9 才是逾期金额，否则跳过该行
- 大客户文件从 row 4 开始是数据，销售拓展文件从 row 4 开始（row 3 是结算组织信息）
- 提取逾期数据的模式：
```python
overdue_days = vals[8]
if overdue_days is None or overdue_days == '-' or overdue_days == '':
    continue  # 未逾期，跳过
try:
    overdue_days = int(overdue_days)
    overdue_amt = float(vals[9])
except: continue
if overdue_amt > 0: items.append(...)
```

## 关键教训：必须用"附表"而非"进度"表

`逾期应收回款_进度` 表仅包含大客户销售部有数据的人员（黄明月、赵云浩），
销售拓展部、生物医药部、区域、国际业务部在此表中均为0或#DIV/0!。

正确做法：使用 `附表_逾期&未逾期（汇总）` 工作表，该表包含所有部门完整数据。
其中 column J=逾期金额, column L=未逾期金额。

风险/账龄信息从 `逾期应收回款_计划` 表补全（column K=账龄, column M=风险预测）。

## 月度对比分析（5月 vs 6月）

当同时有相邻两月回款数据时，输出对比表：
- 按销售员列出：逾期金额变化、回款金额变化
- 标注趋势：✅下降/🔴上升/⚡暴涨
- 根据变化趋势给出6月计划回款金额建议：
  - A类(逾期在降)：计划=逾期的80-90%
  - B类(逾期微涨)：计划=逾期的50-70%
  - C类(逾期暴涨+高难度)：计划=逾期的20-40%，需领导介入

## 关键教训：Excel 浮点转换必须用安全函数

Excel 单元格可能包含 `\`、`/`、`None` 等非数值字符，直接 `float()` 会崩溃。
**所有数值提取必须包裹 try/except**：

```python
def sf(v):
    """Safe float conversion for Excel cells with artifacts"""
    try:
        return float(v) if v and str(v).strip() not in ('', 'None', '\\\\') else 0
    except (ValueError, TypeError):
        return 0
```

此模式适用于所有从中文 Excel 提取数值的场景（销售额/逾期额/回款额等）。

## 生成报告结构

1. **月度对比总览** — 核心指标环比（逾期/未逾期/合计/变化率）
2. **全员逾期应收对比** — 14人明细 + 柱状图（按4月逾期排序）
3. **部门汇总** — 按部门聚合
4. **重点逾期客户TOP20** — 含账龄+风险标记+颜色标注
5. **账龄分布** — 饼图（365天以上/181-365天/91-180天...）

## 输出路径

**独立报告**: `~/work/outputs/回款分析/2026年X月逾期回款分析报告.xlsx`

**整合到客户分析报告**: 当用户要求将回款分析与销售订单分析合并时，回款模块作为追加Sheet插入到 `客户分析报告_2024-2026.xlsx` 中（Sheet名: 回款-全员汇总 / 回款-Top20客户 / 回款-账龄分布），同时HTML仪表盘追加回款KPI卡片+账龄饼图+逾期客户排行榜。

## 样式规范

- 高风险行：红色底色 `fdedec`
- 逾期>50万：红色底色
- 逾期>10万：黄色底色
- 365天以上账龄饼图红色 `e74c3c`
- DeepSeek蓝主题表头 `1a5276`
