mirror of https://gitee.com/xiaonuobase/snowy
【更新】完善导入功能
parent
41f9e174c7
commit
c71badd0d5
|
@ -233,40 +233,48 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
|
|||
}
|
||||
|
||||
public String findOrgIdByOrgName(String parentId, Iterator<String> iterator, List<SysOrg> cachedAllOrgList, List<Tree<String>> treeList) {
|
||||
String next = iterator.next();
|
||||
// TODO
|
||||
List<Tree<String>> findList = treeList.stream().filter(tree -> tree.getName().equals(next)).collect(Collectors.toList());
|
||||
if(ObjectUtil.isNotEmpty(findList)) {
|
||||
if(iterator.hasNext()) {
|
||||
return findOrgIdByOrgName(findList.get(0).getId(), iterator, cachedAllOrgList, findList.get(0).getChildren());
|
||||
} else {
|
||||
return findList.get(0).getId();
|
||||
String orgName = iterator.next();
|
||||
if(ObjectUtil.isNotEmpty(treeList)) {
|
||||
List<Tree<String>> findList = treeList.stream().filter(tree -> tree.getName().equals(orgName)).collect(Collectors.toList());
|
||||
if(ObjectUtil.isNotEmpty(findList)) {
|
||||
if(iterator.hasNext()) {
|
||||
return findOrgIdByOrgName(findList.get(0).getId(), iterator, cachedAllOrgList, findList.get(0).getChildren());
|
||||
} else {
|
||||
return findList.get(0).getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
String orgId = this.doCreateOrg(parentId, orgName, cachedAllOrgList);
|
||||
if(iterator.hasNext()) {
|
||||
return findOrgIdByOrgName(orgId, iterator, cachedAllOrgList, CollectionUtil.newArrayList());
|
||||
} else {
|
||||
//创建该机构
|
||||
SysOrg sysOrg = new SysOrg();
|
||||
sysOrg.setName(next);
|
||||
sysOrg.setCode(RandomUtil.randomString(10));
|
||||
sysOrg.setParentId(parentId);
|
||||
sysOrg.setCategory(parentId.equals("0")?SysOrgCategoryEnum.COMPANY.getValue():SysOrgCategoryEnum.DEPT.getValue());
|
||||
sysOrg.setSortCode(99);
|
||||
this.save(sysOrg);
|
||||
// TODO 发布增加事件
|
||||
CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.ORG.getValue(), JSONUtil.createArray().put(sysOrg));
|
||||
// 将该机构加入缓存
|
||||
cachedAllOrgList.add(sysOrg);
|
||||
// 更新缓存
|
||||
commonCacheOperator.put(ORG_CACHE_ALL_KEY, cachedAllOrgList);
|
||||
// 继续查找
|
||||
if(iterator.hasNext()) {
|
||||
return findOrgIdByOrgName(sysOrg.getId(), iterator, cachedAllOrgList, CollectionUtil.newArrayList());
|
||||
} else {
|
||||
return sysOrg.getId();
|
||||
}
|
||||
return orgId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 执行创建机构
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2023/3/8 9:38
|
||||
**/
|
||||
public String doCreateOrg(String parentId, String orgName, List<SysOrg> cachedAllOrgList) {
|
||||
//创建该机构
|
||||
SysOrg sysOrg = new SysOrg();
|
||||
sysOrg.setName(orgName);
|
||||
sysOrg.setCode(RandomUtil.randomString(10));
|
||||
sysOrg.setParentId(parentId);
|
||||
sysOrg.setCategory(parentId.equals("0")?SysOrgCategoryEnum.COMPANY.getValue():SysOrgCategoryEnum.DEPT.getValue());
|
||||
sysOrg.setSortCode(99);
|
||||
this.save(sysOrg);
|
||||
// 发布增加事件
|
||||
CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.ORG.getValue(), JSONUtil.createArray().put(sysOrg));
|
||||
// 将该机构加入缓存
|
||||
cachedAllOrgList.add(sysOrg);
|
||||
// 更新缓存
|
||||
commonCacheOperator.put(ORG_CACHE_ALL_KEY, cachedAllOrgList);
|
||||
return sysOrg.getId();
|
||||
}
|
||||
|
||||
/* ====组织部分所需要用到的选择器==== */
|
||||
|
||||
|
|
|
@ -986,8 +986,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
int successCount = 0;
|
||||
int errorCount = 0;
|
||||
JSONArray errorDetail = JSONUtil.createArray();
|
||||
List<SysUserImportParam> sysUserImportParamList = EasyExcel.read("D://userImportTemplate.xlsx")
|
||||
.head(SysUserImportParam.class).sheet().headRowNumber(2).doReadSync();
|
||||
byte[] bytes = file.getBytes();
|
||||
// 创建临时文件
|
||||
File tempFile = FileUtil.writeBytes(file.getBytes(), FileUtil.file(FileUtil.getTmpDir() +
|
||||
FileUtil.FILE_SEPARATOR + "userImportTemplate.xlsx"));
|
||||
// 读取excel
|
||||
List<SysUserImportParam> sysUserImportParamList = EasyExcel.read(tempFile).head(SysUserImportParam.class).sheet()
|
||||
.headRowNumber(2).doReadSync();
|
||||
List<SysUser> allUserList = this.list();
|
||||
for (int i = 0; i < sysUserImportParamList.size(); i++) {
|
||||
JSONObject jsonObject = this.doImport(allUserList, sysUserImportParamList.get(i), i);
|
||||
|
@ -1032,7 +1037,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
// 机构id
|
||||
String orgId = sysOrgService.getOrgIdByOrgFullNameWithCreate(orgFullName);
|
||||
// 职位id
|
||||
String positionId = sysPositionService.getPositionIdByPositionNameWithCreate(orgId, positionFullName);
|
||||
String positionId = sysPositionService.getPositionIdByPositionNameWithCreate(orgId, positionName);
|
||||
|
||||
// 查找账号对应索引
|
||||
int index = CollStreamUtil.toList(allUserList, SysUser::getAccount).indexOf(account);
|
||||
|
|
|
@ -12,6 +12,12 @@
|
|||
*/
|
||||
package vip.xiaonuo;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.read.listener.PageReadListener;
|
||||
import vip.xiaonuo.common.exception.CommonException;
|
||||
import vip.xiaonuo.sys.modular.user.param.SysUserImportParam;
|
||||
|
||||
/**
|
||||
* TestMain方法
|
||||
*
|
||||
|
@ -20,6 +26,16 @@ package vip.xiaonuo;
|
|||
*/
|
||||
public class Test {
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
try {
|
||||
// TODO 导入
|
||||
EasyExcel.read("D://import.xlsx", SysUserImportParam.class, new PageReadListener<SysUserImportParam>(dataList -> {
|
||||
for (SysUserImportParam sysUserImportParam : dataList) {
|
||||
System.out.println(JSONUtil.toJsonStr(sysUserImportParam));
|
||||
}
|
||||
})).sheet().headRowNumber(2).doRead();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new CommonException("文件导入失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue