# 两项修复：结转不依赖考核记录 + 补发查对应月盈亏

## Context
两个bug需要修复：
1. 1月有结转但2月无考核记录 → 结转丢失（当前只遍历G[2]有记录的车）
2. 3月补发1月的奖金 → 应查1月盈亏，当前查的是3月盈亏

## 修改1：结转不依赖考核记录

### 规则
- 1月多跑够结转，2月即使没考核记录也发放结转奖金（完整月）
- 无考核记录时：考核里程=满月目标（如3000km），实际里程=0，视为消耗了一个月目标
- 无客户关联（因无考核记录）→ 不查盈亏，正常发放

### 修改 `calc_engine.py`
在 `calc_feb()` 中，遍历完 `G[2].items()` 后，额外遍历 `G[1]` 中有结转但不在 `G[2]` 中的key：

```
for k, g1 in G1.items():
    if k not in G2 and g1['可结转'] >= 1:
        # 创建虚拟的2月group：考核里程=满月目标，实际=0
        # 发放结转奖金（完整月）
        # 结转剩余月数 -= 1，传递给3月
```

`calc_mar()` 同理：遍历 `G[2]` 中有结转但不在 `G[3]` 中的key。

### 修改 `excel_writer.py`
- `build_payment_records`：无客户关联的结转，loss_status设为'否'（正常发放）

## 修改2：补发查对应月盈亏

### 规则
| 发放类型 | 查哪月盈亏 |
|---------|----------|
| 当月达标/累计补发/结转 | 当月 |
| 补发1月 | 1月 |
| 补发2月 | 2月 |

### 修改 `main.py`
- 将所有月份的 `loss_data` 都传入 `build_payment_records`（不只当月的）

### 修改 `excel_writer.py`
- `build_payment_records` 接收 `all_loss_data={1:..., 2:..., 3:...}`
- 根据发放类型确定查哪个月的盈亏表
- 奖金发放记录表新增列"盈亏查询月"，标明查的是哪个月的盈亏

## 验证
- 找一辆1月有结转但2月无记录的车，确认2月正常发放结转
- 找一辆3月补发1月的车，确认查的是1月盈亏而非3月
- 金额总数合理
