feat: 61850增加查询目录和文件列表

haikang
huangfeng 8 months ago
parent 309760166d
commit 6e3b1b3495

@ -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<List<FileInformation>> listFiles(Integer iedId, String path) throws Exception {
List<FileInformation> result = configService.listFiles(iedId, path);
return Response.success(result);
}
}

@ -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<FileInformation> listFiles(Integer iedId, String path) throws Exception;
}

@ -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<IedDlConfig> listAll() {
@ -76,4 +85,25 @@ public class IedDlConfigServiceImpl implements IedDlConfigService {
public void delete(Integer id) {
repository.deleteById(id);
}
@Override
public List<FileInformation> listFiles(Integer iedId, String path) throws Exception {
Optional<IcdIed> optional = iedRepository.findById(iedId);
if (!optional.isPresent()) {
throw new BusinessException("未找到该IED");
}
IcdIed ied = optional.get();
Optional<IcdFile> 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());
}
}
}

Loading…
Cancel
Save