代码调整

This commit is contained in:
2022-12-27 15:51:37 +08:00
parent 97e18b59cf
commit 7c4cef74e7
17 changed files with 300 additions and 24 deletions

View File

@@ -20,7 +20,7 @@ public class SpecialAnalysisMonitorVO implements Serializable {
* 监测点信息
*/
@ApiModelProperty(name = "specialAnalysisVOList", value = "监测点信息")
Map<String,List<SpecialAnalysisMonitorVO.SpecialAnalysisVO>> specialAnalysisVOList;
Map<String,List<SpecialAnalysisVO>> specialAnalysisVOList;
/**
* 电压等级分布(监测点)

View File

@@ -1,4 +1,4 @@
package com.njcn.device.pms.controller.majornetwork;
package com.njcn.device.pms.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;

View File

@@ -0,0 +1,21 @@
package com.njcn.device.pms.service.majornetwork;
import com.njcn.event.pojo.po.EventDetail;
import java.util.List;
/**
* @author qijian
* @version 1.0.0
* @date 2022年12月14日 09:39
*/
public interface EventDetailPmsService {
/**
* 根据监测点id和时区时间time获取暂降事件
*
* @param id 监测点id
* @return 暂降事件详情
*/
EventDetail getEventDetailByTime(String id, String time);
}

View File

@@ -0,0 +1,21 @@
package com.njcn.device.pms.service.majornetwork;
import com.njcn.common.pojo.dto.wave.WaveDataDTO;
/**
* TransientPmsService
*
* @author qijian
* @version 1.0.0
* @createTime 2022/12/14 - 15:09
*/
public interface TransientPmsService {
/**
* 功能描述: 暂态事件波形分析
* @param timeId
* @param lineId
* @param lineType
* @return
*/
WaveDataDTO getTransientAnalyseWavePms(String timeId, String lineId, Integer lineType);
}

View File

@@ -0,0 +1,48 @@
package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.date.DateUtil;
import com.njcn.device.pms.service.majornetwork.EventDetailPmsService;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/**
* @author qijian
* @version 1.0.0
* @date 2022年12月14日 09:39
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class EventDetailPmsServiceImpl implements EventDetailPmsService {
private final InfluxDbUtils influxDbUtils;
@Override
public EventDetail getEventDetailByTime(String id, String time) {
EventDetail eventDetail = new EventDetail();
//组装sql语句
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("time = '").append(time).append("' and ").append("line_id ='").append(id).append("' limit 1 tz('Asia/Shanghai')");
String sql = "select * from pqs_eventdetail where " + stringBuilder;
//获取暂降事件
QueryResult result = influxDbUtils.query(sql);
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
if (!Objects.isNull(result)) {
List<EventDetail> detailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
if (!CollectionUtils.isEmpty(detailList)) {
eventDetail = detailList.get(0);
}
}
return eventDetail;
}
}

View File

@@ -0,0 +1,144 @@
package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.enums.common.ServerEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.PubUtils;
import com.njcn.common.utils.wave.AnalyWave;
import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.mapper.majornetwork.DistributionMonitorMapper;
import com.njcn.device.pms.mapper.majornetwork.MonitorMapper;
import com.njcn.device.pms.mapper.majornetwork.TerminalMapper;
import com.njcn.device.pms.pojo.po.DistributionMonitor;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsTerminal;
import com.njcn.device.pms.service.majornetwork.EventDetailPmsService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.TransientPmsService;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.pojo.param.TransientParam;
import com.njcn.event.pojo.param.WaveFileParam;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.pojo.po.EventDetailNew;
import com.njcn.event.pojo.vo.TransientVO;
import com.njcn.influxdb.mapper.InfluxDBResultMapperCn;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDBCommUtils;
import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.AllArgsConstructor;
import org.influxdb.dto.QueryResult;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* @author: chenchao
* @date: 2022/03/29 14:37
* @Description: <描述>
*/
@Service
@AllArgsConstructor
public class TransientPmsServiceImpl implements TransientPmsService {
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final DicDataFeignClient dicDataFeignClient;
private final EventDetailPmsService eventDetailPmsService;
private final GeneralInfo generalInfo;
private final DistributionMonitorMapper distributionMonitorMapper;
private final MonitorMapper monitorMapper;
private final TerminalMapper terminalMapper;
@Override
public WaveDataDTO getTransientAnalyseWavePms(String timeId, String lineId,Integer lineType) {
//初始化
WaveDataDTO waveDataDTO;
PmsTerminal pmsTerminal;
DictData dictData;
String ip = null;
String ptTypeName = null;
Float pt1 = null;
Float pt2 = null;
Float ct1 = null;
Float ct2 = null;
//根据监测点id获取信息1主网 2配网
if (lineType == 1){
Monitor monitor = monitorMapper.selectById(lineId);
//获取ip
pmsTerminal = terminalMapper.selectById(monitor.getTerminalId());
ip = pmsTerminal.getIp();
//获取接线方式
dictData = dicDataFeignClient.getDicDataById(monitor.getTerminalWiringMethod()).getData();
ptTypeName = dictData.getName();
//获取pt、ct
pt1 = monitor.getPt1();
pt2 = monitor.getPt1();
ct1 = monitor.getCt1();
ct2 = monitor.getCt2();
}else{
DistributionMonitor distributionMonitor = distributionMonitorMapper.selectById(lineId);
//获取ip
pmsTerminal = terminalMapper.selectById(distributionMonitor.getTerminalId());
ip = pmsTerminal.getIp();
//获取接线方式
dictData = dicDataFeignClient.getDicDataById(distributionMonitor.getTerminalWiringMethod()).getData();
ptTypeName = dictData.getName();
//获取pt、ct
pt1 = distributionMonitor.getPt1();
pt2 = distributionMonitor.getPt1();
ct1 = distributionMonitor.getCt1();
ct2 = distributionMonitor.getCt2();
}
EventDetail eventDetailByTime = eventDetailPmsService.getEventDetailByTime(lineId, timeId);
String waveName = eventDetailByTime.getWaveName();
AnalyWave analyWave = new AnalyWave();
WaveDataDTO comtrade = analyWave.getComtrade(generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + ".CFG", 1);
if (Objects.isNull(comtrade.getComtradeCfgDTO())) {
throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
}
waveDataDTO = analyWave.getValidData(comtrade);
waveDataDTO.setPtType(PubUtils.ptTypeName(ptTypeName));
waveDataDTO.setPt((double) (pt1 / pt2));
waveDataDTO.setCt((double) (ct1 / ct2));
return waveDataDTO;
}
}

View File

@@ -20,13 +20,17 @@ import java.util.List;
*/
public interface DeviceMapper extends BaseMapper<Device> {
/**
* 通过设备id集查询装置信息
* 获取变电站下面装置
* @param subId 变电站id
* @param ip 装置ip
* @param port 装置端口号
* @author cdf
* @date 2022/5/11
* @date 2022/12/26
*/
//TODO
List<Device> getDeviceList(@Param("list") List<String> list);
List<Device> getDeviceBySubId(@Param("subId") String subId,@Param("ip") String ip,@Param("port") Integer port);
/**
* 获取监测点台账信息

View File

@@ -3,7 +3,13 @@
<mapper namespace="com.njcn.device.pq.mapper.DeviceMapper">
<select id="getDeviceList">
<select id="getDeviceBySubId" resultType="Device">
select * from pq_line a
inner join pq_device b on a.id=b.id
where a.pid = #{subId}
and a.state = 1
and b.ip = #{ip}
and b.port = #{port}
</select>

View File

@@ -1546,7 +1546,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
if (Objects.isNull(temp)) {
temp = assembleLine(deviceName, LineBaseEnum.DEVICE_LEVEL.getCode(), pids.get(LineBaseEnum.SUB_LEVEL.getCode()), pids);
this.baseMapper.insert(temp);
List<Device> existIp = lineMapper.getDeviceBySubId(pids.get(LineBaseEnum.SUB_LEVEL.getCode()), Stream.of(oracleTerminalExcel.getIp()).collect(Collectors.toList()));
List<Device> existIp = deviceMapper.getDeviceBySubId(pids.get(LineBaseEnum.SUB_LEVEL.getCode()),oracleTerminalExcel.getIp(),oracleTerminalExcel.getPort());
if (CollectionUtil.isNotEmpty(existIp)) {
Device device = existIp.get(0);
if (!device.getId().equalsIgnoreCase(temp.getId())) {

View File

@@ -53,4 +53,4 @@
</dependency>
</dependencies>
</project>
</project>

View File

@@ -28,7 +28,7 @@ public class EventFeatureAmplitudeCurveVO implements Serializable {
private Integer totalNumberOfEvents;
@ApiModelProperty(name = "eventFeatureAmplitudeCurveDataList", value = "图表数据")
private List<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> eventFeatureAmplitudeCurveDataList;
private List<EventFeatureAmplitudeCurveDataList> eventFeatureAmplitudeCurveDataList;
/**
* 构建默认对象
@@ -46,7 +46,7 @@ public class EventFeatureAmplitudeCurveVO implements Serializable {
* @param dataList 图表数据
* @return 默认对象
*/
public static EventFeatureAmplitudeCurveVO buildVO(int numberEvents, List<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> dataList) {
public static EventFeatureAmplitudeCurveVO buildVO(int numberEvents, List<EventFeatureAmplitudeCurveDataList> dataList) {
return EventFeatureAmplitudeCurveVO.builder().totalNumberOfEvents(numberEvents).eventFeatureAmplitudeCurveDataList(dataList).build();
}
@@ -67,8 +67,8 @@ public class EventFeatureAmplitudeCurveVO implements Serializable {
@ApiModelProperty(name = "startTime", value = "开始时间")
private LocalDateTime startTime;
public static Comparator<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> sortAscTime() {
return Comparator.comparing(EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList::getStartTime);
public static Comparator<EventFeatureAmplitudeCurveDataList> sortAscTime() {
return Comparator.comparing(EventFeatureAmplitudeCurveDataList::getStartTime);
}
}
}

View File

@@ -79,12 +79,12 @@ public class EventDetailServiceImpl implements EventDetailService {
stringBuilder.append(") and (");
for (int i = 0; i < waveType.size(); i++) {
if (waveType.size() - i != 1) {
stringBuilder.append("wave_type =").append(waveType.get(i)).append(" or ");
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or ");
} else {
stringBuilder.append("wave_type =").append(waveType.get(i)).append(" ");
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' ");
}
}
stringBuilder.append(") order by time desc ");
stringBuilder.append(") order by time desc");
stringBuilder.append(" tz('Asia/Shanghai')");
//sql语句
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
@@ -114,12 +114,12 @@ public class EventDetailServiceImpl implements EventDetailService {
stringBuilder.append(") and (");
for (int i = 0; i < waveType.size(); i++) {
if (waveType.size() - i != 1) {
stringBuilder.append("wave_type =").append(waveType.get(i)).append(" or ");
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or ");
} else {
stringBuilder.append("wave_type =").append(waveType.get(i)).append(" ");
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' ");
}
}
stringBuilder.append(") order by time desc ");
stringBuilder.append(") order by time desc");
int i = (pageNum - 1)*pageSize;
stringBuilder.append("LIMIT ").append(pageSize).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
//sql语句

View File

@@ -1511,7 +1511,7 @@ public class ReportServiceImpl implements ReportService {
*/
public void setPosition(Bar bar,String position,String color){
//设置标签
com.github.abel533.echarts.Label label = new Label();
Label label = new Label();
label.show(true);
label.position(position);
TextStyle textStyle = new TextStyle();

View File

@@ -26,7 +26,7 @@ import java.util.List;
@Component
public class HarmonicComAssesUtil {
// 日志记录
private static final Logger logger = LoggerFactory.getLogger(com.njcn.harmonic.utils.HarmonicComAssesUtil.class);
private static final Logger logger = LoggerFactory.getLogger(HarmonicComAssesUtil.class);
private static final int ST_QT_NUM = 6;//系统评价指标数目
private static final int GRADE_NUM = 5;//指标分级数目
private static final int METHOD_NUM = 5;//评估方法数

View File

@@ -65,6 +65,38 @@
<artifactId>common-minio</artifactId>
<version>${project.version}</version>
</dependency>
<!--调用minio服务器-->
<dependency>
<groupId>me.tongfei</groupId>
<artifactId>progressbar</artifactId>
<version>0.5.3</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.8.1</version>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
<exclusions>
<exclusion>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--避免idea后端配置类报红-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
@@ -126,4 +158,4 @@
</plugins>
</build>
</project>
</project>

View File

@@ -1,4 +1,4 @@
//package com.njcn.harmonic.controller;
package com.njcn.harmonic.controller;//package com.njcn.harmonic.controller;
//
//import com.njcn.common.pojo.annotation.OperateInfo;
//import com.njcn.common.pojo.enums.common.LogEnum;

View File

@@ -1,4 +1,4 @@
//package com.njcn.harmonic.controller;
package com.njcn.harmonic.controller;//package com.njcn.harmonic.controller;
//
//import com.njcn.common.pojo.annotation.OperateInfo;
//import com.njcn.common.pojo.enums.common.LogEnum;