diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java index f618d5e7..e3e5e47c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/controller/OldSystemController.java @@ -136,13 +136,4 @@ public class OldSystemController { oldSystemService.importGbStandSystem(file, response); } - @PostMapping("/importFbStandSystem") - @AutoLog(value = "老法规系统-导入外标体系") - @ApiOperation(value="老法规系统-导入外标体系", notes="老法规系统-导入外标体系", produces = "application/octet-stream") - @ApiOperationSupport(order = 11) - public void importFbStandSystem(@RequestParam("file") MultipartFile file, - HttpServletResponse response) throws IOException { - oldSystemService.importFbStandSystem(file, response); - } - } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemService.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemService.java index 3b8a7f9e..eb4bd684 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/OldSystemService.java @@ -82,11 +82,4 @@ public interface OldSystemService { */ void importGbStandSystem(MultipartFile file, HttpServletResponse response); - /** - * 导入外标体系 - * @param file - * @param response - */ - void importFbStandSystem(MultipartFile file, HttpServletResponse response); - } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/impl/OldSystemServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/impl/OldSystemServiceImpl.java index 5d6d5444..76b9e28e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/impl/OldSystemServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/oldSystem/service/impl/OldSystemServiceImpl.java @@ -217,6 +217,14 @@ public class OldSystemServiceImpl implements OldSystemService { if (defaultUser == null) { throw new JeroBootException("未找到默认用户"); } + + // 获取所有企标体系节点并转为Map + String moduleCode = TableNameEnum.FOREIGN_REGULATIONS.getValue(); + LambdaQueryWrapper treeNodeWrapper = new LambdaQueryWrapper<>(); + treeNodeWrapper.eq(LawsTreeNode::getModuleCode, moduleCode); + treeNodeWrapper.eq(LawsTreeNode::getDelFlag, YesOrNoEnum.NO.getValue()); + List treeNodeList = treeNodeService.list(treeNodeWrapper); + Map nodeNameMap = treeNodeList.stream().collect(Collectors.toMap(LawsTreeNode::getNodeName, o -> o)); // 转换数据 List fbList = new ArrayList<>(); for (OldSystemImportDTO dto : fbDatalist) { @@ -313,6 +321,22 @@ public class OldSystemServiceImpl implements OldSystemService { ossFileList.add(ossFile); } } + + // 校验体系 + String bzfl = dto.getBzfl(); + if (StrUtil.isNotBlank(bzfl)) { + // 如果有/的话,只取第一个/后面的数据,无论后面有没有/ + if (bzfl.contains("/")) { + bzfl = bzfl.substring(bzfl.indexOf("/") + 1); + } + // 到Map中找到对应的体系 + LawsTreeNode treeNode = nodeNameMap.get(bzfl.trim()); + if (treeNode != null) { + fb.setStandardSystem(treeNode.getId()); + } else { + throw new JeroBootException("未找到对应的体系,标准编号:" + dto.getBzh() + "体系名称:" + bzfl); + } + } fbList.add(fb); } catch (Exception e) { log.error("导入转换外标数据时发生错误:{}", e.getMessage()); @@ -332,7 +356,7 @@ public class OldSystemServiceImpl implements OldSystemService { } // 3. 将文件关系列表转为Map,用于快速查找 -// Map> standardNumberToFileMap = ossFileList.stream().collect(Collectors.groupingBy(OSSFile::getStandardNo)); + Map> standardNumberToFileMap = ossFileList.stream().collect(Collectors.groupingBy(OSSFile::getStandardNo)); // 4. 遍历待保存或更新的列表,设置ID StringBuilder oldIds = new StringBuilder(); @@ -367,18 +391,25 @@ public class OldSystemServiceImpl implements OldSystemService { } entity.setSubstituteStandardNumber(null); entity.setReplacedByStandardNumber(null); - // 构建updateWrapper 将其余字段全部设为null + String nodeId = entity.getStandardSystem(); + entity.setStandardSystem(null); overseasStandardService.saveOrUpdate(entity); String standardId = entity.getId(); // 保存文件关联 -// List ossFiles = standardNumberToFileMap.get(entity.getStandardNumber()); -// if (ossFiles != null && !ossFiles.isEmpty()) { -// OSSFile ossFile = ossFiles.get(0); -// ossFile.setStandardId(standardId); -// ossFileService.save(ossFile); -// } + List ossFiles = standardNumberToFileMap.get(entity.getStandardNumber()); + if (ossFiles != null && !ossFiles.isEmpty()) { + OSSFile ossFile = ossFiles.get(0); + ossFile.setStandardId(standardId); + ossFileService.save(ossFile); + } + + // 保存体系 + if (StrUtil.isNotBlank(nodeId)) { + lawsNodeRelationService.removeByStandardId(standardId); + lawsNodeRelationService.addRelation(nodeId, null, standardId); + } } log.info("老法规外标覆盖导入完成"); // 获取当前时间戳(毫秒) @@ -972,11 +1003,6 @@ public class OldSystemServiceImpl implements OldSystemService { } - @Override - public void importFbStandSystem(MultipartFile file, HttpServletResponse response) { - - } - public boolean containsChinese(String text) { Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]"); Matcher matcher = pattern.matcher(text);