河北两级贯通文档修改
冀北台账管理接口开发
This commit is contained in:
@@ -0,0 +1,281 @@
|
||||
//package com.njcn.advance.handler;
|
||||
//
|
||||
//import cn.hutool.core.collection.CollUtil;
|
||||
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
//import com.njcn.advance.mapper.RmpEventAdvanceMapper;
|
||||
//import com.njcn.advance.pojo.dto.waveAnalysis.AnalyWave;
|
||||
//import com.njcn.advance.pojo.dto.waveAnalysis.AnalyWaveModel;
|
||||
//import com.njcn.advance.pojo.dto.waveAnalysis.CauseStruct;
|
||||
//import com.njcn.advance.pojo.dto.waveAnalysis.Rect;
|
||||
//import com.njcn.advance.utils.JnaCallBalance;
|
||||
//import com.njcn.advance.utils.JnaCallDllOrSo;
|
||||
//import com.njcn.common.pojo.exception.BusinessException;
|
||||
//import com.njcn.event.api.RmpEventDetailFeignClient;
|
||||
//import com.njcn.event.pojo.po.RmpEventDetailPO;
|
||||
//import com.njcn.middle.rocket.domain.BaseMessage;
|
||||
//import com.njcn.middle.rocket.handler.EnhanceConsumerMessageHandler;
|
||||
//import com.njcn.mq.constant.BusinessTopic;
|
||||
//import com.njcn.mq.message.AppEventMessage;
|
||||
//import com.njcn.mq.message.RmpEventDetailMessage;
|
||||
//import com.njcn.mq.template.RmpEventDetailMessageTemplate;
|
||||
//import com.njcn.system.api.DicDataFeignClient;
|
||||
//import com.njcn.system.enums.DicDataTypeEnum;
|
||||
//import com.njcn.system.pojo.po.DictData;
|
||||
//import lombok.RequiredArgsConstructor;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||
//import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||
//import org.springframework.messaging.Message;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//import org.springframework.stereotype.Service;
|
||||
//
|
||||
//import java.time.ZoneId;
|
||||
//import java.util.*;
|
||||
//import java.util.function.Function;
|
||||
//import java.util.stream.Collectors;
|
||||
//
|
||||
///**
|
||||
// * pqs
|
||||
// *
|
||||
// * @author cdf
|
||||
// * @date 2023/8/24
|
||||
// */
|
||||
//@RocketMQMessageListener(topic = BusinessTopic.RMP_EVENT_DETAIL_TOPIC,
|
||||
// consumerGroup = BusinessTopic.RMP_EVENT_DETAIL_TOPIC,
|
||||
// enableMsgTrace = true)
|
||||
//@Slf4j
|
||||
//@Service
|
||||
//@RequiredArgsConstructor
|
||||
//public class RmpEventDetailConsumer extends EnhanceConsumerMessageHandler<RmpEventDetailMessage> implements RocketMQListener<RmpEventDetailMessage> {
|
||||
// //波形最大值计算
|
||||
// private final int MAXLENGTH = 128 * 3000;
|
||||
//
|
||||
// private final RmpEventAdvanceMapper rmpEventAdvanceMapper;
|
||||
//
|
||||
// private final DicDataFeignClient dicDataFeignClient;
|
||||
//
|
||||
//
|
||||
//
|
||||
// @Override
|
||||
// protected void handleMessage(RmpEventDetailMessage rmpEventDetailMessage) throws Exception {
|
||||
// System.out.println("6666666666666666");
|
||||
// /* if(Objects.nonNull(rmpEventDetailMessage)){
|
||||
// List<String> eventIds = rmpEventDetailMessage.getEventIds();
|
||||
// if(CollUtil.isNotEmpty(eventIds)){
|
||||
// LambdaQueryWrapper<RmpEventDetailPO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.in(RmpEventDetailPO::getEventId,eventIds);
|
||||
// List<RmpEventDetailPO> rmpEventDetailPOList = rmpEventAdvanceMapper.selectList(queryWrapper);
|
||||
//
|
||||
// for(RmpEventDetailPO rmpEventDetailPO : rmpEventDetailPOList){
|
||||
// if(rmpEventDetailPO.getDealFlag() != 1){
|
||||
// //调用算法文件计算暂降特征值
|
||||
//
|
||||
// if(rmpEventDetailPO.getFileFlag() == 1){
|
||||
// //存在录波
|
||||
// JnaCallDllOrSo jnaCallDllOrSo = new JnaCallBalance("qvvr_dll");
|
||||
// jnaCallDllOrSo.setPath();
|
||||
// // 计算暂降类
|
||||
// Rect rect = new Rect();
|
||||
// CauseStruct causeStruct = new CauseStruct();
|
||||
//
|
||||
// JnaCallBalance.Eventlibrary INSTANTCE = JnaCallBalance.Eventlibrary.INSTANTCE;
|
||||
// INSTANTCE.qvvr_fun(rect);
|
||||
//
|
||||
// byte[] arr = new byte[1024];
|
||||
// AnalyWave analyWave = new AnalyWave();
|
||||
// List<List<Float>> pitchList = analyWave.AnalyseComtradeDat(arr,1);
|
||||
// for (int i = 0; i < pitchList.size(); i++) {
|
||||
// rect.smp_va[i] = pitchList.get(i).get(1);
|
||||
// causeStruct.smp_va[i] = pitchList.get(i).get(1);
|
||||
//
|
||||
// rect.smp_vb[i] = pitchList.get(i).get(2);
|
||||
// causeStruct.smp_vb[i] = pitchList.get(i).get(2);
|
||||
//
|
||||
// rect.smp_vc[i] = pitchList.get(i).get(3);
|
||||
// causeStruct.smp_vc[i] = pitchList.get(i).get(3);
|
||||
// }
|
||||
//
|
||||
// rect.smp_len = pitchList.size();
|
||||
// //超过60s的波形直接抛异常给上面处理
|
||||
// if (rect.smp_len >= MAXLENGTH) {
|
||||
// throw new BusinessException("波形超过60S");
|
||||
// }
|
||||
//
|
||||
// rect.smp_rate = 32;
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// *//**
|
||||
// * @判断是否调用成功
|
||||
// * @成功执行更新pqs_eventdetail操作:更新dq持续时间、暂降类型、暂降原因、总分段数目
|
||||
// *//*
|
||||
// if (rect.evt_num > 0) {
|
||||
// RmpEventDetailPO detail = new RmpEventDetailPO();
|
||||
// detail.setEventId("rmpEventDetailPOQuery.getEventId()");
|
||||
// detail.setNum(rect.evt_num);
|
||||
// detail.setDqTime((double) rect.evt_buf[0].hold_time_dq);
|
||||
// detail.setFirstType((Integer.toString(rect.evt_buf[0].qvvr_cata_type[0])));
|
||||
// //detail.setFirstTime(waveData.getFirstTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
// //detail.setFirstMs((double)waveData.getFirstMs());
|
||||
//
|
||||
//
|
||||
// // 排序并获取多段中最小的数据
|
||||
// float[] f = new float[rect.evt_num];
|
||||
//
|
||||
// for (int i = 0; i < rect.evt_num; i++) {
|
||||
// Arrays.parallelSort(rect.evt_buf[i].u3_min, 0, Math.max(rect.evt_buf[i].u_min_num - 1, 0));
|
||||
// f[i] = rect.evt_buf[i].u3_min[0];
|
||||
// }
|
||||
//
|
||||
// float min = f[0];
|
||||
// int index = 0;
|
||||
//
|
||||
// for (int len = 1; len < f.length; len++) {
|
||||
// if (min - f[len] > 0) {
|
||||
// index = len;
|
||||
// min = f[len];
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// *//********************************************************************
|
||||
// * add by sw 返回的分段位置需根据采样率进行恢复
|
||||
// ********************************************************************//*
|
||||
// List<AnalyWaveModel.tagOneRate> list = waveData.getRatesCfg().OneRate;
|
||||
// int rate = (int) waveData.getnOneWaveNum();
|
||||
// int k = 0;
|
||||
// int l = 0;
|
||||
//
|
||||
// for (int i = 0; i < list.size(); i++) {
|
||||
// if (i == 0) {
|
||||
// for (int j = 0; j < rect.evt_buf[0].SEG_T_num; j++) {
|
||||
// if (list.get(i).nOneSample >= rate && rect.evt_buf[0].SEG_T_idx[j] < list.get(i).nSampleNum
|
||||
// / (list.get(i).nOneSample / rate)) {
|
||||
// rect.evt_buf[0].SEG_T_idx[j] = (int) (rect.evt_buf[0].SEG_T_idx[j]
|
||||
// * (list.get(i).nOneSample / rate));
|
||||
// k++;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (int j = 0; j < rect.evt_buf[0].u_min_num; j++) {
|
||||
// if (list.get(i).nOneSample >= rate && rect.evt_buf[0].order_min_idx[j] < list.get(i).nSampleNum
|
||||
// / (list.get(i).nOneSample / rate)) {
|
||||
// rect.evt_buf[0].order_min_idx[j] = (int) (rect.evt_buf[0].order_min_idx[j]
|
||||
// * (list.get(i).nOneSample / rate));
|
||||
// l++;
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// for (int j = k; j < rect.evt_buf[0].SEG_T_num; j++) {
|
||||
// int posb = 0;
|
||||
// int pose = 0;
|
||||
// int pos = 0;
|
||||
//
|
||||
// for (int kk = 0; kk <= i; kk++) {
|
||||
// pose += list.get(kk).nSampleNum / list.get(kk).nOneSample * rate;
|
||||
//
|
||||
// if (kk < i) {
|
||||
// posb += list.get(kk).nSampleNum / list.get(kk).nOneSample * rate;
|
||||
// pos += list.get(kk).nSampleNum;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (list.get(i).nOneSample >= rate
|
||||
// && rect.evt_buf[0].SEG_T_idx[j] > posb
|
||||
// && rect.evt_buf[0].SEG_T_idx[j] < pose) {
|
||||
// rect.evt_buf[0].SEG_T_idx[j] = (int) ((rect.evt_buf[0].SEG_T_idx[j] - posb) * list.get(i).nOneSample / rate) + pos;
|
||||
// k++;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (int j = l; j < rect.evt_buf[0].u_min_num; j++) {
|
||||
// int posb = 0;
|
||||
// int pose = 0;
|
||||
// int pos = 0;
|
||||
//
|
||||
// for (int kk = 0; kk <= i; kk++) {
|
||||
// pose += list.get(kk).nSampleNum / list.get(kk).nOneSample * rate;
|
||||
//
|
||||
// if (kk < i) {
|
||||
// posb += list.get(kk).nSampleNum / list.get(kk).nOneSample * rate;
|
||||
// pos += list.get(kk).nSampleNum;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (list.get(i).nOneSample >= rate
|
||||
// && rect.evt_buf[0].order_min_idx[j] > posb
|
||||
// && rect.evt_buf[0].order_min_idx[j] < pose) {
|
||||
// rect.evt_buf[0].order_min_idx[j] = (int) ((rect.evt_buf[0].order_min_idx[j] - posb) * list.get(i).nSampleNum / rate) + pos;
|
||||
// l++;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// List<DictData> dicDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_TYPE.getCode()).getData();
|
||||
// Map<Integer, DictData> eventTypeMap = dicDataList.stream().collect(Collectors.toMap(DictData::getAlgoDescribe, Function.identity()));
|
||||
//
|
||||
// Integer tem = rect.evt_buf[index].qvvr_cata_type[0];
|
||||
// if(eventTypeMap.containsKey(tem)) {
|
||||
// rmpEventDetailPO.setAdvanceType(eventTypeMap.get(tem).getId());
|
||||
// }
|
||||
// rmpEventDetailPO.setDealFlag(1);
|
||||
// //rmpEventAdvanceMapper.updateById(rmpEventDetailPO);
|
||||
// //setEntityAdvanceData();
|
||||
// //WriteData2File();
|
||||
// //eventDetailMapper.updateDealFlag(1, eventIndex); //计算有结果
|
||||
// } else if (rect.evt_num == 0) {
|
||||
// //eventDetailMapper.updateDealFlag(2, eventIndex);//已计算无结果
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// //TODO 如果不存在录波文件情况
|
||||
// //如果不存在录波文件情况
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }*/
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void handleMaxRetriesExceeded(RmpEventDetailMessage rmpEventDetailMessage) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected boolean isRetry() {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected boolean throwException() {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onMessage(RmpEventDetailMessage rmpEventDetailMessage) {
|
||||
// super.dispatchMessage(rmpEventDetailMessage);
|
||||
// }
|
||||
//
|
||||
// /*********************************
|
||||
// * 获取最小采样率方法
|
||||
// * @param OneRate cfg中关于采样率参数
|
||||
// * @return 返回最小采样率
|
||||
// **********************************/
|
||||
// private long MinWaveSample(List<AnalyWaveModel.tagOneRate> OneRate) {
|
||||
// long nMinOneSample = OneRate.get(0).nOneSample;
|
||||
// for (int i = 0; i < OneRate.size(); i++) {
|
||||
// if (OneRate.get(i).nOneSample >= 32) {
|
||||
// if (nMinOneSample > OneRate.get(i).nOneSample) {
|
||||
// nMinOneSample = OneRate.get(i).nOneSample;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return nMinOneSample;
|
||||
// }
|
||||
//}
|
||||
@@ -90,8 +90,8 @@ public class EventWaveAnalysisServiceImpl implements EventWaveAnalysisService {
|
||||
|
||||
if (rmpEventDetailPO.getFileFlag() == 1) {
|
||||
//获取所有暂态原因
|
||||
List<DictData> dicDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_REASON.getCode()).getData();
|
||||
Map<Integer, DictData> eventReasonMap = dicDataList.stream().collect(Collectors.toMap(DictData::getAlgoDescribe, Function.identity()));
|
||||
List<DictData> dicDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_TYPE.getCode()).getData();
|
||||
Map<Integer, DictData> eventTypeMap = dicDataList.stream().collect(Collectors.toMap(DictData::getAlgoDescribe, Function.identity()));
|
||||
|
||||
InputStream inputStreamCfg = null;
|
||||
InputStream inputStreamDat = null;
|
||||
@@ -197,7 +197,7 @@ public class EventWaveAnalysisServiceImpl implements EventWaveAnalysisService {
|
||||
****************************************************************/
|
||||
if (entityAdvancedData.backNumber > 0) {
|
||||
for (int i = 0; i < entityAdvancedData.backNumber; i++) {
|
||||
entityAdvancedData.sagType[i] = eventReasonMap.get(entityAdvancedData.evt_buf[i].qvvr_cata_type[0]).getName();
|
||||
entityAdvancedData.sagType[i] = eventTypeMap.get(entityAdvancedData.evt_buf[i].qvvr_cata_type[0]).getName();
|
||||
|
||||
switch (entityAdvancedData.evt_buf[i].qvvr_phasetype[0]) {
|
||||
case 1:
|
||||
|
||||
@@ -23,7 +23,6 @@ public class JnaCallBalance extends JnaCallDllOrSo{
|
||||
@Override
|
||||
public void setPath() {
|
||||
JnaCallBalance.strpath = super.getStrpath();
|
||||
System.out.println("真实路径-----"+super.getStrpath());
|
||||
}
|
||||
|
||||
public interface Balancelibrary extends Library {
|
||||
@@ -33,10 +32,10 @@ public class JnaCallBalance extends JnaCallDllOrSo{
|
||||
Balancelibrary INSTANTCE = (Balancelibrary) Native.loadLibrary(JnaCallBalance.strpath, Balancelibrary.class);
|
||||
|
||||
|
||||
// 定义方法--->与C方法相对应
|
||||
// 定义方法--->与C方法相对应(暂降综合评估)
|
||||
void qvvr_fun_cause(QvvrDataStruct data);
|
||||
|
||||
// 定义方法--->与C方法相对应
|
||||
// 定义方法--->与C方法相对应(暂降原因)
|
||||
void qvvr_fun_cause(CauseStruct data);
|
||||
|
||||
|
||||
|
||||
@@ -16,9 +16,7 @@ import java.net.URLDecoder;
|
||||
@Slf4j
|
||||
public class JnaCallDllOrSo {
|
||||
private String path = "";
|
||||
private String nameDll;
|
||||
|
||||
public static String jarPath = "";
|
||||
|
||||
public JnaCallDllOrSo(String name) {
|
||||
super();
|
||||
@@ -27,15 +25,16 @@ public class JnaCallDllOrSo {
|
||||
String os = System.getProperty("os.name");
|
||||
// windows操作系统为1 否则为0
|
||||
int beginIndex = os != null && os.startsWith("Windows") ? 1 : 0;
|
||||
String nameDll;
|
||||
if (beginIndex == 0) {
|
||||
//linux操作系统
|
||||
this.nameDll = "lib" + name + "_dll";
|
||||
nameDll = "lib" + name + "_dll";
|
||||
suffix = ".so";
|
||||
} else {
|
||||
this.nameDll = name;
|
||||
nameDll = name;
|
||||
}
|
||||
|
||||
String tem = "/usr/local/dllFile/"+this.nameDll.concat(suffix);
|
||||
String tem = "/usr/local/dllFile/"+ nameDll.concat(suffix);
|
||||
File dockerFile = new File(tem);
|
||||
if(!dockerFile.exists()){
|
||||
boolean f = dockerFile.getParentFile().mkdirs();
|
||||
@@ -43,7 +42,7 @@ public class JnaCallDllOrSo {
|
||||
System.out.println("文件夹创建:"+f);
|
||||
System.out.println("文件创建:"+d);
|
||||
|
||||
try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream(this.nameDll.concat(suffix))) {
|
||||
try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream(nameDll.concat(suffix))) {
|
||||
try (FileOutputStream outputStream = new FileOutputStream(dockerFile)) {
|
||||
byte[] buffer = new byte[1024];
|
||||
int bytesRead;
|
||||
@@ -55,6 +54,7 @@ public class JnaCallDllOrSo {
|
||||
}
|
||||
this.path = dockerFile.getAbsolutePath();
|
||||
} catch (Exception e) {
|
||||
log.error("调用高级算法文件异常,异常信息如下:");
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user