【更新】完善导入功能
This commit is contained in:
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) {
|
public String findOrgIdByOrgName(String parentId, Iterator<String> iterator, List<SysOrg> cachedAllOrgList, List<Tree<String>> treeList) {
|
||||||
String next = iterator.next();
|
String orgName = iterator.next();
|
||||||
// TODO
|
if(ObjectUtil.isNotEmpty(treeList)) {
|
||||||
List<Tree<String>> findList = treeList.stream().filter(tree -> tree.getName().equals(next)).collect(Collectors.toList());
|
List<Tree<String>> findList = treeList.stream().filter(tree -> tree.getName().equals(orgName)).collect(Collectors.toList());
|
||||||
if(ObjectUtil.isNotEmpty(findList)) {
|
if(ObjectUtil.isNotEmpty(findList)) {
|
||||||
if(iterator.hasNext()) {
|
if(iterator.hasNext()) {
|
||||||
return findOrgIdByOrgName(findList.get(0).getId(), iterator, cachedAllOrgList, findList.get(0).getChildren());
|
return findOrgIdByOrgName(findList.get(0).getId(), iterator, cachedAllOrgList, findList.get(0).getChildren());
|
||||||
} else {
|
} else {
|
||||||
return findList.get(0).getId();
|
return findList.get(0).getId();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String orgId = this.doCreateOrg(parentId, orgName, cachedAllOrgList);
|
||||||
|
if(iterator.hasNext()) {
|
||||||
|
return findOrgIdByOrgName(orgId, iterator, cachedAllOrgList, CollectionUtil.newArrayList());
|
||||||
} else {
|
} else {
|
||||||
|
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 sysOrg = new SysOrg();
|
||||||
sysOrg.setName(next);
|
sysOrg.setName(orgName);
|
||||||
sysOrg.setCode(RandomUtil.randomString(10));
|
sysOrg.setCode(RandomUtil.randomString(10));
|
||||||
sysOrg.setParentId(parentId);
|
sysOrg.setParentId(parentId);
|
||||||
sysOrg.setCategory(parentId.equals("0")?SysOrgCategoryEnum.COMPANY.getValue():SysOrgCategoryEnum.DEPT.getValue());
|
sysOrg.setCategory(parentId.equals("0")?SysOrgCategoryEnum.COMPANY.getValue():SysOrgCategoryEnum.DEPT.getValue());
|
||||||
sysOrg.setSortCode(99);
|
sysOrg.setSortCode(99);
|
||||||
this.save(sysOrg);
|
this.save(sysOrg);
|
||||||
// TODO 发布增加事件
|
// 发布增加事件
|
||||||
CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.ORG.getValue(), JSONUtil.createArray().put(sysOrg));
|
CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.ORG.getValue(), JSONUtil.createArray().put(sysOrg));
|
||||||
// 将该机构加入缓存
|
// 将该机构加入缓存
|
||||||
cachedAllOrgList.add(sysOrg);
|
cachedAllOrgList.add(sysOrg);
|
||||||
// 更新缓存
|
// 更新缓存
|
||||||
commonCacheOperator.put(ORG_CACHE_ALL_KEY, cachedAllOrgList);
|
commonCacheOperator.put(ORG_CACHE_ALL_KEY, cachedAllOrgList);
|
||||||
// 继续查找
|
|
||||||
if(iterator.hasNext()) {
|
|
||||||
return findOrgIdByOrgName(sysOrg.getId(), iterator, cachedAllOrgList, CollectionUtil.newArrayList());
|
|
||||||
} else {
|
|
||||||
return sysOrg.getId();
|
return sysOrg.getId();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ====组织部分所需要用到的选择器==== */
|
/* ====组织部分所需要用到的选择器==== */
|
||||||
|
|
||||||
|
@ -986,8 +986,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
int successCount = 0;
|
int successCount = 0;
|
||||||
int errorCount = 0;
|
int errorCount = 0;
|
||||||
JSONArray errorDetail = JSONUtil.createArray();
|
JSONArray errorDetail = JSONUtil.createArray();
|
||||||
List<SysUserImportParam> sysUserImportParamList = EasyExcel.read("D://userImportTemplate.xlsx")
|
byte[] bytes = file.getBytes();
|
||||||
.head(SysUserImportParam.class).sheet().headRowNumber(2).doReadSync();
|
// 创建临时文件
|
||||||
|
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();
|
List<SysUser> allUserList = this.list();
|
||||||
for (int i = 0; i < sysUserImportParamList.size(); i++) {
|
for (int i = 0; i < sysUserImportParamList.size(); i++) {
|
||||||
JSONObject jsonObject = this.doImport(allUserList, sysUserImportParamList.get(i), i);
|
JSONObject jsonObject = this.doImport(allUserList, sysUserImportParamList.get(i), i);
|
||||||
@ -1032,7 +1037,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
// 机构id
|
// 机构id
|
||||||
String orgId = sysOrgService.getOrgIdByOrgFullNameWithCreate(orgFullName);
|
String orgId = sysOrgService.getOrgIdByOrgFullNameWithCreate(orgFullName);
|
||||||
// 职位id
|
// 职位id
|
||||||
String positionId = sysPositionService.getPositionIdByPositionNameWithCreate(orgId, positionFullName);
|
String positionId = sysPositionService.getPositionIdByPositionNameWithCreate(orgId, positionName);
|
||||||
|
|
||||||
// 查找账号对应索引
|
// 查找账号对应索引
|
||||||
int index = CollStreamUtil.toList(allUserList, SysUser::getAccount).indexOf(account);
|
int index = CollStreamUtil.toList(allUserList, SysUser::getAccount).indexOf(account);
|
||||||
|
@ -12,6 +12,12 @@
|
|||||||
*/
|
*/
|
||||||
package vip.xiaonuo;
|
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方法
|
* TestMain方法
|
||||||
*
|
*
|
||||||
@ -20,6 +26,16 @@ package vip.xiaonuo;
|
|||||||
*/
|
*/
|
||||||
public class Test {
|
public class Test {
|
||||||
public static void main(String[] args) throws Exception {
|
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…
x
Reference in New Issue
Block a user