---
title: "4.2.2.1、表单字段：FormFieldAPIService"
docId: "954967741935296512"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/9c2e5f92-03b4-4207-9b22-a0c1dd79ac56/doc/954967741935296512"
---
> 所属包：weaver-common-form-extend
> 
> 所属类：com.weaver.common.form.formapi.FormAPIService

### 1 表单字段(FormField)相关接口

#### 1.1 根据ID获取表单字段

**方法名：**

```java
/**
 * @Description: 根据ID获取表单字段
 * @param fieldId 表单字段ID
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return FormField 表单字段
 * @throws
 */
FormField getFormFieldById(Long fieldId,SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| fieldId | 是 | Long | java.lang.Long | 表单字段ID |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| FormField | com.weaver.common.form.metadata.field.FormField | 表单字段Bean |
| **示例：** |  |  |

```java
FormField formField = formAPIService.getFormFieldById(fieldId, employee);
```

#### 1.2 根据ID集合获取表单字段集合

**方法名：**

```java
/**
 * @Description: 根据ID集合获取表单字段集合
 * @param fieldIds 表单字段ID集合
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 表单字段集合
 * @throws
 */
List<FormField> listFormFieldByIds(List<Long> fieldIds, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| fieldIds | 是 | `List<Long>` | java.lang.Long | 表单字段ID集合 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listFormFieldByIds(fieldIds, employee);
```

#### 1.3 根据表单ID获取表单字段集合（包含：自定义字段、panel_field字段、复合控件）

**方法名：**

```java
/**
 * @Description: 根据表单ID获取表单字段集合（包含：自定义字段、panel_field字段、复合控件）
 * @param formId 表单ID
 * @param isDelete 删除状态（0：查询未删除字段；1：查询已删除字段；null：查询全部字段）
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 表单字段集合
 * @throws
 */
List<FormField> listAllFormFieldByFormId(Long formId, Integer isDelete, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| isDelete | 是 | Integer | java.lang.Integer | 删除状态 0：查询未删除字段；1：查询已删除字段；null：查询全部字段 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listAllFormFieldByFormId(formId, 0, employee);
```

#### 1.4 根据表单ID、明细表ID获取表单字段集合（包含：自定义字段、panel_field字段、复合控件）

**方法名：**

```java
/**
 * @Description: 根据表单ID、明细表ID获取表单字段集合（包含：自定义字段、panel_field字段、复合控件）
 * @param formId 表单ID
 * @param subFormId 明细表ID（null：仅查询主表字段，指定ID：查询指定明细表中字段）
 * @param isDelete 删除状态（0：查询未删除字段；1：查询已删除字段；null：查询全部字段）
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 表单字段集合 
 * @throws
 */
List<FormField> listFormFieldByFormIdAndSubFormId(Long formId, Long subFormId, Integer isDelete, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| subFormId | 是 | Long | java.lang.Long | 明细表ID null：仅查询主表字段 指定ID：查询指定明细表中字段 |
| isDelete | 是 | Integer | java.lang.Integer | 删除状态 0：查询未删除字段；1：查询已删除字段；null：查询全部字段 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listFormFieldByFormIdAndSubFormId(formId, subFormId, 0, employee);
```

#### 1.5 高级搜索：根据表单字段搜索实体类，查询表单字段集合（包含：自定义字段、panel_field字段、复合控件）

**方法名：**

```java
/**
 * @Description: 高级搜索：根据表单字段搜索实体类，查询表单字段集合
 * @param entity 表单字段高级搜索实体类
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 表单字段集合 
 * @throws
 */
List<FormField> listFormFieldBySearchEntity(FormFieldSearchEntity entity, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| entity | 是 | FormFieldSearchEntity | com.weaver.common.form.searchentity.FormFieldSearchEntity | 表单字段高级搜索实体类 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |

**FormFieldSearchEntity：**

> 描述：表单字段高级搜索实体类（支持扩展条件）
> 
> 所属包：weaver-common-form-extend
> 
> 所属类：com.weaver.common.form.searchentity.FormFieldSearchEntity

| 属性名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单Id |
| fieldName | 否 | String | java.lang.String | 字段名称 |
| isDelete | 否 | Integer | java.lang.Integer | 删除状态 0：查询未删除字段；1：查询已删除字段；null：查询全部字段 |
| componentKeyList | 否 | `List<String>` | java.lang.String | 字段componentKey集合【参考4.7 表单控件类型(ComponentType)】  后端封装：使用【ComponentType.控件标识.toString()】获取 前端封装：直接使用["Text", "TextArea", ......] |
| containsComplexAndPanel | 否 | Boolean | java.lang.Boolean | 默认为【true】是否包含panelField字段、复合控件  true：返回自定义字段、panelField字段、复合控件false：仅返回自定义字段 |
| formTableIdList | 否 | List<Long> | java.lang.Long | 物理表Id集合 |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listFormFieldBySearchEntity(entity, employee);
```

#### 1.6 根据表单Id、字段权限Id集合，查询所有有查看权限的字段集合（包含：自定义字段、panel_field字段、复合控件）

**方法名：**

```java
/**
 * @Description: 根据表单Id、字段权限Id集合，查询所有有查看权限的字段集合
 * @param formId 表单Id
 * @param permissionIds 字段权限Id集合
 * @param isDelete 删除状态（0：查询未删除字段；1：查询已删除字段；null：查询全部字段）
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 有查看权限的表单字段集合 
 * @throws
 */
List<FormField> listReadFormFieldByFormIdAndPermissionIds(Long formId, List<Long> permissionIds, Integer isDelete, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| `List<Long> permissionIds` | 是 | Long | java.lang.Long | 字段权限ID集合 |
| isDelete | 是 | Integer | java.lang.Integer | 删除状态 0：查询未删除字段；1：查询已删除字段；null：查询全部字段 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 有查看权限的表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listReadFormFieldByFormIdAndPermissionIds(formId, permissionIds, null, employee);
```

#### 1.7 根据表单Id、字段权限Id，查询所有有编辑权限的字段集合（包含：自定义字段、panel_field字段、复合控件）

**方法名：**

```java
/**
 * @Description: 根据表单Id、字段权限Id，查询所有有编辑权限的字段集合
 * @param formId 表单Id
 * @param permissionId 字段权限Id
 * @param isDelete 删除状态（0：查询未删除字段；1：查询已删除字段；null：查询全部字段）
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 有编辑权限的表单字段集合 
 * @throws
 */
List<FormField> listWriteFormFieldByFormIdAndPermissionId(Long formId, Long permissionId, Integer isDelete, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| permissionId | 是 | Long | java.lang.Long | 字段权限ID |
| isDelete | 是 | Integer | java.lang.Integer | 删除状态 0：查询未删除字段；1：查询已删除字段；null：查询全部字段 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 有编辑权限的表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listWriteFormFieldByFormIdAndPermissionId(formId, permissionId, null, employee);
```

#### 1.8 根据表单Id查询字段集合（审批规则配置使用）

**方法名：**

```java
/**
 * @Description: 根据表单Id查询字段集合（审批规则配置使用）
 * @param formId 表单Id
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 表单字段集合
 * @throws
 */
List<FormField> listRuleConfigField(Long formId, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 表单字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> formFields = formAPIService.listRuleConfigField(formId, employee);
```

#### 1.9 根据复合控件Id查询子字段集合

**方法名：**

```java
/**
 * @Description: 根据复合控件Id查询子字段集合
 * @param complexId 复合控件Id
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FormField> 子字段集合
 * @throws
 */
List<FormField> listFormFieldByComplexId(Long complexId, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| complexId | 是 | Long | java.lang.Long | 复合控件ID |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FormField>` | com.weaver.common.form.metadata.field.FormField | 复合字段子字段Bean集合 |
| **示例：** |  |  |

```java
List<FormField> childFormFields = formAPIService.listFormFieldByComplexId(complexId, employee);
```

#### 1.10 获取formSwitch所需要的参数集合

**方法名：**

```java
/**
 * 返回给Form switch 使用
 * @param employee 当前操作人
 * @return List<FormField>
 */
List<FormField> listBySwitchParam(FormSwitchParam param, SimpleEmployee employee);
```

**参数： **com.weaver.common.form.param.field.FormSwitchParam

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| appId | 否 | Long | java.lang.Long | 独立部署应用ID |
| formId | 是 | Long | java.lang.Long | 表单ID |
| subFormId | 否 | Long | java.long.Long | 明细子表Id |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |

示例：

```java
List<FormField> list = formFieldAPIService.listBySwitchParam(param, employee);
```

返回值：

```json
 [
        {
            "id": "986221862498320386",
            "formId": "986221441576894464",
            "dataKey": "zfpl_2ed0",
            "componentKey": "Frequency",
            "type": "Frequency",
            "form": {
                "id": "986221441576894464",
                "recommend": false,
                "biaogeRecommend": false,
                "isAdvance": false,
                "dfaption": 0,
                "sort": 0,
                "fillCount": 0,
                "reviewCount": 0,
                "exportCount": 0,
                "copyCount": 0,
                "viewCount": 0,
                "physicalTable": false,
                "newFillCount": 0,
                "needCount": false,
                "fieldauthcount": 0,
                "selfcount": 0,
                "allcount": 0,
                "autoSave": false,
                "newLayout": false,
                "customTitle": false,
                "customTitleEdit": false,
                "headOrder": 0,
                "usecount": 0,
                "multi": false,
                "delete": false
            },
            "title": "重复频率组件",
            "dataType": "string",
            "required": false,
            "operator": {
                "id": "2741135594345053820",
                "employeeId": "2741135594345053820",
                "loginCount": 0,
                "fansCount": 0,
                "followCount": 0,
                "blogCount": 0,
                "onlySuperior": 0,
                "secLevel": 0,
                "hasInvUser": false,
                "imUid": "2741135594345053820",
                "birthdayFlag": false,
                "classifyAdmin": false,
                "setting": false,
                "permanentlyDelete": false,
                "type": "inside",
                "extra": false,
                "markread": false,
                "tenantKey4Im": "t2k74i3rjo",
                "containRels": false,
                "sysAdmin": false,
                "followAndSub": false,
                "moduleAdmin": false
            },
            "createTime": 1712822674000,
            "sourceModule": "biaoge",
            "layoutDetail": "{\"formComponent\":{\"comCategory\":\"RichText\",\"comId\":973224299237785600,\"createInDetailTable\":true,\"createInFieldManage\":true,\"createInFieldTemplate\":true,\"dataContentFormatProperty\":\"contentObj\",\"id\":973224299237785600,\"layoutProperties\":[{\"formComponentId\":973224299237785600,\"propertyKey\":\"enableDisplayName\"},{\"formComponentId\":973224299237785600,\"propertyKey\":\"isHideTitle\"},{\"formComponentId\":973224299237785600,\"propertyKey\":\"titleLayout\"}],\"readWriteProperties\":\"[\\\"display\\\",\\\"readOnly\\\",\\\"required\\\",\\\"disableEdit\\\"]\",\"type\":\"Frequency\"},\"package\":\"@weapp/ui-props-design\",\"prop\":\"FORM\",\"type\":\"Frequency\",\"config\":{\"formId\":\"986221441576894464\",\"groupId\":\"-1\",\"title\":\"重复频率组件\",\"type\":\"Frequency\",\"dataCount\":0,\"dataKey\":\"zfpl_2ed0\",\"editField\":false,\"columnTypeSwitch\":false,\"name\":\"重复频率\",\"showOrder\":0.0,\"placeholder\":\"\",\"formTableId\":\"986221445955747844\",\"componentKey\":\"Frequency\",\"columnName\":\"zfpl_2ed0\",\"describePosition\":\"titleLeft\",\"describeType\":\"tile\",\"fieldId\":\"986221862498320386\"}}",
            "showOrder": 0.0,
            "group": {
                "id": "-1"
            },
            "otherProperties": "{\"formId\":\"986221441576894464\",\"groupId\":\"-1\",\"title\":\"重复频率组件\",\"type\":\"Frequency\",\"dataCount\":0,\"dataKey\":\"zfpl_2ed0\",\"editField\":false,\"columnTypeSwitch\":false,\"name\":\"重复频率\",\"showOrder\":0,\"placeholder\":\"\",\"formTableId\":\"986221445955747844\",\"componentKey\":\"Frequency\",\"columnName\":\"zfpl_2ed0\",\"describePosition\":\"titleLeft\",\"describeType\":\"tile\",\"fieldId\":\"986221862498320386\"}",
            "columnTypeSwitch": false,
            "deleteType": 0,
            "delete": false
        },
        {
            "id": "986221523313344514",
            "formId": "986221441576894464",
            "dataKey": "dxwb_ox9v",
            "componentKey": "Text",
            "type": "Text",
            "form": {
                "id": "986221441576894464",
                "recommend": false,
                "biaogeRecommend": false,
                "isAdvance": false,
                "dfaption": 0,
                "sort": 0,
                "fillCount": 0,
                "reviewCount": 0,
                "exportCount": 0,
                "copyCount": 0,
                "viewCount": 0,
                "physicalTable": false,
                "newFillCount": 0,
                "needCount": false,
                "fieldauthcount": 0,
                "selfcount": 0,
                "allcount": 0,
                "autoSave": false,
                "newLayout": false,
                "customTitle": false,
                "customTitleEdit": false,
                "headOrder": 0,
                "usecount": 0,
                "multi": false,
                "delete": false
            },
            "title": "4444",
            "dataType": "string",
            "required": false,
            "operator": {
                "id": "2741135594345053820",
                "employeeId": "2741135594345053820",
                "loginCount": 0,
                "fansCount": 0,
                "followCount": 0,
                "blogCount": 0,
                "onlySuperior": 0,
                "secLevel": 0,
                "hasInvUser": false,
                "imUid": "2741135594345053820",
                "birthdayFlag": false,
                "classifyAdmin": false,
                "setting": false,
                "permanentlyDelete": false,
                "type": "inside",
                "extra": false,
                "markread": false,
                "tenantKey4Im": "t2k74i3rjo",
                "containRels": false,
                "sysAdmin": false,
                "followAndSub": false,
                "moduleAdmin": false
            },
            "createTime": 1712822595000,
            "sourceModule": "biaoge",
            "layoutDetail": "{\"package\":\"@weapp/formbuilder\",\"prop\":\"FORM\",\"type\":\"Text\",\"config\":{\"groupId\":\"-1\",\"isUnique\":false,\"title\":\"4444\",\"type\":\"Text\",\"dataCount\":0,\"dataKey\":\"dxwb_ox9v\",\"systemField\":false,\"readonlyTransLink\":false,\"labelObj\":{\"title\":\"-1003313891129851905\"},\"columnTypeSwitch\":false,\"placeholder\":\"\",\"formTableId\":\"986221445955747844\",\"componentKey\":\"Text\",\"describePosition\":\"titleLeft\",\"describeType\":\"tile\",\"fieldId\":\"986221523313344514\",\"maxLen\":100,\"formId\":\"986221441576894464\",\"columnType\":\"VARCHAR\",\"editField\":true,\"isDefault\":false,\"unique\":false,\"name\":\"单行文本\",\"showOrder\":0.0,\"columnName\":\"dxwb_ox9v\"}}",
            "showOrder": 0.0,
            "group": {
                "id": "-1"
            },
            "otherProperties": "{\"groupId\":\"-1\",\"isUnique\":false,\"title\":\"4444\",\"type\":\"Text\",\"dataCount\":0,\"dataKey\":\"dxwb_ox9v\",\"systemField\":false,\"readonlyTransLink\":false,\"labelObj\":{\"title\":\"-1003313891129851905\"},\"columnTypeSwitch\":false,\"placeholder\":\"\",\"formTableId\":\"986221445955747844\",\"componentKey\":\"Text\",\"describePosition\":\"titleLeft\",\"describeType\":\"tile\",\"fieldId\":\"986221523313344514\",\"maxLen\":100,\"formId\":\"986221441576894464\",\"columnType\":\"VARCHAR\",\"editField\":true,\"isDefault\":false,\"unique\":false,\"name\":\"4444\",\"showOrder\":0.0,\"columnName\":\"dxwb_ox9v\"}",
            "columnTypeSwitch": false,
            "deleteType": 0,
            "delete": false
        }
    ]
```

#### 1.11 获取引用sformId的关联控件字段信息

**方法类名：com.weaver.common.form.formapi.FormFieldAPIService#listFormFieldBySFormId**

**方法名：**

```java
    /**
     * 查询引用sformId关联型控件的字段信息
     * @param entity 查询参数
     * @param employee 当前操作人
     * @return 字段详情
     */
    List<FormFieldDisplayDto> listFormFieldBySFormId(FormFieldSearchEntity entity, SimpleEmployee employee);
```

**参数：**

| **参数名** | **必传** | **类型** | **类型所属包路径** | **描述** |
| --- | --- | --- | --- | --- |
| entity | 是 | FormFieldSearchEntity | com.weaver.common.form.searchentity.FormFieldSearchEntity | 查询参数 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |

**FormFieldSearchEntity：**

> 描述：表单字段高级搜索实体类（支持扩展条件）
> 
> 所属包：weaver-common-form-extend
> 
> 所属类：com.weaver.common.form.searchentity.FormFieldSearchEntity

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| sformId | 是 | String | java.lang.String | 关联控件关联的业务表id |
| componentKey | 是 | String | java.lang.String | 字段类型标识 |
| isDelete | 否 | Integer | java.lang.Integer | 字段删除状态,不传默认查询删除状态为（0,1）的数据。0：未删除、1：删除、2：彻底删除 |
| needI18N | 否 | Boolean | java.lang.Boolean | 是否需要国际化返回值字段名称、表单名称 |
| formIds | 否 | List<Long> | java.util.List | 表单Id集合 |

**返回值：**

**FormFieldDisplayDto：**

> 描述：列表展示字段信息实体类
> 
> 所属包：weaver-common-form-bean
> 
> 所属类：com.weaver.common.form.dto.field.simple.FormFieldDisplayDto

| **属性名** | 类型 | 类型所属包路径 | **描述** |
| --- | --- | --- | --- |
| id | Long | java.lang.Long | 字段id |
| formId | Long | java.lang.Long | 表单id |
| subFormId | Long | java.lang.Long | 字段所在明细表id（主表字段值为空） |
| title | String | java.lang.String | 字段名称 |
| creator | String | java.lang.String | 操作人名称 |
| createTime | Date | [java.util.Date](http://java.util.Date) | 字段创建时间 |
| formName | String | java.lang.String | 字段所在表单名称 |
| subFormName | String | java.lang.String | 字段所在明细表名称（主表字段值为空） |
| userId | Long | java.lang.Long | 操作人id |

#### 1.12 根据搜索条件列出简单的表单字段

```
/**
 * 根据搜索实体和员工信息列出简单的表单字段
 * 此方法用于根据给定的搜索条件和员工信息来筛选出符合条件的简单表单字段
 * 它首先检查输入参数的有效性，然后根据这些条件进行过滤
 *
 * 1、暂不支持国际化，需要国际化需要主动传递needI18n走老方法查询后转化新结构
 * 2、simpleFormField没有formId,需要获取的主动塞入入参的值
 * 3、simpleFormField不返回明细表名称，只返回明细表Id
 *
 * @param entity 包含搜索条件的实体对象，用于筛选表单字段  formId必传 employee必传
 * @param employee 用于权限校验的员工信息
 * @return 返回一个列表，包含符合条件的简单表单字段
 */
List<SimpleFormFieldDto> listSimpleFormFields(SimpleFormFieldSearchEntity entity, SimpleEmployee employee);
```

入参：

| 参数名 | 必传 | 类型 | 描述 |
| --- | --- | --- | --- |
| entity | 是 | SimpleFormFieldSearchEntity | 搜索条件支持 |
| entity.formId | 是 | Long | 表单ID |
| entity.fieldName | 否 | String | 字段默认名称过滤，不支持国际化后的名称过滤 |
| entity.deleteType | 否 | Integer | 删除状态，0,1,2；默认不传查0，1 |
| entity.componentKeyList | 否 | List<String> | 查询指定字段类型 |
| entity.notComponentKeyList | 否 | List<String> | 查询非指定字段类型 |
| entity.fieldIds | 否 | List<Long> | 查询指定字段ID |
| entity.notFieldIds | 否 | List<Long> | 查询非指定字段ID |
| entity.filterEncryptField | 否 | Boolean | 是否过滤加密字段，默认不过滤 |
| entity.filterDesensitizedField | 否 | Boolean | 是否过滤脱敏字段，默认不过滤 |
| entity.browserModule | 否 | String | 过滤指定module的浏览按钮 |
| entity.browserType | 否 | String | 过滤指定类型的浏览按钮 |
| entity.subFormIds | 否 | List<Long> | 过滤指定明细表ID集合的字段 |
| entity.formTableIdList | 否 | List<Long> | 过滤指定物理表ID集合的字段 |
| entity.containsComplex | 否 | Boolean | 是否返回复合字段 |
| entity.needSubFormTitle | 否 | Boolean | 是否返回明细表标题，不支持国际化 |
| employee | 是 | SimpleEmployee | 租户key信息 |

### 2 明细子表(SubForm)相关接口

#### 2.1 根据明细表ID查询指定明细表

**方法名：**

```java
/**
 * @Description: 根据明细表ID查询指定明细表
 * @param subFormId 明细表Id
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return SubForm 明细表
 * @throws
 */
SubForm getSubFormById(Long subFormId, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| subFormId | 是 | Long | java.lang.Long | 明细表ID |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| SubForm | com.weaver.common.form.metadata.subform.SubForm | 明细子表Bean |
| **示例：** |  |  |

```java
SubForm subForm = formAPIService.getSubFormById(subFormId, employee);
```

#### 2.2 根据表单ID查询当前表单中明细表集合

**方法名：**

```java
/**
 * @Description: 根据表单ID查询当前表单中明细表集合
 * @param formId 表单Id
 * @param isDelete 删除状态（0：查询未删除；1：查询已删除；null：查询全部）
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<SubForm> 明细表集合
 * @throws
 */
List<SubForm> listSubFormByFormId(Long formId, Integer isDelete, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| formId | 是 | Long | java.lang.Long | 表单ID |
| isDelete | 是 | Integer | java.lang.Integer | 删除状态 0：查询未删除；1：查询已删除；null：查询全部 |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<SubForm>` | com.weaver.common.form.metadata.subform.SubForm | 明细子表Bean集合 |
| **示例：** |  |  |

```java
List<SubForm> subFormList = formAPIService.listSubFormByFormId(formId, 0, employee);
```

### 3 字段选项(FieldOption)相关接口

#### 3.1 根据字段Id、表单Id，获取字段选项集合

**方法名：**

```java
/**
 * @Description: 根据字段Id、表单Id，获取字段选项集合
 * @param fieldId 字段Id
 * @param formId 表单Id
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return List<FieldOption> 字段选项集合
 * @throws
 */
List<FieldOption> listFieldOptionByFieldIdAndFormId(Long fieldId, Long formId, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| fieldId | 是 | Long | java.lang.Long | 字段Id |
| formId | 是 | Long | java.lang.Long | 表单Id |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| `List<FieldOption>` | com.weaver.common.form.metadata.option.FieldOption | 字段选项Bean集合 |
| **示例：** |  |  |

```java
List<FieldOption> fieldOptionList = formAPIService.listFieldOptionByFieldIdAndFormId(fieldId, formId, employee);
```

#### 3.2 根据字段Id，获取字段布局选项

**方法名：**

```java
/**
 * @Description: 根据字段Id，获取字段布局选项
 * @param fieldId 字段Id
 * @param employee 用户信息（必须包含id和tenantKey）
 * @return JSONArray 字段布局选项
 * @throws
 */
JSONArray getFieldLayoutOptionsByFiledId(Long fieldId, SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- | --- | --- |
| fieldId | 是 | Long | java.lang.Long | 字段Id |
| employee | 是 | SimpleEmployee | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
| **返回值：** |  |  |  |  |

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| JSONArray | com.alibaba.fastjson.JSONArray | 字段布局选项 |
| **返回值示例：** |  |  |

```json
[
    {
        "other":"false",
        "isReadonly":"false",
        "selectionId":"7832806608776645053",
        "defOption":"false",
        "styleConfig":{
            "OptionBackground":"#A7D974"
        },
        "index":"0",
        "detailsLevel":"",
        "optionNum":"1000000",
        "remind":"",
        "uid":"9ac72934-1c0d-42af-9ef9-25a555102e9b",
        "score":"0",
        "children":[
            {
                "parent":"7832806608776645053",
                "other":"false",
                "isReadonly":"false",
                "selectionId":"7832806608776845054",
                "defOption":"false",
                "styleConfig":{
                    "OptionBackground":"#B1AFAF"
                },
                "index":"0",
                "detailsLevel":"",
                "optionNum":"1000000",
                "remind":"",
                "uid":"52542b15-49bf-4833-bcf4-9fcbc0a5b82d",
                "score":"0",
                "children":[

                ],
                "name":"选项11",
                "objId":"",
                "isLimit":"false",
                "componentKey":"Option",
                "order":"0",
                "fieldId":"7832806608608115372"
            },
            {
                "parent":"7832806608776645053",
                "other":"false",
                "isReadonly":"false",
                "selectionId":"7832806608777045055",
                "defOption":"false",
                "styleConfig":{
                    "OptionBackground":"#FF8B65"
                },
                "index":"0",
                "detailsLevel":"",
                "optionNum":"1000000",
                "remind":"",
                "uid":"28b358de-3349-479d-93b9-18429933a588",
                "score":"0",
                "children":[

                ],
                "name":"选项12",
                "objId":"",
                "isLimit":"false",
                "componentKey":"Option",
                "order":"1",
                "fieldId":"7832806608608115372"
            }
        ],
        "name":"选项1",
        "objId":"",
        "isLimit":"false",
        "componentKey":"Option",
        "order":"0",
        "fieldId":"7832806608608115371"
    },
    {
        "other":"false",
        "isReadonly":"false",
        "selectionId":"7832806608777245056",
        "defOption":"false",
        "styleConfig":{
            "OptionBackground":"#5767BF"
        },
        "index":"0",
        "detailsLevel":"",
        "optionNum":"1000000",
        "remind":"",
        "uid":"664d68ee-72d3-4891-9958-6354fe6f3ad3",
        "score":"0",
        "children":[
            {
                "parent":"7832806608777245056",
                "other":"false",
                "isReadonly":"false",
                "selectionId":"7832806608777445057",
                "defOption":"false",
                "styleConfig":{
                    "OptionBackground":"#B1AFAF"
                },
                "index":"0",
                "detailsLevel":"",
                "optionNum":"1000000",
                "remind":"",
                "uid":"0d797301-a86c-4dd6-acc8-230b0fe918f2",
                "score":"0",
                "children":[

                ],
                "name":"选项21",
                "objId":"",
                "isLimit":"false",
                "componentKey":"Option",
                "order":"0",
                "fieldId":"7832806608608115372"
            },
            {
                "parent":"7832806608777245056",
                "other":"false",
                "isReadonly":"false",
                "selectionId":"7832806608777645058",
                "defOption":"false",
                "styleConfig":{
                    "OptionBackground":"#31ADA3"
                },
                "index":"0",
                "detailsLevel":"",
                "optionNum":"1000000",
                "remind":"",
                "uid":"ed965dac-4563-4473-91ac-1d1b75aa45f3",
                "score":"0",
                "children":[

                ],
                "name":"选项22",
                "objId":"",
                "isLimit":"false",
                "componentKey":"Option",
                "order":"1",
                "fieldId":"7832806608608115372"
            }
        ],
        "name":"选项2",
        "objId":"",
        "isLimit":"false",
        "componentKey":"Option",
        "order":"1",
        "fieldId":"7832806608608115371"
    }
]
```

**示例：**

```java
JSONArray jsonArray = formAPIService.getFieldLayoutOptionsByFiledId(fieldId, employee);
```

#### 3.3 根据fieldId获取存在关联目录的选项接口

**方法名：**

```java
    /**
     * 通过字段id  获取存在 关联目录 的字段选项
     *
     * @param fieldId  字段id
     * @param employee 租户信息
     * @return java.util.List<com.weaver.common.form.dto.field.option.FieldOptionDto>
     * @author mcl
     * @date 2022/5/17 19:22
     */
    List<FieldOptionDto> listFieldOptionRelativeDocDir(Long fieldId,SimpleEmployee employee);
```

**参数：**

| 参数名 | 必传 | 类型 | 描述 |
| --- | --- | --- | --- |
| fieldId | 是 | Long | 字段ID |
| employee | 是 | com.weaver.teams.domain.user.SimpleEmployee | 用户信息（必须包含id和tenantKey） |
|  |  |  |  |

**返回类型：**

| 类型 | 类型所属包路径 | 描述 |
| --- | --- | --- |
| FieldOptionDto | com.weaver.common.form.dto.field.option | 选项dto对象 |
|  |  |  |
|  |  |  |

**返回重要参数说明**

| 参数名称 | 类型 | 说明 |
| --- | --- | --- |
| divisionBranch | boolean | 用于标记是否区分分部（true=区分） |
| catalogue | com.weaver.common.form.dto.field.option  #FieldOptionSubCompanyRelateDirDto | 关联目录对象，divisionBranch=false时，取此值 |
|  |  |  |
| subCompanyCatalogues | List | 关联目录对象，divisionBranch=true时，取此值 |
| selectionId | Long | 选项ID |
| fieldId | Long | 字段ID |
| name | String | 选项名称 |
|  |  |  |
|  |  |  |

**FieldOptionSubCompanyRelateDirDto对象说明**

| 参数名称 | 类型 | 说明 |
| --- | --- | --- |
| subCompanyId | Long | 分部ID |
| catalogueContent | String | 选项-关联目录-名称 |
| catalogueId | Long | 选项-关联目录-ID |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

**示例：**

```java
List<FieldOptionDto> optionList = FormFieldAPIService.listFieldOptionRelativeDocDir(fieldId, employee);
```
