Bläddra i källkod

feat(story-008.007): 添加考勤打卡功能移植任务

- 更新状态:从Ready for Review改为Ready for Development
- 更新验收标准:新增第9项"考勤打卡功能移植",包含5个子任务
- 新增任务14:移植考勤打卡功能(出勤表导出)
  - 分析源系统AttendanceModal.tsx组件
  - 创建AttendanceModal组件并完成技术栈转换
  - 集成到订单管理UI中(OrderDetailModal)
  - 添加xlsx依赖
  - 编写组件测试
- 更新技术栈转换要求:添加考勤打卡功能转换
- 更新变更日志:添加版本1.7记录
- 确保订单管理模块完整覆盖所有功能,包括出勤表导出

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 dag sedan
förälder
incheckning
d6c8a9352b
1 ändrade filer med 59 tillägg och 4 borttagningar
  1. 59 4
      docs/stories/008.007.transplant-order-management-ui.story.md

+ 59 - 4
docs/stories/008.007.transplant-order-management-ui.story.md

@@ -1,7 +1,7 @@
 # Story 008.007: 移植订单管理UI(order → @d8d/allin-order-management-ui)
 
 ## Status
-Ready for Review - 所有任务已完成,测试已修复。主要问题已解决
+Ready for Development - 新增考勤打卡功能移植任务。已完成任务状态
 1. ✅ 薪资查询功能:现在调用真实的RPC API(@d8d/allin-salary-management-ui),支持字符串和数字ID格式
 2. ✅ 获取已绑定人员功能:重新添加了DisabledPerson关联,订单详情API现在返回残疾人员的详细信息(姓名、性别、残疾类型、联系电话等)
 3. ✅ 省市ID问题:测试mock已更新,使用数字ID而不是汉字
@@ -11,6 +11,7 @@ Ready for Review - 所有任务已完成,测试已修复。主要问题已解
 7. ⚠️ 跳过测试:6个测试因DOM渲染时序问题标记为跳过(不影响核心功能):
    - "应该成功批量添加人员到已存在订单"(旧设计,添加人员流程已改为在OrderDetailModal中)
    - 任务12的5个测试(DOM渲染时序问题)
+8. ⚠️ 新增任务:任务14移植考勤打卡功能(出勤表导出)待完成
 
 ## Story
 **As a** 开发者,
@@ -26,9 +27,15 @@ Ready for Review - 所有任务已完成,测试已修复。主要问题已解
 6. 完成API客户端转换:复杂业务API(使用rpcClient + ClientManager模式)
 7. 完成状态管理转换:订单工作流状态
 8. 完成表单转换:多实体关联表单(包含区域选择)
-9. 配置package.json:复杂依赖管理(包含`@d8d/area-management-ui`)
-10. 编写组件测试:覆盖订单全生命周期(包含区域相关功能测试)
-11. 通过类型检查和基本测试验证
+9. **考勤打卡功能移植**:移植出勤表导出功能
+   - 创建`AttendanceModal`组件,从Ant Design转换为@d8d/shared-ui-components组件
+   - 集成到订单管理UI中,保持原有交互流程
+   - 完成技术栈转换:Modal、DatePicker、Select等组件转换
+   - 保持Excel导出功能(使用xlsx库)
+   - 编写组件测试:`tests/components/AttendanceModal.test.tsx`
+10. 配置package.json:复杂依赖管理(包含`@d8d/area-management-ui`、`xlsx`等)
+11. 编写组件测试:覆盖订单全生命周期(包含区域相关功能测试)
+12. 通过类型检查和基本测试验证
 
 ## Tasks / Subtasks
 - [x] 任务1:创建订单管理UI包基础结构 (AC: 1, 9)
@@ -308,6 +315,52 @@ Ready for Review - 所有任务已完成,测试已修复。主要问题已解
     - 验证入职日期使用当前日期
     - 验证成功后清空待添加列表,刷新显示
 
