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;