hr-system/docs/hr-roster-field-api.md

3.4 KiB
Raw Blame History

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、时间。