+- [ ] 任务14:移植考勤打卡功能(出勤表导出)(新增)(AC: 9)
+  - [ ] **问题分析**:原系统中有考勤打卡功能(出勤表导出),位于订单管理模块的`AttendanceModal.tsx`组件中,用于为订单人员生成月度出勤Excel表
+  - [ ] **解决方案**:移植`AttendanceModal`组件,完成技术栈转换并集成到订单管理UI中
+  - [ ] **实现步骤**:
+    1. **分析源系统考勤打卡组件**:`allin_system-master/client/app/admin/dashboard/order/AttendanceModal.tsx`
+       - **源文件**:`allin_system-master/client/app/admin/dashboard/order/AttendanceModal.tsx`
+       - **查看要点**:出勤表导出逻辑、月份选择、出勤天数选择、Excel生成逻辑、模拟出勤数据算法
+    2. **创建AttendanceModal组件**:`src/components/AttendanceModal.tsx`
+       - **目标文件**:`allin-packages/order-management-ui/src/components/AttendanceModal.tsx`
+       - **功能**:出勤表导出模态框,支持选择月份和每周出勤天数,生成月度出勤Excel表
+       - **技术栈转换**:
+         - Ant Design Modal → @d8d/shared-ui-components Dialog
+         - Ant Design DatePicker → @d8d/shared-ui-components DatePicker
+         - Ant Design Select → @d8d/shared-ui-components Select
+         - Ant Design Button → @d8d/shared-ui-components Button
+       - **Excel导出功能**:保持使用xlsx库生成Excel文件
+       - **模拟出勤算法**:保持原系统的出勤模拟算法(√标记出勤,空白标记缺勤)
+    3. **集成到订单管理UI中**:
+       - **集成位置**:在OrderDetailModal中集成AttendanceModal组件
+       - **交互流程**:保持原有交互流程,点击"出勤导出"按钮打开AttendanceModal
+       - **数据传递**:传递订单人员列表和订单名称到AttendanceModal
+    4. **添加xlsx依赖**:
+       - **依赖配置**:在package.json中添加`xlsx`依赖
+       - **版本选择**:使用与原系统相同或兼容的版本
+    5. **编写组件测试**:`tests/components/AttendanceModal.test.tsx`
+       - **测试文件**:`allin-packages/order-management-ui/tests/components/AttendanceModal.test.tsx`
+       - **测试场景**:
+         - 验证AttendanceModal正常打开和关闭
+         - 验证月份选择功能
+         - 验证出勤天数选择功能
+         - 验证Excel导出功能(模拟文件下载)
+         - 验证表单验证和错误处理
+    6. **更新Dev Notes**:在Dev Notes中添加考勤打卡功能的技术要点
+  - [ ] **技术要求**:
+    - 保持与原系统相同的出勤表导出功能
+    - 保持Excel文件格式和内容一致性
+    - 保持模拟出勤数据的算法逻辑
+    - 集成到OrderDetailModal中,保持原有用户体验
+    - 添加xlsx依赖到package.json
+  - [ ] **测试要求**:
+    - 验证AttendanceModal组件正常渲染
+    - 验证月份选择器功能正常
+    - 验证出勤天数选择器功能正常
+    - 验证Excel导出功能正常工作(模拟测试)
+    - 验证组件集成到OrderDetailModal中正常工作
+
 ## Dev Notes
 
 ### 吸取前面故事的经验(基于故事008.006)
@@ -434,6 +487,7 @@ Ready for Review - 所有任务已完成,测试已修复。主要问题已解
 - **枚举常量**:硬编码枚举 → 使用`@d8d/allin-enums`包中的枚举
 - **订单人员资产管理**:自定义资产表格 → **创建订单人员资产关联组件**,关联订单、残疾人、文件三张表,支持6种资产类型管理
 - **人员选择组件复用**:自定义人员选择 → **直接使用故事008.005的`DisabledPersonSelector`组件**,避免重复开发,实现组件复用
+- **考勤打卡功能**:出勤表导出 → **移植AttendanceModal组件**,保持Excel导出功能,集成xlsx库,保持模拟出勤算法
 
 ### Testing
 
@@ -457,6 +511,7 @@ Ready for Review - 所有任务已完成,测试已修复。主要问题已解
 ## Change Log
 | Date | Version | Description | Author |
 |------|---------|-------------|--------|
+| 2025-12-08 | 1.7 | 添加任务14移植考勤打卡功能(出勤表导出),更新验收标准 | John (PM) |
 | 2025-12-08 | 1.6 | 添加任务12修正订单详情弹窗添加人员流程,与原系统保持一致 | John (PM) |
 | 2025-12-08 | 1.5 | 添加任务11实现订单详情弹窗功能,与原系统功能对齐 | John (PM) |
 | 2025-12-06 | 1.4 | 添加任务10修复订单创建时的人员绑定差异,确保与原系统功能一致 | John (PM) |