# hr-roster 花名册字段体系 API 文档 (F03) > 服务: hr_roster_field · 端口 9280 · ocai 模式 · 统一 JSON 返回 > 返回约定: `{"code": 0, "data": ...}` 成功;`{"code": 非0, "message": "..."}` 失败 ## 1. 字段分组 (roster_field_group) ### GET /api/roster/field-groups 字段分组列表(按 sort_order 升序,仅未删除)。 ### POST /api/roster/field-groups 新增分组。入参: `group_code`(必填, 唯一), `group_name`(必填), `group_desc`, `is_builtin`, `sort_order`, `is_enabled`。 约束: `group_code` 须匹配 `^[a-zA-Z][a-zA-Z0-9_]{1,63}$`,重复报错。 ### PUT /api/roster/field-groups/{id} 更新分组。支持修改 `group_name/group_desc/sort_order/is_enabled`。 ### DELETE /api/roster/field-groups/{id} 删除分组(软删除)。内置分组(`is_builtin=1`)不可删;分组下有字段时不可删。 ## 2. 字段定义 (roster_field_def) ### GET /api/roster/field-defs?group_id= 字段定义列表,支持 `group_id` 筛选。按 `group_id, sort_order` 升序。 ### POST /api/roster/field-defs 新增字段。入参: `group_id`(必填), `field_code`(必填唯一), `field_name`(必填), `field_type`(必填, 枚举 text/number/date/datetime/select/multi_select/attachment/bool), `is_required/is_unique/is_sensitive`, `default_value`, `options_json`, `validation_rule`, `placeholder/help_text`, `sort_order`, `is_enabled`。 约束: select/multi_select 必须提供 `options_json=[{"label":"","value":""}]`。 ### PUT /api/roster/field-defs/{id} 更新字段定义。 ### DELETE /api/roster/field-defs/{id} 删除字段定义(软删除)。 ### POST /api/roster/field-defs/sort 拖拽排序。入参: `{"items": [{"id":1,"sort_order":10}, ...]}`,批量更新 sort_order。 ### POST /api/roster/field-defs/toggle 字段启停。入参: `{"id":1, "is_enabled": true}`。 ## 3. 员工类型规则 (roster_type_rule) ### GET /api/roster/type-rules 类型规则列表,`required_field_codes` 返回为数组。 ### POST /api/roster/type-rules 新增规则。入参: `rule_code`(唯一), `rule_name`, `emp_type`, `required_field_codes`(数组), `sort_order`, `is_enabled`。 ### PUT /api/roster/type-rules/{id} 更新规则。 ### DELETE /api/roster/type-rules/{id} 删除规则(软删除)。 ## 4. 工号生成规则 (roster_empno_rule) ### GET /api/roster/empno-rules 工号规则列表(按 sort_order 升序,匹配优先级)。 ### POST /api/roster/empno-rules 新增规则。入参: `rule_code`(唯一), `rule_name`, `subsidiary_code`, `prefix`, `date_format`, `seq_length`, `start_seq`, `sort_order`, `is_enabled`。 ### PUT /api/roster/empno-rules/{id} 更新规则。 ### DELETE /api/roster/empno-rules/{id} 删除规则(软删除)。 ### POST /api/roster/empno-rules/generate 生成工号。入参: `{"rule_code": "empno_subs_a"}` 或 `{"subsidiary_code": "001"}`(无参数取默认规则)。 逻辑: 前缀 + 日期段(按 date_format) + 流水号(seq_length 补零);流水号原子递增;冲突报错。 ## 5. options 端点(下拉联动) ### GET /api/roster/options/{field_code} 返回指定选项型字段的 `options` 数组,供前端下拉联动。 约束: 字段须存在、启用,且类型为 select/multi_select。 ## 审计 所有写操作(create/update/delete/sort/toggle/generate)均写入 `roster_op_log`, 记录操作类型、目标表、目标ID、变更前后快照、操作人、IP、时间。