bug修改
This commit is contained in:
@@ -4,6 +4,8 @@ import com.njcn.advance.pojo.dto.relevent.FinalData;
|
|||||||
import com.njcn.advance.pojo.dto.relevent.QtIdx;
|
import com.njcn.advance.pojo.dto.relevent.QtIdx;
|
||||||
import com.sun.jna.Structure;
|
import com.sun.jna.Structure;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,9 +18,11 @@ public class QtIdxArray extends Structure {
|
|||||||
|
|
||||||
public QtIdx[] qtIdxs = new QtIdx[FinalData.MAX_LINE_NUM];
|
public QtIdx[] qtIdxs = new QtIdx[FinalData.MAX_LINE_NUM];
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List getFieldOrder() {
|
protected List<String> getFieldOrder() {
|
||||||
return null;
|
// 返回结构体中所有字段的名称列表(此处只有一个字段 "qtIdxs")
|
||||||
|
return Collections.singletonList("qtIdxs");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ByReference extends QtIdxArray implements Structure.ByReference {
|
public static class ByReference extends QtIdxArray implements Structure.ByReference {
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.njcn.advance.pojo.dto.relevent;
|
package com.njcn.advance.pojo.dto.relevent;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.sun.jna.Structure;
|
import com.sun.jna.Structure;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,6 +17,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
|
@JsonIgnoreProperties({"pointer", "autoAllocate", "autoRead", "autoWrite"}) // 忽略JNA内部字段
|
||||||
public class QtIdx extends Structure{
|
public class QtIdx extends Structure{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,6 +45,9 @@ public class QtIdx extends Structure{
|
|||||||
*/
|
*/
|
||||||
public float r_assi;
|
public float r_assi;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static class ByReference extends QtIdx implements Structure.ByReference {
|
public static class ByReference extends QtIdx implements Structure.ByReference {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -49,9 +56,16 @@ public class QtIdx extends Structure{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 关键:定义字段顺序,必须与 C 结构体一致!
|
||||||
@Override
|
@Override
|
||||||
protected List getFieldOrder() {
|
protected List<String> getFieldOrder() {
|
||||||
return null;
|
return Arrays.asList(
|
||||||
|
"r_esm",
|
||||||
|
"sarfi_90",
|
||||||
|
"sarifi_50",
|
||||||
|
"r_asei",
|
||||||
|
"r_assi"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.njcn.advance.service.impl;
|
package com.njcn.advance.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import com.njcn.advance.mapper.BalanceMapper;
|
import com.njcn.advance.mapper.BalanceMapper;
|
||||||
import com.njcn.advance.pojo.dto.AdvanceBaseDTO;
|
import com.njcn.advance.pojo.dto.AdvanceBaseDTO;
|
||||||
import com.njcn.advance.pojo.dto.BalanceInfo;
|
import com.njcn.advance.pojo.dto.BalanceInfo;
|
||||||
@@ -10,16 +12,19 @@ import com.njcn.advance.service.BalanceService;
|
|||||||
import com.njcn.advance.utils.GetBalanceUtils;
|
import com.njcn.advance.utils.GetBalanceUtils;
|
||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.common.utils.PubUtils;
|
import com.njcn.common.utils.PubUtils;
|
||||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
|
import com.njcn.event.enums.EventResponseEnum;
|
||||||
import com.njcn.system.pojo.enums.StatisticsEnum;
|
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -46,10 +51,11 @@ public class BalanceServiceImpl implements BalanceService {
|
|||||||
List<BalanceInfo> balanceInfoList = new ArrayList<>();
|
List<BalanceInfo> balanceInfoList = new ArrayList<>();
|
||||||
|
|
||||||
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
|
||||||
deviceInfoParam.setDeptIndex(advanceBaseParam.getDeptId());
|
|
||||||
//统计类型
|
//统计类型
|
||||||
SimpleDTO simpleDTO = new SimpleDTO();
|
SimpleDTO simpleDTO = new SimpleDTO();
|
||||||
simpleDTO.setCode(String.valueOf(StatisticsEnum.POWER_NETWORK));
|
simpleDTO.setCode(String.valueOf(StatisticsEnum.POWER_NETWORK));
|
||||||
|
deviceInfoParam.setDeptIndex(advanceBaseParam.getDeptId());
|
||||||
deviceInfoParam.setStatisticalType(simpleDTO);
|
deviceInfoParam.setStatisticalType(simpleDTO);
|
||||||
deviceInfoParam.setServerName(ServerEnum.EVENT.getName());
|
deviceInfoParam.setServerName(ServerEnum.EVENT.getName());
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
|
||||||
@@ -64,30 +70,46 @@ public class BalanceServiceImpl implements BalanceService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String, Float> map = new HashMap<>();
|
||||||
|
Map<String, Integer> map90 = new HashMap<>();
|
||||||
|
Map<String, Integer> map50 = new HashMap<>();
|
||||||
|
Map<String, Float> aSeverityListMap = new HashMap<>();
|
||||||
List<AdvanceBaseDTO> aList = balanceMapper.getFeatureAmplitude(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes());
|
List<AdvanceBaseDTO> aList = balanceMapper.getFeatureAmplitude(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes());
|
||||||
Map<String, Float> map = aList.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueA));
|
if (CollUtil.isNotEmpty(aList)) {
|
||||||
|
map = aList.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueA));
|
||||||
|
}else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
List<AdvanceBaseDTO> a90List = balanceMapper.getSarfi(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.9f);
|
List<AdvanceBaseDTO> a90List = balanceMapper.getSarfi(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.9f);
|
||||||
Map<String, Integer> map90 = a90List.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueB));
|
if (CollUtil.isNotEmpty(a90List)) {
|
||||||
|
map90 = a90List.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueB));
|
||||||
|
}
|
||||||
|
|
||||||
List<AdvanceBaseDTO> a50List = balanceMapper.getSarfi(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.5f);
|
List<AdvanceBaseDTO> a50List = balanceMapper.getSarfi(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.5f);
|
||||||
Map<String, Integer> map50 = a50List.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueB));
|
if (CollUtil.isNotEmpty(a50List)) {
|
||||||
|
map50 = a50List.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueB));
|
||||||
|
}
|
||||||
|
|
||||||
List<AdvanceBaseDTO> aSeverityList = balanceMapper.getSarfiSeverity(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.5f);
|
List<AdvanceBaseDTO> aSeverityList = balanceMapper.getSarfiSeverity(PubUtils.beginTimeToLocalDateTime(advanceBaseParam.getStartTime()), PubUtils.endTimeToLocalDateTime(advanceBaseParam.getEndTime()), generalDeviceDTO.getLineIndexes(), 0.5f);
|
||||||
Map<String, Float> aSeverityListMap = aSeverityList.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueA));
|
if (CollUtil.isNotEmpty(aSeverityList)) {
|
||||||
|
aSeverityListMap = aSeverityList.stream().collect(Collectors.toMap(AdvanceBaseDTO::getLineId, AdvanceBaseDTO::getValueA));
|
||||||
|
}
|
||||||
|
|
||||||
List<BalanceInfo.PointInfo> listTem = new ArrayList<>();
|
List<BalanceInfo.PointInfo> listTem = new ArrayList<>();
|
||||||
for (String lineId : generalDeviceDTO.getLineIndexes()) {
|
for (String lineId : generalDeviceDTO.getLineIndexes()) {
|
||||||
|
|
||||||
BalanceInfo.PointInfo pointInfo = new BalanceInfo.PointInfo();
|
BalanceInfo.PointInfo pointInfo = new BalanceInfo.PointInfo();
|
||||||
pointInfo.setPointId(lineId);
|
pointInfo.setPointId(lineId);
|
||||||
|
|
||||||
QtIdx qtIdx = new QtIdx();
|
QtIdx qtIdx = new QtIdx();
|
||||||
qtIdx.r_esm = MapUtils.getFloat(map,lineId,0f);
|
|
||||||
qtIdx.sarfi_90 = MapUtils.getInteger(map90,lineId,0);
|
|
||||||
qtIdx.sarifi_50 = MapUtils.getInteger(map50,lineId,0);
|
|
||||||
qtIdx.r_assi = MapUtils.getInteger(aSeverityListMap,lineId,0);
|
qtIdx.r_esm = map.getOrDefault(lineId,0f);
|
||||||
qtIdx.r_asei = MapUtils.getInteger(aSeverityListMap,lineId,0);
|
qtIdx.sarfi_90 = map90.getOrDefault(lineId, 0);
|
||||||
|
qtIdx.sarifi_50 = map50.getOrDefault(lineId, 0);
|
||||||
|
qtIdx.r_assi = aSeverityListMap.getOrDefault(lineId, 0f);
|
||||||
|
qtIdx.r_asei = aSeverityListMap.getOrDefault(lineId, 0f);
|
||||||
pointInfo.setQtIdx(qtIdx);
|
pointInfo.setQtIdx(qtIdx);
|
||||||
listTem.add(pointInfo);
|
listTem.add(pointInfo);
|
||||||
}
|
}
|
||||||
@@ -95,9 +117,7 @@ public class BalanceServiceImpl implements BalanceService {
|
|||||||
balanceInfoList.add(balanceInfo);
|
balanceInfoList.add(balanceInfo);
|
||||||
}
|
}
|
||||||
// 打包数据传入dll/so计算结果
|
// 打包数据传入dll/so计算结果
|
||||||
|
|
||||||
getBalanceUtils.translateData(balanceInfoList);
|
getBalanceUtils.translateData(balanceInfoList);
|
||||||
|
|
||||||
return balanceInfoList;
|
return balanceInfoList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -891,7 +891,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
@Override
|
@Override
|
||||||
public List<AreaLineInfoVO> getBaseLineAreaInfo(List<String> lineIndex, String searchValue, Integer comFlag) {
|
public List<AreaLineInfoVO> getBaseLineAreaInfo(List<String> lineIndex, String searchValue, Integer comFlag) {
|
||||||
List<AreaLineInfoVO> resList = this.baseMapper.getBaseLineAreaInfo(lineIndex, searchValue, comFlag);
|
List<AreaLineInfoVO> resList = this.baseMapper.getBaseLineAreaInfo(lineIndex, searchValue, comFlag);
|
||||||
List<String> userIds = resList.stream().filter(x -> StrUtil.isNotBlank(x.getObjId())).map(AreaLineInfoVO::getObjId).collect(Collectors.toList());
|
List<String> userIds = resList.stream().map(AreaLineInfoVO::getObjId).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
Map<String, NewUserReportVO> userReportVOMap = new HashMap<>();
|
Map<String, NewUserReportVO> userReportVOMap = new HashMap<>();
|
||||||
if (CollUtil.isNotEmpty(userIds)) {
|
if (CollUtil.isNotEmpty(userIds)) {
|
||||||
List<NewUserReportVO> data = userLedgerFeignClient.getUserReportByIds(userIds).getData();
|
List<NewUserReportVO> data = userLedgerFeignClient.getUserReportByIds(userIds).getData();
|
||||||
@@ -910,7 +910,6 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
areaLineInfoVO.setLng(newUserReportVO.getLongitude());
|
areaLineInfoVO.setLng(newUserReportVO.getLongitude());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return resList;
|
return resList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,9 +112,9 @@ public class AreaLineServiceImpl implements AreaLineService {
|
|||||||
// 获取变电站
|
// 获取变电站
|
||||||
areaLineVO.setSubstationDetailVOList(substationDetailVOList);
|
areaLineVO.setSubstationDetailVOList(substationDetailVOList);
|
||||||
objectList.add(generalDeviceDTO.getName());
|
objectList.add(generalDeviceDTO.getName());
|
||||||
|
objectList.add(areaLineInfoVOS.size());
|
||||||
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==1).count());
|
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==1).count());
|
||||||
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==0).count());
|
objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==0).count());
|
||||||
objectList.add(areaLineInfoVOS.size());
|
|
||||||
listObject.add(objectList);
|
listObject.add(objectList);
|
||||||
}
|
}
|
||||||
areaLineVO.setAreaValue(listObject);
|
areaLineVO.setAreaValue(listObject);
|
||||||
@@ -130,10 +130,10 @@ public class AreaLineServiceImpl implements AreaLineService {
|
|||||||
}
|
}
|
||||||
EventHeatMapVO eventHeatMapVO = new EventHeatMapVO();
|
EventHeatMapVO eventHeatMapVO = new EventHeatMapVO();
|
||||||
List<List<AreaLineInfoVO>> eventHeatMapDetailList = new ArrayList<>();
|
List<List<AreaLineInfoVO>> eventHeatMapDetailList = new ArrayList<>();
|
||||||
deviceInfoParam.setServerName(ServerEnum.EVENT.getName());
|
|
||||||
List<BaseVO> listObject = new ArrayList<>();
|
List<BaseVO> listObject = new ArrayList<>();
|
||||||
|
|
||||||
// 获取暂降监测点
|
// 获取暂降监测点
|
||||||
|
deviceInfoParam.setServerName(ServerEnum.EVENT.getName());
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
||||||
List<String> lineIndexs;
|
List<String> lineIndexs;
|
||||||
int i = 0, generalDeviceListSize = generalDeviceDTOList.size();
|
int i = 0, generalDeviceListSize = generalDeviceDTOList.size();
|
||||||
@@ -148,8 +148,8 @@ public class AreaLineServiceImpl implements AreaLineService {
|
|||||||
.select("measurement_point_id as measurementPointId,count(file_flag) as fileFlag")
|
.select("measurement_point_id as measurementPointId,count(file_flag) as fileFlag")
|
||||||
.in("measurement_point_id", lineIndexs)
|
.in("measurement_point_id", lineIndexs)
|
||||||
.eq("event_type", voltageData.getId())
|
.eq("event_type", voltageData.getId())
|
||||||
.ge(StrUtil.isNotBlank(deviceInfoParam.getSearchBeginTime()),"start_time" ,DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
|
.ge("start_time" ,DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
|
||||||
.le(StrUtil.isNotBlank(deviceInfoParam.getSearchEndTime()), "start_time", DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())))
|
.le("start_time", DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())))
|
||||||
.groupBy("measurement_point_id")
|
.groupBy("measurement_point_id")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user