13-29-remove-not-working-status.md 6.0 KB

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 状态