# Story 13.29: 删除未使用的 not_working 工作状态 Status: done ## 元数据 - Epic: Epic 14 - UI/UX 改进 - 状态: done - 优先级: P2 (代码简化) - 故事点: 2 - 依赖: Story 13.28 完成 ## 用户故事 作为系统开发者, 我希望删除未使用的 `not_working` 工作状态, 以简化状态枚举并减少系统复杂性。 ## 背景 ### 问题发现 在 Story 13.28 统一工作状态显示名称后,发现 `not_working` (未就业) 状态存在以下问题: 1. **无实际业务用途**:仅作为数据库默认值使用 2. **不参与统计**:统计模块不统计这个状态 3. **UI 不显示**:人才管理筛选中没有"未就业"选项 4. **功能重复**:与 `pre_working` (待入职) 业务含义重叠 ### 调查结论 | 状态 | 业务含义 | 实际使用 | 统计 | UI显示 | |------|---------|---------|------|--------| | `not_working` | 未就业 | ❌ 仅作默认值 | ❌ 不统计 | ❌ 不显示 | | `pre_working` | 待入职 | ✅ 广泛使用 | ✅ 统计 | ✅ 显示 | | `working` | 在职 | ✅ 广泛使用 | ✅ 统计 | ✅ 显示 | | `resigned` | 已离职 | ✅ 广泛使用 | ✅ 统计 | ✅ 显示 | ## 验收标准 ### AC 1: 删除枚举定义 **Given** WorkStatus 枚举 **When** 删除 NOT_WORKING **Then** 枚举只包含 3 个值:PRE_WORKING, WORKING, RESIGNED ### AC 2: 更新所有默认值 **Given** 所有使用 NOT_WORKING 作为默认值的 Schema **When** 更新默认值 **Then** 所有默认值改为 PRE_WORKING ### AC 3: 移除 UI 选项 **Given** 管理后台和工作表单 **When** 查看状态下拉框 **Then** 不应显示"未就业"选项 ### AC 4: 更新测试 **Given** 所有使用 NOT_WORKING 的测试 **When** 更新测试数据 **Then** 测试应使用 PRE_WORKING 替代 ### AC 5: 验证通过 **Given** 所有修改完成 **When** 运行测试和类型检查 **Then** 所有测试应通过,无类型错误 ## 修改的文件 ### 枚举定义 (1 个) - `allin-packages/enums/src/enums/work-status.enum.ts` - 删除 `NOT_WORKING = 'not_working'` - 更新 `WorkStatusLabels` - 更新 `WorkStatusDescriptions` - 更新 `WORK_STATUSES` 数组 ### Schema 层 (1 个) - `allin-packages/order-module/src/schemas/order.schema.ts` - `UpdateOrderPersonSchema` - 默认值改为 PRE_WORKING - `CreateOrderPersonSchema` - 默认值改为 PRE_WORKING - `BatchAddPersonItemSchema` - 默认值改为 PRE_WORKING ### Entity 层 (1 个) - `allin-packages/order-module/src/entities/order-person.entity.ts` - 默认值改为 PRE_WORKING ### Service 层 (2 个) - `allin-packages/order-module/src/services/order.service.ts` - 批量添加人员默认值改为 PRE_WORKING - `allin-packages/disability-module/src/services/disabled-person.service.ts` - 移除 FrontendWorkStatusLabels 中的 NOT_WORKING 条目 - 移除 chineseToWorkStatus 映射 ### UI 组件 (2 个) - `allin-packages/order-management-ui/src/components/OrderForm.tsx` - 移除 `workStatusOptions` 中的"未就业"选项 - `allin-packages/order-management-ui/src/components/OrderDetailModal.tsx` - 移除 SelectItem 中的"未入职"选项 - 批量添加默认值改为 PRE_WORKING ### 小程序 UI (2 个) - `mini-ui-packages/rencai-employment-ui/src/types/employment.ts` - 删除 NOT_WORKING 枚举值 - 更新 WorkStatusLabels - `mini-ui-packages/yongren-talent-management-ui/src/pages/TalentManagement/TalentManagement.tsx` - 移除 CHINESE_STATUS_TO_ENUM 中的"未就业"映射 ### 测试文件 (4 个) - `allin-packages/enums/tests/unit/enums.test.ts` - `allin-packages/enums/tests/unit/export.test.ts` - `allin-packages/order-module/tests/integration/order.integration.test.ts` - `allin-packages/order-management-ui/tests/integration/order.integration.test.tsx` ## 修改结果 ### 简化后的工作状态 | 枚举值 | 中文标签 | 说明 | |--------|----------|------| | `PRE_WORKING` | 待入职 | 已安排工作但尚未入职 | | `WORKING` | 在职 | 正在工作中 | | `RESIGNED` | 已离职 | 工作已结束 | ### 代码统计 - 修改文件数:13 个 - 净减少代码行数:21 行 ## 验证结果 - ✅ 枚举包测试:17 个测试全部通过 - ✅ 类型检查:通过 - ✅ 无 NOT_WORKING 相关的类型错误 ## Dev Notes ### 相关文件 - **枚举定义**: `allin-packages/enums/src/enums/work-status.enum.ts` - **订单 Schema**: `allin-packages/order-module/src/schemas/order.schema.ts` - **管理后台组件**: `allin-packages/order-management-ui/src/components/` ### 工作状态演进 | 版本 | 状态数 | 状态 | |------|--------|------| | 修复前 | 4 | NOT_WORKING, PRE_WORKING, WORKING, RESIGNED | | 修复后 | 3 | PRE_WORKING, WORKING, RESIGNED | ### 注意事项 - 数据库中已有的 `not_working` 记录不会自动转换 - 新建订单人员默认为 `PRE_WORKING` 状态 - 这是一个简化性修改,不影响核心业务功能 ## Dev Agent Record ### Agent Model Used Claude (d8d-model) ### Debug Log References N/A ### Completion Notes List - Story 创建于 2026-01-19 - 基于 Story 13.28 的调查结果 - 删除了未使用的 not_working 状态 - 简化了工作状态枚举 ### File List 修改文件: - `allin-packages/enums/src/enums/work-status.enum.ts` - `allin-packages/order-module/src/schemas/order.schema.ts` - `allin-packages/order-module/src/entities/order-person.entity.ts` - `allin-packages/order-module/src/services/order.service.ts` - `allin-packages/disability-module/src/services/disabled-person.service.ts` - `allin-packages/order-management-ui/src/components/OrderForm.tsx` - `allin-packages/order-management-ui/src/components/OrderDetailModal.tsx` - `mini-ui-packages/rencai-employment-ui/src/types/employment.ts` - `mini-ui-packages/yongren-talent-management-ui/src/pages/TalentManagement/TalentManagement.tsx` - `allin-packages/enums/tests/unit/enums.test.ts` - `allin-packages/enums/tests/unit/export.test.ts` - `allin-packages/order-module/tests/integration/order.integration.test.ts` - `allin-packages/order-management-ui/tests/integration/order.integration.test.tsx` ### Change Log - 2026-01-19: 创建 Story,删除未使用的 not_working 状态