diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/entity/ESAuthUser.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/entity/ESAuthUser.java index 8a661af8..213c6cf0 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/entity/ESAuthUser.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/entity/ESAuthUser.java @@ -17,30 +17,34 @@ import org.jeecgframework.poi.excel.annotation.Excel; @AllArgsConstructor public class ESAuthUser { - @Excel(name = "标准ID") + @Excel(name = "标准ID", width = 15, orderNum = "1") @ApiModelProperty(value = "标准ID") private String standardId; - @Excel(name = "标准号") + @Excel(name = "标准号", width = 15, orderNum = "2") @ApiModelProperty(value = "标准号") private String standardNumber; - @Excel(name = "标准名称") + @Excel(name = "标准名称", width = 15, orderNum = "3") @ApiModelProperty(value = "标准名称") private String standardName; - @Excel(name = "标准分类") + @Excel(name = "标准分类", width = 15, orderNum = "4") @ApiModelProperty(value = "标准分类") private String standardType; - @Excel(name = "工号") + @Excel(name = "工号", width = 15, orderNum = "5") @ApiModelProperty(value = "工号") private String workNumber; - @Excel(name = "姓名") + @Excel(name = "姓名", width = 15, orderNum = "6") @ApiModelProperty(value = "姓名") private String realName; + @Excel(name = "错误信息", width = 35, orderNum = "7") + @ApiModelProperty(value = "错误信息") + private String errorInfo; + public boolean isEmptyRow() { return standardId == null && standardNumber == null && diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java index 300309b1..c62ae838 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java @@ -290,11 +290,12 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl errImportList = new ArrayList<>(); // 验证文件是否为压缩格式file.getContentType()).contains("xls") if (!Objects.requireNonNull(file.getOriginalFilename()).contains("xls")) { throw new JeroBootException("文件格式不正确,请上传Excel。"); @@ -319,7 +320,13 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl StrUtil.isNotBlank(data.getStandardType())) + .filter(data -> data.getStandardType().startsWith("企业标准")).collect(Collectors.toList()); + log.info("企标相关数据条数:{}", datalist.size()); // 获取当前时间戳(毫秒) long endTime = System.currentTimeMillis(); // 计算执行时间(毫秒) @@ -332,7 +339,7 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getOldSystemId, o -> o)); Map> auMap = datalist.stream().collect(Collectors.groupingBy(ESAuthUser::getStandardId)); List userlist = sysUserService.list(); - Map userMap = userlist.stream().collect(Collectors.toMap(SysUser::getUsername, o -> o)); + Map userMap = userlist.stream().collect(Collectors.toMap(u -> u.getRealname() + u.getUsername(), o -> o)); // 构造一个2099-12-31的Date时间 Calendar calendar = Calendar.getInstance(); @@ -348,28 +355,40 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl authUserList = new ArrayList<>(); - // 遍历esMap - for (Map.Entry entry : esMap.entrySet()) { - LawsEnterpriseStandard es = entry.getValue(); - String standardId = es.getId(); - List auList = auMap.get(standardId); - if (auList != null) { - for (ESAuthUser au : auList) { - EnterpriseStandardAuthUser authUser = new EnterpriseStandardAuthUser(); - authUser.setStandardId(es.getId()); - String userId = userMap.get(au.getWorkNumber()).getId(); - authUser.setAuthUser(userId); - authUser.setAuthExpireDate(date); - authUserList.add(authUser); + // 遍历dataList 并且构造save语句 + for (ESAuthUser au : datalist) { + try { + String oldStandardId = au.getStandardId(); + LawsEnterpriseStandard es = esMap.get(oldStandardId); + if (es == null) { + throw new JeroBootException("未找到该企标,老标准编号:" + au.getStandardNumber() + ",标准名称:" + au.getStandardName()); } + String standardId = es.getId(); + // 获取用户 + SysUser user = userMap.get(au.getRealName() + au.getWorkNumber()); + if (user == null) { + throw new JeroBootException("未找到该用户,姓名:" + au.getRealName() + ",工号:" + au.getWorkNumber() + "老标准编号:" + au.getStandardNumber()); + } + EnterpriseStandardAuthUser esAu = new EnterpriseStandardAuthUser(); + esAu.setStandardId(standardId); + esAu.setAuthUser(user.getId()); + esAu.setAuthExpireDate(date); + authUserList.add(esAu); + } catch (Exception e) { + au.setErrorInfo(e.getMessage()); + errImportList.add(au); } } esAuthUserService.saveBatch(authUserList, authUserList.size()); - - log.info("企标个人权限导入成功"); + log.info("企标个人权限导入成功,成功条数{}", authUserList.size()); } catch (Exception e) { log.error("导入失败;{}", e.getMessage()); } + if (!errImportList.isEmpty()) { + log.info("导入失败数据条数:{}", errImportList.size()); + this.exportWithExcel(response, errImportList, "ESAuthUserErrorData.xls"); + } + log.info("企标个人权限导入结束"); } @Override