zbj//1.上传文件并且展示波形

This commit is contained in:
zhangbaojian
2023-04-24 14:19:39 +08:00
parent 138fbc0cc8
commit 85dc7b0152
3 changed files with 145 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
package com.njcn.event.service.majornetwork;
import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/23
*/
public interface AutonomeWaveService {
WaveDataDTO uploadFileAndViewWave(MultipartFile file1, MultipartFile file2) throws IOException;
}

View File

@@ -0,0 +1,75 @@
package com.njcn.event.service.majornetwork.Impl;
import com.njcn.common.config.GeneralInfo;
import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.service.majornetwork.AutonomeWaveService;
import com.njcn.event.utils.WaveUtil;
import com.njcn.oss.constant.GeneralConstant;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Objects;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/043/23
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class AutonomeWaveServiceImpl implements AutonomeWaveService {
private final GeneralInfo generalInfo;
private final WaveUtil waveUtil;
@Override
public WaveDataDTO uploadFileAndViewWave(MultipartFile file1, MultipartFile file2) throws IOException {
//测试路径
File dir = new File("C:\\Users\\User\\Desktop\\wave");
//真实路径
// File dir = new File(generalInfo.getBusinessTempPath() + File.separator + "wave");
String cfgPath, datPath;
if (!dir.exists()) {
dir.mkdirs();
}
String fileName1 = file1.getOriginalFilename();
String fileName2 = file2.getOriginalFilename();
//判断文件后缀
String fileExtension1 = fileName1.substring(fileName1.lastIndexOf(".")).toUpperCase();
if (Objects.equals(fileExtension1, GeneralConstant.CFG)) {
//使用本地的波形文件进行测试
File cfg = new File(dir + File.separator + fileName1);
File dat = new File(dir + File.separator + fileName2);
file1.transferTo(cfg);
file2.transferTo(dat);
cfgPath = dir + File.separator + fileName1;
datPath = dir + File.separator + fileName2;
InputStream cfgInputStream = Files.newInputStream(Paths.get(cfgPath));
InputStream datInputStream = Files.newInputStream(Paths.get(datPath));
WaveDataDTO comtrade = waveUtil.getComtrade(cfgInputStream, datInputStream, 1);
return waveUtil.getValidData(comtrade);
} else {
//使用本地的波形文件进行测试
File dat = new File(dir + File.separator + fileName1);
File cfg = new File(dir + File.separator + fileName2);
file1.transferTo(dat);
file2.transferTo(cfg);
cfgPath = dir + File.separator + fileName2;
datPath = dir + File.separator + fileName1;
InputStream cfgInputStream = Files.newInputStream(Paths.get(cfgPath));
InputStream datInputStream = Files.newInputStream(Paths.get(datPath));
WaveDataDTO comtrade = waveUtil.getComtrade(cfgInputStream, datInputStream, 1);
return waveUtil.getValidData(comtrade);
}
}
}