diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..374fc0b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,49 @@
+# Compiled class file
+*.class
+*.iml
+*.idea
+target/
+logs/
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+*velocity.log*
+
+# Eclipse #
+.classpath
+.project
+.settings/
+
+.DS_Store
+
+_dockerCerts/
+
+.factorypath
+
+node_modules/
+package-lock.json
+yarn.lock
+
+rebel.xml
+
+!DmJdbcDriver18.jar
+!kingbase8-8.6.0.jar
+/govern.ipr
+/govern.iws
diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java
index 73df459..b096b75 100644
--- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java
+++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/enums/AlgorithmResponseEnum.java
@@ -20,6 +20,7 @@ public enum AlgorithmResponseEnum {
NDID_ERROR("A00502","存在相同的ndid"),
DATA_ERROR("A00503","存在相同的数据"),
LINE_DATA_ERROR ("A00504","设备下监测点数据缺失"),
+ LINE_DATA_MISS ("A00504","设备下监测点数据缺失"),
POSITION_ERROR ("A00504","监测点位置数据缺失"),
ENGINEERING_DATA_ERROR ("A00505","工程数据数据缺失"),
ELEEPDPQD_DATA_ERROR ("A00506","统计指标据数据缺失"),
diff --git a/cs-harmonic/cs-harmonic-boot/pom.xml b/cs-harmonic/cs-harmonic-boot/pom.xml
index ecea26b..af96440 100644
--- a/cs-harmonic/cs-harmonic-boot/pom.xml
+++ b/cs-harmonic/cs-harmonic-boot/pom.xml
@@ -74,6 +74,18 @@
1.0.0
compile
+
+ com.njcn
+ common-event
+ 1.0.0
+ compile
+
+
+ com.njcn
+ common-oss
+ 1.0.0
+ compile
+
com.njcn
user-api
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/EventController.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/EventController.java
index 142e53e..2169a7e 100644
--- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/EventController.java
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/controller/EventController.java
@@ -7,7 +7,9 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csharmonic.param.CsEventUserQueryParam;
import com.njcn.csharmonic.pojo.vo.EventDetailVO;
+import com.njcn.csharmonic.service.CsEventPOService;
import com.njcn.csharmonic.service.EventService;
+import com.njcn.event.file.pojo.dto.WaveDataDTO;
import com.njcn.influx.pojo.dto.EventQueryDTO;
import com.njcn.influx.pojo.po.cs.EntData;
import com.njcn.web.controller.BaseController;
@@ -33,7 +35,11 @@ import java.util.List;
@Api(tags = "暂降事件")
@AllArgsConstructor
public class EventController extends BaseController {
+
private final EventService eventService;
+
+ private final CsEventPOService csEventPOService;
+
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEvent")
@ApiOperation("暂降事件查询")
@@ -55,6 +61,16 @@ public class EventController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @GetMapping("/analyseWave")
+ @ApiOperation("暂态事件波形分析")
+ @ApiImplicitParam(name = "eventId", value = "暂态事件索引", required = true)
+ public HttpResult analyseWave(String eventId) {
+ String methodDescribe = getMethodDescribe("analyseWave");
+ WaveDataDTO wave = csEventPOService.analyseWave(eventId);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, wave, methodDescribe);
+ }
+
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java
index 2cd08b5..32bcedb 100644
--- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/CsEventPOService.java
@@ -2,15 +2,22 @@ package com.njcn.csharmonic.service;
import com.njcn.csharmonic.pojo.po.CsEventPO;
import com.baomidou.mybatisplus.extension.service.IService;
- /**
- *
+import com.njcn.event.file.pojo.dto.WaveDataDTO;
+
+/**
* Description:
* Date: 2023/9/4 15:15【需求编号】
*
* @author clam
* @version V1.0.0
*/
-public interface CsEventPOService extends IService{
-
+public interface CsEventPOService extends IService {
+ /***
+ * 根据事件ID解析该事件波形文件
+ * @author hongawen
+ * @date 2023/9/20 14:23
+ * @return WaveDataDTO
+ */
+ WaveDataDTO analyseWave(String eventId);
}
diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java
index 6980e11..4a0596a 100644
--- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java
+++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java
@@ -1,19 +1,81 @@
package com.njcn.csharmonic.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.common.utils.PubUtils;
+import com.njcn.csdevice.api.CsLineFeignClient;
+import com.njcn.csdevice.enums.AlgorithmResponseEnum;
+import com.njcn.csdevice.pojo.po.CsLinePO;
+import com.njcn.event.file.component.WaveFileComponent;
+import com.njcn.event.file.pojo.dto.WaveDataDTO;
+import com.njcn.event.file.pojo.enums.WaveFileResponseEnum;
+import com.njcn.oss.constant.GeneralConstant;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csharmonic.mapper.CsEventPOMapper;
import com.njcn.csharmonic.pojo.po.CsEventPO;
import com.njcn.csharmonic.service.CsEventPOService;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
/**
- *
* Description:
* Date: 2023/9/4 15:15【需求编号】
*
* @author clam
* @version V1.0.0
*/
+@Slf4j
@Service
-public class CsEventPOServiceImpl extends ServiceImpl implements CsEventPOService{
+@RequiredArgsConstructor
+public class CsEventPOServiceImpl extends ServiceImpl implements CsEventPOService {
+ private final FileStorageUtil fileStorageUtil;
+
+ private final WaveFileComponent waveFileComponent;
+
+ private final CsLineFeignClient csLineFeignClient;
+
+ @Override
+ public WaveDataDTO analyseWave(String eventId) {
+ WaveDataDTO waveDataDTO;
+ //获取暂降事件
+ CsEventPO eventDetail = this.baseMapper.selectById(eventId);
+ String waveName = eventDetail.getWavePath();
+ if(StrUtil.isBlank(waveName)){
+ throw new BusinessException(WaveFileResponseEnum.ANALYSE_WAVE_NOT_FOUND);
+ }
+ String cfgPath = waveName.concat(GeneralConstant.CFG), datPath = waveName.concat(GeneralConstant.DAT);
+ System.out.println("波形路径-------------------" + cfgPath);
+ try (
+ InputStream cfgStream = fileStorageUtil.getFileStream(cfgPath);
+ InputStream datStream = fileStorageUtil.getFileStream(datPath)
+ ) {
+ if (Objects.isNull(cfgStream) || Objects.isNull(datStream)) {
+ throw new BusinessException(WaveFileResponseEnum.ANALYSE_WAVE_NOT_FOUND);
+ }
+ waveDataDTO = waveFileComponent.getComtrade(cfgStream, datStream, 1);
+ } catch (Exception e) {
+ throw new BusinessException(WaveFileResponseEnum.WAVE_DATA_INVALID);
+ }
+ waveDataDTO = waveFileComponent.getValidData(waveDataDTO);
+ List csLinePOList = csLineFeignClient.queryLineById(Stream.of(eventDetail.getLineId()).collect(Collectors.toList())).getData();
+ if(CollectionUtil.isEmpty(csLinePOList)){
+ throw new BusinessException(AlgorithmResponseEnum.LINE_DATA_MISS);
+ }
+ waveDataDTO.setPtType(csLinePOList.get(0).getConType());
+ waveDataDTO.setPt(csLinePOList.get(0).getPtRatio());
+ waveDataDTO.setCt(csLinePOList.get(0).getCtRatio() );
+ return waveDataDTO;
+ }
}
diff --git a/pom.xml b/pom.xml
index 5481984..9d4043b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,13 +24,13 @@
192.168.1.13
127.0.0.1
-
192.168.1.13
${middle.server.url}:18848
+
+ fd74182b-1fce-4dba-afa7-2623b0376205
- 415a1c87-33aa-47bd-8e25-13cc456c87ed
${middle.server.url}:8080