Online java增强 导入
最后更新于:2022-04-02 07:19:09
### 功能描述:
> online导入数据 可以通过配置 java增强判断 每一条数据是新增还是修改还是丢弃·
`version 3.1`(老版本请参考[ `online java增强 导入2.4`](http://doc.jeecg.com/2653465))
·
### 定义java类:
~~~
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.online.cgform.enhance.CgformEnhanceJavaImportInter;
import org.jeecg.modules.online.cgform.util.CgformUtil;
import org.jeecg.modules.online.config.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.jeecg.modules.online.cgform.enums.EnhanceDataEnum;
/**
* Excel导入增强,针对导入数据进行check或者数据转换
*/
@Slf4j
@Component("cgformEnhanceImportDemo")
public class CgformEnhanceImportDemo implements CgformEnhanceJavaImportInter{
/**
* 这个testService是自定义的 用于查询数据
*/
@Autowired
private TestService testService;
@Override
public EnhanceDataEnum execute(String tableName, JSONObject json) throws BusinessException {
// 从json中获取excel里面的数据
String name = json.getString("name");
if(name==null || "".equals(name)){
// 常量值为:0 表示丢弃数据
return EnhanceDataEnum.ABANDON;
}
// 拿到excel中的name 去数据库查询
Demo demo = testService.getDataByName(name);
if(demo!=null){
// 假定这个name是demo表的唯一标识,那么如果excel中的name 在数据库中已经存在,则根据excel中的数据走修改逻辑
// 修改逻辑需要设置原数据的ID
json.put("id", demo.getId());
// 常量值为:2 表示需要走修改逻辑
return EnhanceDataEnum.UPDATE;
}
// 常量值为:1 表示走新增逻辑
return EnhanceDataEnum.INSERT;
}
}
~~~
### 增强配置:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/02/a9/02a96fec36ab91d7ee1331fa4ec44a82_779x345.png)
>[info]注:version3.0之后,java增强-导入不需要配置事件状态(开始/结束),且不支持http-api
----
### 导入增强总结:
- 1.java类实现接口`CgformEnhanceJavaImportInter`
- 2.重写方法`execute`
- 3.方法返回一个枚举,返回值说明如下:
```
// return EnhanceDataEnum.ABANDON = 丢弃
// return EnhanceDataEnum.INSERT = 新增
// return EnhanceDataEnum.UPDATE = 修改
```
';