diff --git a/src/main/java/com/xydl/cac/controller/IedDlController.java b/src/main/java/com/xydl/cac/controller/IedDlController.java index d7724ac..a257384 100644 --- a/src/main/java/com/xydl/cac/controller/IedDlController.java +++ b/src/main/java/com/xydl/cac/controller/IedDlController.java @@ -1,16 +1,12 @@ package com.xydl.cac.controller; +import com.beanit.iec61850bean.FileInformation; import com.xydl.cac.entity.IedDlConfig; import com.xydl.cac.entity.IedDlRecord; -import com.xydl.cac.entity.RemoteConfig; -import com.xydl.cac.entity.RemoteDownload; import com.xydl.cac.exception.BusinessException; import com.xydl.cac.model.Response; import com.xydl.cac.service.IedDlConfigService; import com.xydl.cac.service.IedDlRecordService; -import com.xydl.cac.service.RemoteConfigService; -import com.xydl.cac.service.RemoteDownloadService; -import com.xydl.cac.util.SFTPTool; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -79,4 +75,11 @@ public class IedDlController extends BasicController { return Response.success(result); } + @GetMapping("listFiles") + @ApiOperation("查询文件和目录") + public Response> listFiles(Integer iedId, String path) throws Exception { + List result = configService.listFiles(iedId, path); + return Response.success(result); + } + } diff --git a/src/main/java/com/xydl/cac/service/IedDlConfigService.java b/src/main/java/com/xydl/cac/service/IedDlConfigService.java index 333266a..cd35266 100644 --- a/src/main/java/com/xydl/cac/service/IedDlConfigService.java +++ b/src/main/java/com/xydl/cac/service/IedDlConfigService.java @@ -1,5 +1,6 @@ package com.xydl.cac.service; +import com.beanit.iec61850bean.FileInformation; import com.xydl.cac.entity.IedDlConfig; import com.xydl.cac.exception.BusinessException; @@ -16,4 +17,6 @@ public interface IedDlConfigService { void update(IedDlConfig item) throws Exception; void delete(Integer id); + + List listFiles(Integer iedId, String path) throws Exception; } 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 cdd3139..d93c0b2 100644 --- a/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/IedDlConfigServiceImpl.java @@ -1,9 +1,14 @@ package com.xydl.cac.service.impl; +import com.beanit.iec61850bean.FileInformation; +import com.xydl.cac.entity.IcdFile; import com.xydl.cac.entity.IcdIed; import com.xydl.cac.entity.IedDlConfig; import com.xydl.cac.entity.NSensor; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.iec.IecClient; +import com.xydl.cac.repository.IcdFileRepository; +import com.xydl.cac.repository.IcdIedRepository; import com.xydl.cac.repository.IedDlConfigRepository; import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.service.IcdFileConfigService; @@ -28,6 +33,10 @@ public class IedDlConfigServiceImpl implements IedDlConfigService { NSensorRepository sensorRepository; @Resource IcdFileConfigService configService; + @Resource + IcdFileRepository fileRepository; + @Resource + IcdIedRepository iedRepository; @Override public List listAll() { @@ -76,4 +85,25 @@ public class IedDlConfigServiceImpl implements IedDlConfigService { public void delete(Integer id) { repository.deleteById(id); } + + @Override + public List listFiles(Integer iedId, String path) throws Exception { + Optional optional = iedRepository.findById(iedId); + if (!optional.isPresent()) { + throw new BusinessException("未找到该IED"); + } + IcdIed ied = optional.get(); + Optional optionalFile = fileRepository.findById(ied.getIcdFileId()); + if (!optionalFile.isPresent()) { + throw new BusinessException("未找到该icd文件"); + } + IcdFile icdFile = optionalFile.get(); + try { + IecClient iecClient = new IecClient(); + iecClient.connect(ied.getIp(), 102, ied.getApTitle(), icdFile.getXml()); + return iecClient.listFile(path); + } catch (Exception ex) { + throw new BusinessException(ex.getMessage()); + } + } }