跳转至

FieldextendAuthtimeController(字段扩展管理)

管理企业域下的自定义扩展字段(FieldExtendsVO,挂载到用户表 / 部门表 / 企业域表的 field1~fieldN 列):分页查询扩展字段列表、新建 / 更新 / 批量删除扩展字段,以及按企业域 + 字段类型 + 相关表查询尚未被占用的扩展字段列。

  • 类级基址${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>
  • Tag:字段扩展管理模块(控制器源码声明 @Tag(name = "字段扩展管理模块")
  • 控制器源码obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/fieldextends/FieldextendAuthtimeController.java
  • 公共说明
  • 类继承 BaseAuthTimeController,通过其 success(errmsg, data) / error(errcode, errmsg, errors) 返回统一 Resource(字段 errcode/errmsg/data/errors,结构见 ../index.md「统一响应结构」)。
  • 多数端点在 try/catch 内捕获 Exceptione.printStackTrace() 后返回 errcode=500errmsg=e.getMessage()data=null;业务校验失败常用 errcode=500(注意:本控制器业务校验失败也用 500,未采用同模块惯用的 4001)。OBPMValidateException 单独捕获并以异常信息作为 errmsg
  • 控制器未声明 @ResponseStatus,HTTP 状态码默认 200。
  • 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
  • 路径变量:id 为扩展字段 id(仅 PUT /domain/fieldextend/{id} 持有);domainidDELETE /domain/fieldextendGET /domain/getunusefields 为 query 参数。
  • 扩展字段序列化字段:FieldExtendsVO 关键字段为 name(实际列名,如 field1)、label(用户可见标签)、type(数据类型)、forTable(相关表,如 tableUser/tableDept/tableDomain)、domainidenabel(是否启用,源码原样拼写)、sortNumberoptionsisNotNullisReadonlyisSupportSearch
  • 标签命名规则:长度 2~50,由中文 / 字母 / 数字 / _ / . / - 组成,且以中文 / 字母 / 数字开头和结尾(控制器私有方法 regex 校验)。

1. 查询扩展字段列表

按企业域 + 字段类型(type)+ 相关表(fortable)+ 所属(belong)分页查询扩展字段列表。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/fieldextends(完整:{manager-context}/api/authtime/domain/fieldextends
  • 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
  • Tag:字段扩展管理模块

请求参数

参数名 位置 类型 必填 说明
content body JSON 过滤条件包体(字段见下)
currpage query string 当前页码,缺省 1
pagelines query string 每页条数,缺省 10

请求体

JSON 对象(application/json),字段:

字段 类型 必填 说明
domainid string 企业域 id(缺省空字符串)
type string 字段数据类型(缺省空字符串)
fortable string 相关表(如 tableUser/tableDept/tableDomain,会被 trim)
belong string 所属

请求示例

POST /api/authtime/domain/fieldextends?currpage=1&pagelines=20 HTTP/1.1
Content-Type: application/json

{ "domainid": "__P1UD2yVWpnFpUedONr", "type": "string", "fortable": "tableUser", "belong": null }

响应

结构:统一 ResourcedataDataPackage<FieldExtendsVO> 序列化后的 JSON 对象,字段:

字段 类型 说明
linesPerPage int 每页条数
pageCount int 总页数
pageNo int 当前页码
rowCount int 总记录数
datas array\<FieldExtendsVO> 扩展字段数组

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 20,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 1,
    "datas": [
      {
        "id": "__FE001",
        "name": "field1",
        "label": "工号",
        "type": "string",
        "forTable": "tableUser",
        "domainid": "__P1UD2yVWpnFpUedONr",
        "enabel": true,
        "sortNumber": 0,
        "isNotNull": false,
        "isReadonly": false,
        "isSupportSearch": false
      }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 更新扩展字段

按扩展字段 id 更新扩展字段。校验:所属字段(respectiveField)不能为 null;标签(label)不能为空且须符合命名规则;标签变更时在新所属表内不得重复。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/fieldextend/{id}(完整:{manager-context}/api/authtime/domain/fieldextend/{id}
  • 鉴权:是
  • Tag:字段扩展管理模块

请求参数

参数名 位置 类型 必填 说明
id path string 待更新的扩展字段 id
jsonObj body JSON 扩展字段属性(见下)

请求体

JSON 对象(application/json),字段:

字段 类型 必填 说明
respectiveField string 所属字段(实际列名,如 field1),为 null 时返回 所属字段已用尽
label string 用户可见标签(不能为空,须符合命名规则)
type string 数据类型(为空时沿用原值,原值为空时取 FieldExtendsVO.TYPE_STRING
enabel string 是否启用(字符串 true/false,源码原样拼写)
forTable string 相关表
domainid string 企业域 id
options string 选项(用于下拉 / 单选 / 多选等)
isNotNull boolean 是否必填
isReadonly boolean 是否只读
isSupportSearch boolean 是否支持搜索
sortNumber string 排序号(为 null 时取 0

请求示例

PUT /api/authtime/domain/fieldextend/__FE001 HTTP/1.1
Content-Type: application/json

{
  "respectiveField": "field1",
  "label": "工号",
  "type": "string",
  "enabel": "true",
  "forTable": "tableUser",
  "domainid": "__P1UD2yVWpnFpUedONr",
  "isNotNull": true,
  "isReadonly": false,
  "isSupportSearch": true,
  "sortNumber": "1"
}

响应

结构:统一 Resourcedata:字符串 "保存成功"

条件 errcode errmsg data
respectiveFieldnull 500 所属字段已用尽 null
标签为空 500 标签不能为空! null
标签不符合命名规则 500 名称必须是长度为2-50,由中文、字母、数字、下划线、'.'、'-'(以中文、字母、数字开头和结尾)组成的字符串! null
标签在该属性表已存在 500 该标签在指定的属性表已存在! null
待更新的字段不存在 500 该字段不存在! null
业务校验异常 500 <异常信息> null
成功 0 ok 保存成功

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "保存成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "标签不能为空!", "data": null, "errors": null }


3. 新建扩展字段

新建扩展字段。校验:所属字段(respectiveField)不能为 null;标签不能为空且须符合命名规则;标签在该企业域的相关表内不得重复。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/fieldextend(完整:{manager-context}/api/authtime/domain/fieldextend
  • 鉴权:是
  • Tag:字段扩展管理模块

请求参数

参数名 位置 类型 必填 说明
jsonObj body JSON 扩展字段属性(见下)

请求体

JSON 对象(application/json),字段同「更新扩展字段」请求体:

字段 类型 必填 说明
respectiveField string 所属字段(实际列名,如 field1
label string 用户可见标签(不能为空,须符合命名规则)
type string 数据类型
enabel string 是否启用(字符串 true/false
forTable string 相关表
domainid string 企业域 id
options string 选项
isNotNull boolean 是否必填
isReadonly boolean 是否只读
isSupportSearch boolean 是否支持搜索
sortNumber string 排序号(为 null 时取 0

请求示例

POST /api/authtime/domain/fieldextend HTTP/1.1
Content-Type: application/json

{
  "respectiveField": "field2",
  "label": "入职日期",
  "type": "date",
  "enabel": "true",
  "forTable": "tableUser",
  "domainid": "__P1UD2yVWpnFpUedONr",
  "isNotNull": false,
  "isReadonly": false,
  "isSupportSearch": false
}

响应

结构:统一 Resourcedata:字符串 "保存成功"

条件 errcode errmsg data
respectiveFieldnull 500 所属字段已用尽 null
标签为空 500 标签不能为空! null
标签不符合命名规则 500 名称必须是长度为2-50...组成的字符串! null
标签在该企业域相关表已存在 500 该标签已存在 null
业务校验异常 500 <异常信息> null
成功 0 ok 保存成功

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "保存成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "该标签已存在", "data": null, "errors": null }


4. 删除扩展字段

按企业域 + 「字段名-id-相关表」组合数组批量删除扩展字段,删除前先调用 cleanFieldData 清空对应字段在该模块中的存量数据。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/domain/fieldextend(完整:{manager-context}/api/authtime/domain/fieldextend
  • 鉴权:是
  • Tag:字段扩展管理模块

请求参数

参数名 位置 类型 必填 说明
domainid query string 企业域 id
fieldNameAndIds body string[] 待删除条目数组,每个元素格式 <fieldName>-<fid>-<forTable>(按 - 切分为三段)

请求体

application/json,字符串数组,元素格式 <fieldName>-<fid>-<forTable>

[ "field1-__FE001-tableUser", "field2-__FE002-tableUser" ]

请求示例

DELETE /api/authtime/domain/fieldextend?domainid=__P1UD2yVWpnFpUedONr HTTP/1.1
Content-Type: application/json

[ "field1-__FE001-tableUser" ]

响应

结构:统一 Resourcedata:字符串 "删除成功"

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "删除成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


5. 获取未使用字段

按企业域 + 字段类型 + 相关表,查询该相关表中尚未被占用的扩展字段列名列表。fortabletableUser 时查询用户表,为 tableDept 时查询部门表,其他值查询企业域表。若 type 包含 clob,则仅保留支持 clob 的字段(field8/field9/field10/field18/field19/field20)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/domain/getunusefields(完整:{manager-context}/api/authtime/domain/getunusefields
  • 鉴权:是
  • Tag:字段扩展管理模块

请求参数

参数名 位置 类型 必填 说明
domainid query string 企业域 id
type query string 字段数据类型(含 clob 时仅返回 clob 列)
fortable query string 相关表(tableUser / tableDept / 其他)

请求示例

GET /api/authtime/domain/getunusefields?domainid=__P1UD2yVWpnFpUedONr&type=string&fortable=tableUser HTTP/1.1

响应

结构:统一 ResourcedataList<String>,未占用的扩展字段列名(如 ["field1", "field2", ...])。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": [ "field1", "field2", "field3" ],
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }