# 顺丰物流状态判断逻辑

## 核心问题

顺丰API的remark中**不使用"签收"二字**，而是用"派送至本人""派送成功"等。错误地将"派送"匹配为派送中会导致80%+已签收误判。

## 正确判断（19关键词，严格顺序）

```python
DELIVERED_KW = [
    "派送至本人", "派送成功",       # 顺丰主用
    "签收",                        # 冗余保留
    "已通知客户取件", "已取件",     # 特殊情况
    "放入快递柜", "放入丰巢", "放入驿站",  # 柜/站
    "已投递",                      # 投递完成
    "前台签收", "门卫代收", "保安代收", "物业代收",  # 代收
    "快递柜签收", "驿站签收"       # 柜站签收
]
DELIVERING_KW = ["正在派", "派送中", "派件中"]  # 必须在delivered之后判断

if any(kw in remark for kw in DELIVERED_KW):
    st = "delivered"
elif any(kw in remark for kw in DELIVERING_KW):
    st = "delivering"
elif last and last.get("opCode") == "54":
    st = "picked_up"
elif routes:
    st = "in_transit"
else:
    st = "no_data"
```

## 实测案例

| remark | 错误判断 | 正确判断 |
|--------|---------|---------|
| `您的快件已派送至本人` | 派送中 | **已签收** |
| `收方地址特殊，快递员无法联系客户且无法进入，快件派送至【兽医学院128实验室】，已通知客户取件` | 运输中 | **已签收** |
| `快件交给【xxx】，正在派送中` | - | **派送中** ✓ |

2026-07-24 实测：修正前2条/23条已签收 → 修正后414条/527条（78.6%），符合30天数据预期。
