功能描述

我们在数据列表进行execl导入时,一般在execl中只输入用户或者部门及下拉框的姓名中文名,那我们这么实现呢?

业务逻辑

在我们平台中下拉框,用户,部门等相关的属性字段已json格式{“label”:”白板/白板笔”,”value”:”0”}的方式展示数据,那么像这些字段在我们数据库中分别已两个字段是存储我们的lable,value值,两个字段都存储了值表单上才能回显。

实现方案

在我们的数据列表有‘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;
//对每一行进行判断处理
JsonResult handRow(Map<String,Object> data){
    //return JsonResult.Fail("出错原因");
    return JsonResult.Success();
}
//对读取的数据进行处理
JsonResult beforeInsert(List<Map<String,Object>> data){
    for (int i = 0; i < data.size(); i++) {
    Map<String, Object> map = data.get(i);
    String name = (String) map.get("DYZRR_NAME");//字段标识_name
    if(StringUtils.isNotEmpty(name)){
        OsUserClient osUserClient = SpringUtil.getBean(OsUserClient.class);
        List<OsUserDto> userList = osUserClient.getByFullName(name);
        if(BeanUtil.isNotEmpty(userList) && userList.size()==1){
            map.put("DYZRR"//字段标识,userList.get(0).getUserId());
        }
    }
}
return JsonResult.Success();
}
文档更新时间: 2021-11-30 17:06   作者:zhuyunyun