1.业务场景
我们在数据列表进行execl导入时,一般在execl中只输入用户或者部门及下拉框的姓名中文名,那我们这么实现呢?
2.业务逻辑
在我们平台中下拉框,用户,部门等相关的属性字段已json格式{“label”:”白板/白板笔”,”value”:”0”}的方式展示数据,那么像这些字段在我们数据库中分别已两个字段是存储我们的lable,value值,两个字段都存储了值表单上才能回显。
3.实现方案
在我们的数据列表有‘execl配置’功能
利用脚本配置可实现数据导入之前可通过‘脚本配置’可以对导入的,每一行删数据进行处理
实现下拉框,当我的下拉框的数据项是存储在数据字典中的
import com.redxun.common.base.entity.JsonResult;
import com.redxun.common.utils.SpringUtil;
import com.redxun.feign.sys.SystemClient;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
//对每一行进行判断处理
JsonResult handRow(Map<String,Object> data){
//调用system服务接口
SystemClient systemClient=SpringUtil.getBean(SystemClient.class);
//查询指定数据字典的数据项
JSONArray array=systemClient.getDicByKey("LCJD");
for(Object obj:array){
JSONObject json=(JSONObject)obj;
//判断excel中输入的名称和数据项的名称一致
if(json.getString("name").equals(data.get("F_AAA"))){
//将名称覆盖为标识键
data.put("F_AAA",json.getString("value"));
}
}
//return JsonResult.Fail("出错原因");
return JsonResult.Success();
}
//对读取的数据进行处理
JsonResult beforeInsert(List<Map<String,Object>> data){
//return JsonResult.Fail("出错原因");
return JsonResult.Success();
}
处理用户或者部门,有多少个部门和用户字段就循环多少个
import com.redxun.common.base.entity.JsonResult;
import com.redxun.common.tool.BeanUtil;
import com.redxun.common.tool.StringUtils;
import com.redxun.common.utils.SpringUtil;
import com.redxun.dto.user.OsUserDto;
import com.redxun.feign.OsUserClient;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
//对每一行进行判断处理
JsonResult handRow(Map<String,Object> data){
//return JsonResult.Fail("出错原因");
return JsonResult.Success();
}
//对读取的数据进行处理
JsonResult beforeInsert(List<Map<String,Object>> data){
OsUserClient osUserClient = SpringUtil.getBean(OsUserClient.class);
for (int i = 0; i < data.size(); i++) {
Map<String, Object> map = data.get(i);
if(map==null){
return JsonResult.Success();
}
//公司
if(StringUtils.isNotEmpty(map.get("GSMC_NAME"))){
List<String> groupList = osUserClient.getGroupIdByGroupName(map.get("GSMC_NAME"));
if(BeanUtil.isNotEmpty(groupList) && groupList.size()==1){
map.put("GSMC",groupList.get(0));
}
}
}
return JsonResult.Success();
}
文档更新时间: 2022-06-24 15:18 作者:zhuyunyun