> **最低支持版本：10.0.2404.02**

允许通过此功能，在执行表格批量导入前，对即将导入的数据进行校验、标注、处理等操作。

## 使用方法：

### 1、实现接口

在二开服务依赖com.weaver:weaver-ebuilder-form-client，实现接口com.weaver.ebuilder.form.client.service.batch.advice.ImportDataAdvice，并注册为Spring Bean。

例：  
[图片附件未整合: ../../../../../_assets/213443502057455616/001-897f876e4d.png]

### 2、处理数据

在实现类中可以获取到当前导入任务的相关信息，包含操作用户、导入数据、表头、表单id、表单字段、自定义参数等等信息。并允许对数据进行校验、修改等操作。并支持讲校验结果返回至错误模板中。

BaseImportDataAdviceDto：

```json
{
  "tenantKey": "",
  "employeeId": 0,
  "batchTaskId": 0,
  "index": 0,
  "total": 0,
  "dataList": [
    {
      "dataKey": "",
      "value": {},
      "allowImport": false,
      "errorMsg": "",
      "@comment": {
        "dataKey": "数据key",
        "value": "数据值",
        "allowImport": "是否允许导入",
        "errorMsg": "错误信息（不允许导入时）"
      }
    }
  ],
  "mainHeaderList": [],
  "detailHeaderLis": [],
  "adviceBeanName": "",
  "objId": 0,
  "breakOff": false,
  "errorMessage": "",
  "fields": [],
  "customParams": {},
  "@comment": {
    "tenantKey": "租户key",
    "employeeId": "人员id",
    "batchTaskId": "导入任务id",
    "index": "导入任务分批索引",
    "total": "导入任务总批数",
    "dataList": "导入数据",
    "mainHeaderList": "主表表头",
    "detailHeaderLis": "明细表表头(如有)",
    "adviceBeanName": "增强类bean名称",
    "objId": "表单id",
    "breakOff": "是否中断导入",
    "errorMessage": "中断导入信息",
    "fields": "表单字段",
    "customParams": "自定义参数"
  }
}
```

### 3、注册dubbo接口

在\*-dubbo.xml配置文件中添加以下标签："\<dubbo:service ref="ImportAdviceDubboService" interface="com.weaver.ebuilder.form.client.service.batch.ImportAdviceDubboService" timeout="240000" group="group"/\>"，其中ref、interface属性不允许修改，group属性可设定为自定义值，只需确保表单导入配置中填写的group属性值与您指定的RPC group一致即可。

### 4、导入设置

在表单后台配置——导入导出配置——自定义接口校验，填写上文中注册的信息即可。在输入框中按以下格式填入信息：beanName:group，其中beanName是您定义的Spring Bean的名称，group是您想要指定的RPC group。如"CheckEmpImportAdvice:secondev"。

注：如页面未找到“自定义接口校验”配置项，可通过访问接口（有该应用管理权限的账号）:

<u>/api/bs/ebuilder/form/impExp/saveCustomImportAdvice</u><u>?appid={appid}&objId={objId}&adviceBeanName={adviceBeanName}</u>

参数说明：

| 参数名 | 是否必填 | 参数说明 |
| --- | --- | --- |
| appid | 是 | 当前应用id |
| objId | 是 | 当前表单id |
| adviceBeanName | 是 | 需要配置的增强类（即上文中自定义校验输入框填写的内容） |

注：

1、远程调用超时时间默认1分钟，如需调整可通过nacos添加以下配置到weaver-ebuilder-form-service.properties：

```properties
weaver.rest.web.restRpc.[group/com.weaver.ebuilder.form.client.service.batch.ImportAdviceDubboService].restProperties.connectTimeOut=30000
weaver.rest.web.restRpc.[group/com.weaver.ebuilder.form.client.service.batch.ImportAdviceDubboService].restProperties.writeTimeOut=60000
weaver.rest.web.restRpc.[group/com.weaver.ebuilder.form.client.service.batch.ImportAdviceDubboService].restProperties.readTimeOut=60000
```
