# 运维时区全局北京 — 实施

## 涉及文件

| 层 | 文件 |
|----|------|
| 工具 | `server/utils/display_time.py` |
| Runner | `server/background/schedule_runner.py` |
| 筛选 | `server/infrastructure/database/audit_log_repo.py`, `server/api/settings.py` |
| 前端 | `frontend/src/utils/datetime.ts`, `scheduleCycle.ts`, `ScheduleCyclePicker.vue` |
| 测试 | `tests/test_schedule_next_run.py`, `tests/test_operator_tz.py`（新） |

## 步骤

1. 扩展 `display_time`：`operator_wall`、`beijing_day_range_utc`
2. `schedule_runner` 用北京墙钟匹配 cron；`last_run_at` 写 naive UTC
3. 前端 `beijingWallParts` + `scheduleCycle` 统一北京
4. 审计/告警日期筛选改北京日界
5. 单测 + changelog

## 回滚

还原 runner、scheduleCycle、audit filter 三处；DB 无需回滚。

## 验证

```bash
.venv/bin/python -m pytest tests/test_schedule_next_run.py tests/test_operator_tz.py tests/test_display_time.py -q
cd frontend && npm run type-check
```
