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) {