|
|
@@ -0,0 +1,182 @@
|
|
|
+# 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 状态
|