Draft
作为企业用户,
我希望人才列表和详情API使用order_person.work_status作为统一工作状态源,
以便能够精确筛选"在职"、"待入职"、"离职"状态,解决当前状态映射不准确的问题。
从史诗文件复制的验收标准编号列表
work_status='working'的人员work_status='pre_working'的人员work_status='resigned'的人员order_person.work_status将故事分解为实施所需的具体任务和子任务。 在相关处引用适用的验收标准编号。
[ ] 任务1:查询逻辑重构(disability-module扩展)(AC: 1, 2, 3, 4, 5)
disabled-person.service.ts的findAllForCompany方法中,修改查询逻辑:使用order_person.work_status而不是disabled_person.job_status作为工作状态源order_person记录(按join_date降序)来确定当前工作状态MAX(op.work_status)或通过子查询获取最新状态WorkStatus枚举值转换为中文状态:'working'→"在职"、'pre_working'→"待入职"、'resigned'→"离职"、'not_working'→"未就业"(后备)[ ] 任务2:筛选条件优化(AC: 1, 2, 3, 5)
jobStatus筛选逻辑,直接使用order_person.work_status进行过滤WorkStatus枚举值的映射:"在职"→'working'、"待入职"→'pre_working'、"离职"→'resigned'CompanyPersonListQuerySchema),明确状态映射关系[ ] 任务3:人才详情API统一(AC: 4, 5)
findOneForCompany方法中,同样使用order_person.work_status作为工作状态源[ ] 任务4:数据库性能优化(AC: 6)
order_person表已有['personId', 'workStatus']、['joinDate']等索引['personId', 'joinDate', 'workStatus'][ ] 任务5:Schema和类型更新(AC: 5, 8)
CompanyPersonListQuerySchema,明确状态筛选选项和映射关系CompanyPersonListSchema和CompanyPersonDetailSchema,使用一致的枚举类型[ ] 任务6:前端状态显示统一(AC: 5)
[ ] 任务7:集成测试全面覆盖(AC: 7)
person-extension.integration.test.ts中新增测试用例,覆盖所有状态场景[ ] 任务8:兼容性保障(AC: 9)
work_status值仅填充从docs文件夹中的实际工件提取的相关信息,与此故事相关:
故事012.011(企业专用人才管理API)已完成的变更:
disabled-person.service.ts中实现findAllForCompany和findOneForCompany方法[来源:docs/stories/012.011.story.md]person-extension.route.ts文件已包含企业专用人才路由[来源:docs/stories/012.011.story.md]enterpriseAuthMiddleware已实现(故事012.002)[来源:docs/stories/012.002.story.md]基于现有实体定义和架构文档:
残疾人实体(allin-packages/disability-module/src/entities/disabled-person.entity.ts):
disabled_person(@Entity('disabled_person'))id(映射到person_id列)name、gender、idCard、disabilityId、disabilityType、disabilityLevel、birthDate、phone、jobStatus等[来源:docs/stories/012.011.story.md#数据模型]订单人员实体(allin-packages/order-module/src/entities/order-person.entity.ts):
order_person(@Entity('order_person'))id(映射到op_id列)orderId、personId、joinDate、salaryDetail、workStatus等[来源:docs/stories/012.011.story.md#数据模型]personId关联DisabledPerson,orderId关联EmploymentOrder工作状态枚举(@d8d/allin-enums包):
WorkStatus枚举包含:'not_working'、'pre_working'、'working'、'resigned'[来源:docs/prd/epic-012-api-supplement-for-employer-mini-program.md#故事012-13]API路径约定(来自史诗012):
api/v1/yongren 前缀[来源:docs/prd/epic-012-api-supplement-for-employer-mini-program.md#api路径约定]GET /api/v1/yongren/disability-person(列表)、GET /api/v1/yongren/disability-person/{id}(详情)[来源:docs/stories/012.011.story.md#api规范]验证系统规范(来自架构文档):
z.nativeEnum(WorkStatus)[来源:docs/architecture/backend-module-package-standards.md#枚举验证]allin-packages/disability-module/src/schemas/person-extension.schema.ts[来源:项目结构]基于项目结构指南:
allin-packages/disability-module/src/services/disabled-person.service.ts[来源:docs/architecture/source-tree.md]allin-packages/disability-module/src/routes/person-extension.route.ts[来源:项目结构验证]allin-packages/disability-module/src/schemas/person-extension.schema.ts[来源:项目结构验证]allin-packages/disability-module/tests/integration/person-extension.integration.test.ts[来源:项目结构验证]测试策略(来自架构文档):
tests/integration/文件夹与源码并列[来源:docs/architecture/testing-strategy.md#集成测试]测试数据管理:
id作为属性名(映射到数据库列如person_id)[来源:docs/architecture/backend-module-package-standards.md#主键命名]allin-packages/{module-name}-module/模式[来源:docs/architecture/backend-module-package-standards.md#包结构规范]GenericCrudService或扩展其功能[来源:docs/architecture/backend-module-package-standards.md#genericcrudservice继承]| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-12-20 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
此部分由开发代理在实施期间填写