diff --git a/src/main/java/com/xydl/cac/entity/IcdIed.java b/src/main/java/com/xydl/cac/entity/IcdIed.java index f123a51..9afdd78 100644 --- a/src/main/java/com/xydl/cac/entity/IcdIed.java +++ b/src/main/java/com/xydl/cac/entity/IcdIed.java @@ -45,4 +45,7 @@ public class IcdIed { @Column(name = "start") private Integer start; + @ApiModelProperty(name = "端口") + @Column(name = "port") + private Integer port; } \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java index e0300fa..f4e55f7 100644 --- a/src/main/java/com/xydl/cac/iec/IEDCollectService.java +++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java @@ -55,7 +55,7 @@ public class IEDCollectService { } public void connect() throws Exception { - iecClient.connect(ied.getIp(), 102, ied.getApTitle(), xml); + iecClient.connect(ied.getIp(), ied.getPort(), ied.getApTitle(), xml); } public void disconnect() { diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java index 42bd51f..24b0d1a 100644 --- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java +++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java @@ -58,16 +58,16 @@ public class RealTimeDataService { IcdFile icdFile = optionalFile.get(); try { IecClient iecClient = new IecClient(); - iecClient.connect(ied.getIp(), 102, ied.getApTitle(), icdFile.getXml()); + iecClient.connect(ied.getIp(), ied.getPort(), ied.getApTitle(), icdFile.getXml()); iecClient.enableReporting(); - log.info("61850订阅成功, ied=" + ied.getName() + ", ip=" + ied.getIp()); + log.info("61850订阅成功, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); ied.setStart(Constants.TRUE); iedRepository.save(ied); clientMap.put(ied.getId(), iecClient); } catch (Exception ex) { ied.setStart(Constants.FALSE); iedRepository.save(ied); - String err = "61850订阅异常, ied=" + ied.getName() + ", ip=" + ied.getIp(); + String err = "61850订阅异常, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort(); log.error(err, ex); throw new BusinessException(err); } finally { diff --git a/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java index d93c0b2..2dda516 100644 --- a/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java @@ -98,12 +98,14 @@ public class IedDlConfigServiceImpl implements IedDlConfigService { throw new BusinessException("未找到该icd文件"); } IcdFile icdFile = optionalFile.get(); + IecClient iecClient = new IecClient(); try { - IecClient iecClient = new IecClient(); - iecClient.connect(ied.getIp(), 102, ied.getApTitle(), icdFile.getXml()); + iecClient.connect(ied.getIp(), ied.getPort(), ied.getApTitle(), icdFile.getXml()); return iecClient.listFile(path); } catch (Exception ex) { throw new BusinessException(ex.getMessage()); + } finally { + iecClient.disconnect(); } } } diff --git a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java index aef2ab3..8a36117 100644 --- a/src/main/java/com/xydl/cac/util/IcdXmlUtil.java +++ b/src/main/java/com/xydl/cac/util/IcdXmlUtil.java @@ -56,6 +56,7 @@ public class IcdXmlUtil { private static IcdIed processAPNode(JsonNode apNode) { IcdIed ied = new IcdIed(); + ied.setPort(102); String iedName = apNode.get("iedName").asText(); ied.setName(iedName); List pList = findNodes(apNode, "P");