From 4a9d4df27c3eb32041c545c16f129d22782b116e Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 10 Jan 2024 16:05:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20SCD=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcdFileConfigServiceImpl.java | 28 +++++++++++-------- .../java/com/xydl/cac/util/IcdXmlUtil.java | 14 ++++++---- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/xydl/cac/service/impl/IcdFileConfigServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/IcdFileConfigServiceImpl.java index c91a944..c836f28 100644 --- a/src/main/java/com/xydl/cac/service/impl/IcdFileConfigServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/IcdFileConfigServiceImpl.java @@ -40,22 +40,26 @@ public class IcdFileConfigServiceImpl implements IcdFileConfigService { config.getIedName(), config.getLdeviceInst(), config.getLnClass()); if (CollectionUtils.isEmpty(list)) { repository.save(config); + } else { + config.setId(list.get(0).getId()); + } - if (config.getAttMap() != null) { - Collection attList = config.getAttMap().values(); - for (IcdConfigTypeAtt item : attList) { - item.setIcdConfigTypeId(config.getId()); - } - attRepository.saveAll(attList); + attRepository.deleteByIcdConfigTypeId(config.getId()); + if (config.getAttMap() != null) { + Collection attList = config.getAttMap().values(); + for (IcdConfigTypeAtt item : attList) { + item.setIcdConfigTypeId(config.getId()); } + attRepository.saveAll(attList); + } - if (config.getInstMap() != null) { - Collection instList = config.getInstMap().values(); - for (IcdConfigTypeInst item : instList) { - item.setIcdConfigTypeId(config.getId()); - } - instRepository.saveAll(instList); + instRepository.deleteByIcdConfigTypeId(config.getId()); + if (config.getInstMap() != null) { + Collection instList = config.getInstMap().values(); + for (IcdConfigTypeInst item : instList) { + item.setIcdConfigTypeId(config.getId()); } + instRepository.saveAll(instList); } } } diff --git a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java index 72a6b31..25fa5dc 100644 --- a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java +++ b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java @@ -154,17 +154,19 @@ public class IcdXmlUtil { String result = ""; List daList = findNodes(node, "DA"); for (JsonNode daNode : daList) { - JsonNode dchgNode = daNode.get("dchg"); String fc = daNode.get("fc").asText(); - if (dchgNode != null && dchgNode.asText().equals("true") && fc.equals(fcname)) { + String bType = daNode.get("bType").asText(); + if (bType.equals("Struct") && fc.equals(fcname)) { result = daNode.get("name").asText(); JsonNode typeNode = daNode.get("type"); if (typeNode != null && StringUtils.isNotBlank(typeNode.asText())) { JsonNode nodeDAType = mapDAType.get(typeNode.asText()); - List bdaList = findNodes(nodeDAType, "BDA"); - if (!CollectionUtils.isEmpty(bdaList)) { - String name = bdaList.get(0).get("name").asText(); - result = result + "$" + name; + if (nodeDAType != null) { + List bdaList = findNodes(nodeDAType, "BDA"); + if (!CollectionUtils.isEmpty(bdaList)) { + String name = bdaList.get(0).get("name").asText(); + result = result + "$" + name; + } } } break;