From efe8cd99b927be4fd8865954bc564b02ab714830 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 26 Feb 2024 15:55:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=9B=B6=E9=83=A8=E4=BB=B6=E6=A0=91?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=8E=A5=E5=8F=A3=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E8=87=AA=E5=8A=A8=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?firstNode=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srms/controller/SrmsApiController.java | 5 ++ .../controller/LawsPartNameController.java | 2 +- .../standard/service/PartNameService.java | 2 +- .../service/impl/PartNameServiceImpl.java | 53 +++++++++++-------- 4 files changed, 38 insertions(+), 24 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java index 47712bee..1f8ca185 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/srms/controller/SrmsApiController.java @@ -12,6 +12,7 @@ import com.jero.modules.docking.srms.vo.ByFileRows; import com.jero.modules.docking.srms.vo.StandardPageVO; import com.jero.modules.docking.srms.vo.StandardTree; import com.jero.modules.docking.utils.ResponsesUtil; +import com.jero.modules.laws.standard.service.PartNameService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -40,6 +41,9 @@ public class SrmsApiController { private static final String MESSAGE_HEADER = "MessageHeader"; private static final String RESULT = "Result"; + @Resource + private PartNameService partNameService; + @ApiOperation("获取token") @AutoLog(value = "获取token") @PostMapping("/getByToken") @@ -147,6 +151,7 @@ public class SrmsApiController { public JSONObject syncPartData(@RequestBody JSONObject json, HttpServletRequest req){ try { Result re = srmsApiService.syncPartData(json,req); + partNameService.fixFirstNodeCode(); if(!re.isSuccess()){ log.error("零部件分类树同步接口同步失败",re.getMessage()); return ResponsesUtil.getJsonResult(json.get(MESSAGE_HEADER),null); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java index 55d7df66..9b39f7eb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java @@ -60,7 +60,7 @@ public class LawsPartNameController { @ApiOperation(value = "企业标准-零部件树历史数据处理", notes = "企业标准-零部件树历史数据处理") @PostMapping("/hisDataFix") public Result> hisDataFix() { - partNameService.hisDataFix(); + partNameService.fixFirstNodeCode(); return Result.OK(); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java index b6f2a90c..3e1abf66 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java @@ -34,5 +34,5 @@ public interface PartNameService extends IService { /** * 零部件树历史数据处理 */ - void hisDataFix(); + void fixFirstNodeCode(); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java index 547794c0..d82670f9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java @@ -140,36 +140,45 @@ public class PartNameServiceImpl extends ServiceImpl } @Override - public void hisDataFix() { - List allDataList = list(); - // 遍历所有数据,填充firstNode字段 - // 找到树结构中每个节点的一级节点 - Map nodeMap = allDataList.stream() - .collect(Collectors.toMap(PartName::getCode, Function.identity())); + public void fixFirstNodeCode() { + try { + List allDataList = list(); + // 遍历所有数据,填充firstNode字段 + // 找到树结构中每个节点的一级节点 + Map nodeMap = allDataList.stream() + .collect(Collectors.toMap(PartName::getCode, Function.identity())); - // 构建树形结构 - allDataList.forEach(node -> { - PartName parentNode = nodeMap.get(node.getParentCode()); - if (parentNode != null) { - if (parentNode.getChildPartNameList() == null) { - parentNode.setChildPartNameList(new ArrayList<>()); + List needUpdateList = new ArrayList<>(); + + // 构建树形结构 + allDataList.forEach(node -> { + PartName parentNode = nodeMap.get(node.getParentCode()); + if (parentNode != null) { + if (parentNode.getChildPartNameList() == null) { + parentNode.setChildPartNameList(new ArrayList<>()); + } + parentNode.getChildPartNameList().add(node); } - parentNode.getChildPartNameList().add(node); - } - }); + if (StrUtil.isBlank(node.getFirstNode()) && + !node.getParentCode().equals("Part") && + !node.getParentCode().equals("0")) { + needUpdateList.add(node); + } + }); - // 数据整理 - allDataList.forEach(node -> { - if (!node.getParentCode().equals("Part") && node.getFirstNode() == null) { + // 数据整理 + needUpdateList.forEach(node -> { PartName firstNode = this.getFirstLevelNode(node, nodeMap); if (firstNode != null) { node.setFirstNode(firstNode.getCode()); } - } - }); + }); - // 更新数据库 - updateBatchById(allDataList); + // 更新数据库 + updateBatchById(needUpdateList); + } catch (Exception e) { + log.error("零部件树设置firstNode字段数据异常", e); + } } private PartName getFirstLevelNode(PartName node, Map nodeMap) {