Merge branch 'master' of http://192.168.1.13:3000/root/pqs
# Conflicts: # pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PmsSimpleDTO.java # pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/SubstationExpendController.java # pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/MonitorMapper.xml # pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/impl/SubstationExpendServiceImpl.java # pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/CommunicateParam.java # pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceInfoParam.java # pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/CommunicateVO.java # pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml # pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/ISubstationExpendService.java # pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/SubstationExpendServiceImpl.java # pqs-event/event-api/src/main/java/com/njcn/event/pojo/param/WaveTypeParam.java
This commit is contained in:
@@ -38,7 +38,7 @@ public class SubstationExpendController extends BaseController {
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getPVCommunicationStatus")
|
||||
@ApiOperation("冀北主网监测点通讯状态统计")
|
||||
@ApiOperation("冀北主网监测点pq:通讯状态统计")
|
||||
@ApiImplicitParam(name = "param", value = "冀北主网监测点台账统计参数", required = true)
|
||||
public HttpResult<List<CommunicateVO.PVCommunicateVO>> getPVCommunicationStatus(@RequestBody DeviceInfoParam.CompareLimitParam param) {
|
||||
String methodDescribe = getMethodDescribe("getPVCommunicationStatus");
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
|
||||
<select id="getDeviceByIdOnOrOff" resultType="com.njcn.device.pq.pojo.vo.TerminalBaseVO">
|
||||
SELECT
|
||||
t1.name devName,t2.ip,t2.dev_type,t2.update_time,sub.name subName,gd.name gdName
|
||||
t1.id devId,t1.name devName,t2.ip,t2.dev_type,t2.update_time,sub.name subName,gd.name gdName
|
||||
FROM
|
||||
pq_line t1,
|
||||
pq_device t2,
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.njcn.device.pq.service;
|
||||
|
||||
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.vo.CommunicateVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-05-08
|
||||
*/
|
||||
public interface ISubstationExpendService {
|
||||
|
||||
/**
|
||||
* 冀北主网监测点通讯状态统计
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
List<CommunicateVO.PVCommunicateVO> getCommunicationStatus(DeviceInfoParam.CompareLimitParam param);
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.njcn.device.pq.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.njcn.device.pq.pojo.bo.DeviceType;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.po.Communicate;
|
||||
import com.njcn.device.pq.pojo.vo.CommunicateVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
|
||||
import com.njcn.device.pq.service.ISubstationExpendService;
|
||||
import com.njcn.device.pq.service.TerminalBaseService;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
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 java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author wr
|
||||
* @since 2023-05-08
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SubstationExpendServiceImpl implements ISubstationExpendService {
|
||||
|
||||
private final GeneralDeviceService generalDeviceService;
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
private final TerminalBaseService terminalBaseService;
|
||||
|
||||
@Override
|
||||
public List<CommunicateVO.PVCommunicateVO> getCommunicationStatus(DeviceInfoParam.CompareLimitParam param) {
|
||||
List<GeneralDeviceDTO> generalDeviceDTOS = generalDeviceService.getDeviceInfo(param, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
//获取所有终端id
|
||||
List<String> terminalIds = generalDeviceDTOS.stream().flatMap(dto -> dto.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||
List<CommunicateVO.PVCommunicateVO> info =new ArrayList<>();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))).append("' ");
|
||||
if(CollUtil.isNotEmpty(terminalIds)){
|
||||
stringBuilder.append(" and ").append("(");
|
||||
for (int i = 0; i < terminalIds.size(); i++) {
|
||||
if (terminalIds.size() - i != 1) {
|
||||
stringBuilder.append("dev_id = '").append(terminalIds.get(i)).append("' or ");
|
||||
} else {
|
||||
stringBuilder.append("dev_id = '").append(terminalIds.get(i)).append("')");
|
||||
}
|
||||
}
|
||||
}
|
||||
stringBuilder.append(" limit "+param.getLimit());
|
||||
String sql = "select * from " + InfluxDBPublicParam.PQS_COMMUNICATE + " where " + stringBuilder + InfluxDBPublicParam.TIME_ZONE;
|
||||
// 获取暂降事件
|
||||
QueryResult result = influxDbUtils.query(sql);
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<Communicate> communicates = influxDBResultMapper.toPOJO(result, Communicate.class);
|
||||
if(CollUtil.isEmpty(communicates)){
|
||||
return info;
|
||||
}
|
||||
List<String> ids = communicates.stream().map(Communicate::getDevId).distinct().collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(ids)){
|
||||
List<TerminalBaseVO> deviceByIds = terminalBaseService.getDeviceByIdOnOrOff(ids, new DeviceType(), 0);
|
||||
Map<String, String> terminalNameIp = deviceByIds.stream().collect(Collectors.toMap(TerminalBaseVO::getDevId, x -> x.getDevName() + "_" + x.getIp()));
|
||||
CommunicateVO.PVCommunicateVO communicate;
|
||||
for (Communicate cate : communicates) {
|
||||
communicate=new CommunicateVO.PVCommunicateVO();
|
||||
BeanUtil.copyProperties(cate, communicate);
|
||||
communicate.setTime(cate.getUpdateTime());
|
||||
if(terminalNameIp.containsKey(cate.getDevId())){
|
||||
communicate.setDevIp(terminalNameIp.get(cate.getDevId()));
|
||||
}
|
||||
info.add(communicate);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user