From a8a97f0f4c0bfac3899726b5c256d97d5e9299f7 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Tue, 25 Apr 2023 09:41:20 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E7=A6=BB=E7=BA=BF=E6=B3=A2=E5=BD=A2?= =?UTF-8?q?=E8=AE=A1=E7=AE=97pt=E5=80=BC=E5=92=8Cct=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impl/AutonomeWaveServiceImpl.java | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AutonomeWaveServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AutonomeWaveServiceImpl.java index 27097db35..56e122b3f 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AutonomeWaveServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AutonomeWaveServiceImpl.java @@ -1,12 +1,14 @@ package com.njcn.event.service.majornetwork.Impl; import com.njcn.common.config.GeneralInfo; +import com.njcn.event.pojo.dto.wave.AnalogDTO; 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.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -15,6 +17,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.List; import java.util.Objects; /** @@ -34,9 +37,9 @@ public class AutonomeWaveServiceImpl implements AutonomeWaveService { @Override public WaveDataDTO uploadFileAndViewWave(MultipartFile file1, MultipartFile file2) throws IOException { //测试路径 - File dir = new File("C:\\Users\\User\\Desktop\\wave"); + // dir = new File("C:\\Users\\User\\Desktop\\wave"); //真实路径 - // File dir = new File(generalInfo.getBusinessTempPath() + File.separator + "wave"); + File dir = new File(generalInfo.getBusinessTempPath() + File.separator + "wave"); String cfgPath, datPath; if (!dir.exists()) { @@ -57,7 +60,8 @@ public class AutonomeWaveServiceImpl implements AutonomeWaveService { 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); + WaveDataDTO validData = waveUtil.getValidData(comtrade); + return countPtCt(validData); } else { //使用本地的波形文件进行测试 File dat = new File(dir + File.separator + fileName1); @@ -69,7 +73,37 @@ public class AutonomeWaveServiceImpl implements AutonomeWaveService { 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); + WaveDataDTO validData = waveUtil.getValidData(comtrade); + return countPtCt(validData); } } + + /** + * 计算pt值和ct值 + */ + private WaveDataDTO countPtCt(WaveDataDTO waveDataDTO){ + //取出集合 + List lstAnalogDTO = waveDataDTO.getComtradeCfgDTO().getLstAnalogDTO(); + AnalogDTO ptParam = null; + for (AnalogDTO analogDTO : lstAnalogDTO) { + if (StringUtils.isNotBlank(analogDTO.getSzUnitName())&& analogDTO.getSzUnitName().contains("V")){ + ptParam = analogDTO; + break; + } + } + AnalogDTO ctParam = null; + for (AnalogDTO analogDTO : lstAnalogDTO) { + if (StringUtils.isNotBlank(analogDTO.getSzUnitName())&& analogDTO.getSzUnitName().contains("A")){ + ctParam = analogDTO; + break; + } + } + double pt1 = Double.parseDouble(ptParam.getFPrimary().toString()); + double pt2 = Double.parseDouble(ptParam.getFSecondary().toString()); + double ct1 = Double.parseDouble(ctParam.getFPrimary().toString()); + double ct2 = Double.parseDouble(ctParam.getFSecondary().toString()); + waveDataDTO.setPt(pt1 / pt2); + waveDataDTO.setCt(ct1 / ct2); + return waveDataDTO; + } } \ No newline at end of file