40 lines
4.3 KiB
Markdown
40 lines
4.3 KiB
Markdown
|
|
# 数字员工财务经验沉淀与定时提醒开发 TODO
|
|||
|
|
|
|||
|
|
## 阶段一:调研与文档
|
|||
|
|
|
|||
|
|
- [x] 梳理现有数字员工技能、画像扫描、财务看板快照和看板聚合链路。[CONCEPT: 背景与问题] 证据:已核对 `agent_foundation_digital_employee_tasks.py`、`digital_employee_dashboard.py`、`employee_profile_scan_task.py`。
|
|||
|
|
- [x] 梳理审批、预算、出差申请和报销单模型字段。[CONCEPT: 方案设计] 证据:已核对 `approval.py`、`budget.py`、`financial_record.py`、`user_agent_application.py`。
|
|||
|
|
- [x] 明确第一阶段不新增数据库结构,只用 `agent_runs` 和 `agent_tool_calls` 保存提醒扫描报告。[CONCEPT: 目标与非目标] 证据:`CONCEPT.md` 已写明。
|
|||
|
|
- [x] 创建概念文档和开发 TODO。[CONCEPT: 全文] 证据:本目录 `CONCEPT.md` 与 `TODO.md`。
|
|||
|
|
|
|||
|
|
## 阶段二:后端提醒扫描任务
|
|||
|
|
|
|||
|
|
- [x] 新增 `digital_employee_reminder_task.py`,定义 `DigitalEmployeeReminderTaskService`。[CONCEPT: 后端] 证据:新增服务文件并通过 ruff。
|
|||
|
|
- [x] 实现待审批提醒扫描,按直属领导聚合待审批单据。[CONCEPT: 定时提醒技能] 证据:`test_digital_employee_reminder_task.py` 覆盖 `approval_pending`。
|
|||
|
|
- [x] 实现预算编制/预算缺口提醒,按当前年度和期间识别预算池缺口。[CONCEPT: 定时提醒技能] 证据:`test_digital_employee_reminder_task.py` 覆盖 `budget_compilation`。
|
|||
|
|
- [x] 实现出差申请到期提醒,识别已结束但未报销或未关闭的申请单。[CONCEPT: 定时提醒技能] 证据:`test_digital_employee_reminder_task.py` 覆盖 `travel_application_expiry`。
|
|||
|
|
- [x] 实现报销逾期/补材料/付款/归档提醒,识别流程卡点。[CONCEPT: 定时提醒技能] 证据:`test_digital_employee_reminder_task.py` 覆盖 `reimbursement_overdue`。
|
|||
|
|
- [x] 将提醒报告写入 `AgentRun` 和 `AgentToolCall`,包含 `recipient_count`、`reminder_count` 和分类计数。[CONCEPT: 数据输出结构] 证据:任务服务测试读取返回 summary 与 report。
|
|||
|
|
|
|||
|
|
## 阶段三:调度与看板
|
|||
|
|
|
|||
|
|
- [x] 新增 `digital_employee_reminder_scheduler.py`,默认每天 02:00 扫描,支持开发环境首次延迟运行。[CONCEPT: 后端] 证据:新增调度器并通过 ruff。
|
|||
|
|
- [x] 在 `main.py` 生命周期中启动和关闭提醒调度器。[CONCEPT: 后端] 证据:`main.py` 已接入 scheduler start/shutdown。
|
|||
|
|
- [x] 扩展 `DigitalEmployeeDashboardService`,识别 `digital_employee_reminder_scan`。[CONCEPT: 前端] 证据:看板聚合测试覆盖 task type。
|
|||
|
|
- [x] 看板指标增加提醒产出计数,最近运行记录显示“定时提醒扫描”。[CONCEPT: 指标与验收] 证据:`test_digital_employee_dashboard_service.py` 覆盖 `reminders` 和 `businessOutputs`。
|
|||
|
|
|
|||
|
|
## 阶段四:测试与验证
|
|||
|
|
|
|||
|
|
- [x] 新增后端单元测试,验证四类提醒的收件人、数量和摘要。[CONCEPT: 测试方案] 证据:`server/tests/test_digital_employee_reminder_task.py`。
|
|||
|
|
- [x] 新增数字员工看板聚合测试,验证提醒数量进入 `businessOutputs`。[CONCEPT: 测试方案] 证据:`server/tests/test_digital_employee_dashboard_service.py`。
|
|||
|
|
- [x] 在容器内运行 ruff:`docker exec -w /app -e SERVER_VENV_DIR=/tmp/x-financial-server-venv x-financial-main /tmp/x-financial-server-venv/bin/python -m ruff check <changed-files>`。[CONCEPT: 测试方案] 证据:All checks passed。
|
|||
|
|
- [x] 在容器内运行定向 pytest,超时 60s,验证提醒任务和看板聚合。[CONCEPT: 测试方案] 证据:`5 passed in 3.39s`。
|
|||
|
|
- [x] 重启 `x-financial-main`,查询 `agent_runs` 确认提醒扫描运行记录成功生成。[CONCEPT: 指标与验收] 证据:`run_4c3a2b847fae4ada` succeeded,提醒 47 人,生成 403 条事项。
|
|||
|
|
- [x] 调用 `/api/v1/analytics/digital-employee-dashboard`,确认任务分布包含定时提醒扫描。[CONCEPT: 指标与验收] 证据:HTTP 200,`reminders=403`,任务分布包含 `digital_employee_reminder_scan`。
|
|||
|
|
|
|||
|
|
## 后续阶段:消息投递闭环
|
|||
|
|
|
|||
|
|
- [ ] 评估是否新增提醒消息表、已读状态和重复提醒抑制策略。[CONCEPT: 风险与开放问题]
|
|||
|
|
- [ ] 设计站内信、邮件或企业微信投递通道。[CONCEPT: 非目标]
|
|||
|
|
- [ ] 设计提醒处理结果回流,用于沉淀“哪些提醒真正有效”。[CONCEPT: 行为沉淀技能]
|