tasks.md 3.4 KB

Implementation Plan: Settlement Status Display

Overview

本实现计划将结算状态显示功能分解为后端API扩展、前端仪表盘更新和导出服务扩展三个主要部分。

Tasks

  • [x] 1. 扩展后端月度统计API

    • 1.1 修改 work_record_service.pyget_monthly_summary() 方法
    • 计算并返回 settled_earningsunsettled_earnings
    • supplier_breakdown 中增加 is_settled 字段
    • Requirements: 1.3, 2.3
    • [ ]* 1.2 编写月度统计结算一致性属性测试
    • Property 1: Monthly Settlement Sum Consistency
    • Validates: Requirements 1.3
  • [x] 2. 扩展后端年度统计API

    • 2.1 修改 work_record_service.pyget_yearly_summary() 方法
    • 为每个人员计算 settled_totalunsettled_total
    • 计算 settled_grand_totalunsettled_grand_total
    • Requirements: 3.2, 3.3
    • [ ]* 2.2 编写年度统计结算一致性属性测试
    • Property 2: Yearly Person Settlement Consistency
    • Property 3: Yearly Grand Total Settlement Consistency
    • Validates: Requirements 3.2, 3.3
  • [x] 3. Checkpoint - 确保后端测试通过

    • 确保所有测试通过,如有问题请询问用户
  • [x] 4. 更新前端仪表盘月度报告

    • 4.1 修改 Dashboard.jsx 月度报告统计卡片区域
    • 增加"已结算收入"统计卡片(绿色图标)
    • 增加"未结算收入"统计卡片(橙色图标)
    • Requirements: 1.1, 1.2
    • 4.2 修改人员按供应商收入明细表格
    • 增加"结算状态"列
    • 未结算行使用浅橙色背景 (#fff7e6)
    • Requirements: 2.1, 2.2
  • [x] 5. 更新前端仪表盘年度汇总

    • 5.1 修改 Dashboard.jsx 年度汇总表格
    • 增加"已结算"和"未结算"列
    • 显示总计行的已结算/未结算金额
    • Requirements: 3.1, 3.3
    • 5.2 调整年度汇总位置到仪表盘底部
    • 将年度汇总Card移动到所有其他部分之后
    • Requirements: 4.1
  • [x] 6. Checkpoint - 确保前端功能正常

    • 确保仪表盘正确显示结算状态,如有问题请询问用户
  • [x] 7. 扩展月度报表导出功能

    • 7.1 修改 export_service.py 的月度明细表
    • DETAIL_HEADERS 增加"结算状态"列
    • _create_detail_sheet() 中输出结算状态
    • Requirements: 5.1, 5.3
    • 7.2 修改 export_service.py 的月度汇总表
    • _create_monthly_summary_sheet() 中增加结算状态列
    • 按人员+供应商+结算状态分组汇总
    • Requirements: 5.2, 5.3
  • [x] 8. 扩展年度报表导出功能

    • 8.1 修改 export_service.py 的年度明细表
    • 复用明细表的结算状态列(已在7.1实现)
    • Requirements: 6.1, 6.3
    • 8.2 修改 export_service.py 的年度汇总表
    • _create_yearly_summary_sheet() 中增加已结算/未结算列
    • Requirements: 6.2, 6.3
    • [ ]* 8.3 编写导出结算状态映射属性测试
    • Property 4: Export Settlement Status Text Mapping
    • Validates: Requirements 5.3, 6.3
  • [x] 9. Final Checkpoint - 确保所有测试通过

    • 确保所有测试通过,如有问题请询问用户

Notes

  • 任务标记 * 的为可选测试任务,可跳过以加快MVP开发
  • 数据库已有 is_settled 字段,无需数据库迁移
  • 属性测试使用 Hypothesis 库
  • 每个任务都引用了具体的需求以便追溯