代码修改
This commit is contained in:
@@ -61,21 +61,9 @@ public class DataTest {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
InfluxDbUtils influxDBUtil = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "PQSBASE", "");
|
||||
String sql = "select * from pqs_eventdetail limit 10";
|
||||
//获取暂降事件
|
||||
QueryResult result = influxDBUtil.query(sql);
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
||||
String bodyStr = PubUtils.obj2json(eventDetailList.get(0));
|
||||
//对结果进行转换
|
||||
EventDetail o = PubUtils.json2obj(bodyStr, EventDetail.class);
|
||||
Instant timeId = o.getTimeId();
|
||||
System.out.println(timeId);
|
||||
InfluxDbUtils influxDBUtil = new InfluxDbUtils("admin", "123456", "http://192.168.1.18:8086", "pqsbase_sjzx", "");
|
||||
|
||||
|
||||
System.out.println(1);
|
||||
//select(influxDBUtil);
|
||||
insert(influxDBUtil);
|
||||
}
|
||||
|
||||
public static void deleteDB(InfluxDbUtils influxDBUtil) {
|
||||
@@ -85,13 +73,14 @@ public class DataTest {
|
||||
//单条数据插入
|
||||
public static void insert(InfluxDbUtils influxDBUtil) {
|
||||
Map<String, String> tags = new HashMap<>();
|
||||
long time = Long.parseLong("1654239603000");
|
||||
tags.put("dev_id", "6d53a38cc630675dbe7a179c44d9dc3c");
|
||||
long time = Long.parseLong("1675958400000");
|
||||
tags.put("dev_id", "57d121d45a26f3cc1d7b6ba541f895c0");
|
||||
Map<String, Object> fields = new HashMap<>();
|
||||
// fields.put("due",1440);
|
||||
// fields.put("real",1200);
|
||||
fields.put("onlinemin", 1123);
|
||||
fields.put("offlinemin", 377);
|
||||
fields.put("online_min", 0);
|
||||
fields.put("offline_min", 1440);
|
||||
fields.put("online_rate", 0.0000);
|
||||
influxDBUtil.insert("pqs_onlinerate", tags, fields, time, TimeUnit.MILLISECONDS);
|
||||
// long time = Long.parseLong("1655135328135");
|
||||
// Map<String, String> tags = new HashMap<>();
|
||||
|
||||
@@ -18,15 +18,13 @@ import lombok.NoArgsConstructor;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TerminalOnlineRateDataParam extends DeviceInfoParam.BusinessParam{
|
||||
|
||||
// 监测点合格率
|
||||
// @ApiModelProperty(name = "devicePassRate",value = "终端在线率合格率")
|
||||
// private Integer devicePassRate;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 字段表监测点等级
|
||||
*/
|
||||
@ApiModelProperty(name = "algoDescribe",value = "字段表监测点等级,0:极重要 1:重要 2:普通 3:不重要")
|
||||
private Integer algoDescribe;
|
||||
@ApiModelProperty(name = "lineGrade",value = "字段表监测点等级,0:极重要 1:重要 2:普通 3:不重要")
|
||||
private String lineGrade;
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ public class TerminalOnlineRateData implements Serializable {
|
||||
/**
|
||||
* 终端id
|
||||
*/
|
||||
@Column(name = "dev_id")
|
||||
@Column(name = "dev_id",tag = true)
|
||||
private String devId;
|
||||
|
||||
/**
|
||||
* 终端在线率
|
||||
*/
|
||||
@Column(name = "online_rate")
|
||||
private Double onlineRate;
|
||||
private Double onlineRate = 3.14159;
|
||||
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class DeviceVO implements Serializable {
|
||||
/**
|
||||
* 设备sim卡号
|
||||
*/
|
||||
@ApiModelProperty(name = "contract",value = "装置sim卡")
|
||||
@ApiModelProperty(name = "sim",value = "装置sim卡")
|
||||
private String sim;
|
||||
|
||||
@ApiModelProperty(name = "sort",value = "排序",required = true)
|
||||
|
||||
@@ -49,4 +49,11 @@ public interface DeviceMapper extends BaseMapper<Device> {
|
||||
* @return 结果
|
||||
*/
|
||||
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag);
|
||||
|
||||
/**
|
||||
* 获取指定等级的装置
|
||||
* @author cdf
|
||||
* @date 2023/2/10
|
||||
*/
|
||||
List<String> getDevByGrade(@Param("devId")List<String> devIds,@Param("lineGrade") String lineGrade);
|
||||
}
|
||||
|
||||
@@ -24,12 +24,10 @@ public interface TerminalOnlineRateDataMapper extends BaseMapper<TerminalOnlineR
|
||||
|
||||
/**
|
||||
* 通过部分终端等级信息查询终端信息
|
||||
* @param devGrade
|
||||
* @param lineGrade
|
||||
* @return
|
||||
*/
|
||||
List<TerminalOnlineRateDataVO> getDevice(@Param("devGrade")List<TerminalOnlineRateDataVO> devGrade,
|
||||
@Param("searchBeginTime") String searchBeginTime,
|
||||
@Param("searchEndTime") String searchEndTime);
|
||||
List<TerminalOnlineRateDataVO> getDevice(@Param("devIds")List<String> devIds, @Param("lineGrade")String lineGrade);
|
||||
/**
|
||||
* 根据供电公司索引获取出省会的信息
|
||||
* @param gdIndexes 供电公司索引
|
||||
|
||||
@@ -36,8 +36,7 @@
|
||||
pdevice.Com_Flag AS comFlag,
|
||||
sddManufacturer.`Name` AS manufacturer,
|
||||
pdevice.Update_Time AS updateTime,
|
||||
sddLineGrade.`Name` AS lineGrade,
|
||||
sddLineGrade.Algo_Describe as algoDescribe
|
||||
max(sddLineGrade.Algo_Describe) as algoDescribe
|
||||
FROM
|
||||
pq_line AS device
|
||||
LEFT JOIN pq_line AS voltage ON device.id = voltage.pid
|
||||
@@ -49,19 +48,23 @@
|
||||
WHERE
|
||||
device.`Level` = 4
|
||||
AND device.id in
|
||||
<foreach collection="devGrade" item="item" open="(" close=")" separator=",">
|
||||
#{item.id}
|
||||
<foreach collection="devIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND sddLineGrade.Algo_Describe in
|
||||
<foreach collection="devGrade" item="item" open="(" close=")" separator=",">
|
||||
#{item.algoDescribe}
|
||||
</foreach>
|
||||
<if test="searchBeginTime != null and searchBeginTime != ''"><!-- 开始创建时间 -->
|
||||
and date_format(device.update_Time,'%y%m%d') >= date_format(#{searchBeginTime},'%y%m%d')
|
||||
</if>
|
||||
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
|
||||
and date_format(device.update_Time,'%y%m%d') <= date_format(#{searchEndTime},'%y%m%d')
|
||||
<if test="lineGrade!='' and lineGrade!=null">
|
||||
AND pld.line_grade = #{lineGrade}
|
||||
</if>
|
||||
group by
|
||||
device.id,
|
||||
device.pid,
|
||||
device.`Name`,
|
||||
device.`Level`,
|
||||
device.Sort,
|
||||
pdevice.ip,
|
||||
pdevice.Com_Flag,
|
||||
sddManufacturer.`Name`,
|
||||
pdevice.Update_Time
|
||||
|
||||
</select>
|
||||
|
||||
<!--根据供电公司索引获取出省会的信息-->
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.device.pq.service;
|
||||
|
||||
import com.njcn.device.pq.pojo.vo.LineDistributionVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
* 运维中心
|
||||
* @author cdf
|
||||
* @date 2023/2/9
|
||||
*/
|
||||
public interface OperationService {
|
||||
|
||||
|
||||
/**
|
||||
* 获取监测点分布
|
||||
* @author cdf
|
||||
* @date 2023/2/9
|
||||
*/
|
||||
List<LineDistributionVO> getLineDistribution(String lineGrade);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.njcn.device.pq.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.common.utils.LogUtil;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.vo.LineDistributionVO;
|
||||
import com.njcn.device.pq.service.OperationService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.dto.DeptDTO;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import com.njcn.web.utils.WebUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/2/9
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class OperationServiceImpl implements OperationService {
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
|
||||
/**
|
||||
* 获取监测点分布
|
||||
* @author cdf
|
||||
* @date 2023/2/9
|
||||
*/
|
||||
@Override
|
||||
public List<LineDistributionVO> getLineDistribution(String lineGrade) {
|
||||
String deptIndex = RequestUtil.getDeptIndex();
|
||||
//初始化部门筛选条件
|
||||
List<Integer> deptType = WebUtil.filterDeptType();
|
||||
//获取包括当前部门的后代所有部门信息
|
||||
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(deptIndex, deptType).getData();
|
||||
List<DeptDTO> directDeptInfos = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getPid().equals(deptIndex)).sorted(Comparator.comparing(DeptDTO::getSort))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(directDeptInfos)) {
|
||||
//没有直接子部门,获取当前部门所有信息
|
||||
List<DeptDTO> dept = deptInfos.stream()
|
||||
.filter(deptDTO -> deptDTO.getId().equals(deptIndex))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
} else {
|
||||
for (DeptDTO deptDTO : directDeptInfos) {
|
||||
//筛选上级部门pids包含该id的所有部门
|
||||
List<DeptDTO> descendantDeptDTO = deptInfos.stream()
|
||||
.filter(d -> d.getPids().contains(deptDTO.getId()))
|
||||
.collect(Collectors.toList());
|
||||
//形成需要查询监测点的部门索引
|
||||
List<String> indexes = descendantDeptDTO.stream()
|
||||
.map(DeptDTO::getId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
indexes.add(deptDTO.getId());
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -59,8 +59,6 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
@Override
|
||||
public List<TerminalOnlineRateDataVO> getOnlineRateData(TerminalOnlineRateDataParam terminalOnlineRateDataParam) {
|
||||
|
||||
// TODO 部门id StatisticsEnum
|
||||
// terminalOnlineRateDataParam.setDeptIndex(RequestUtil.getDeptIndex());
|
||||
|
||||
// 获取所有数据
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(terminalOnlineRateDataParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
@@ -89,49 +87,41 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
// 创建实体类
|
||||
TerminalOnlineRateDataVO terminalOnlineRateDataVO = new TerminalOnlineRateDataVO();
|
||||
|
||||
// 通过供电公司索引查询省会
|
||||
List<TerminalOnlineRateDataVO> proList = terminalOnlineRateDataMapper.getProvinceList(generalDeviceDTO.getGdIndexes(),terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
// 通过供电公司索引查询供电公司信息
|
||||
List<TerminalOnlineRateDataVO> gdList = terminalOnlineRateDataMapper.getGdList(generalDeviceDTO.getGdIndexes(),terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
// 通过供电站索引查询供电站信息
|
||||
List<TerminalOnlineRateDataVO> subList = terminalOnlineRateDataMapper.getSubList(generalDeviceDTO.getSubIndexes(),terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
// 通过终端的索引查询索引的等级和id
|
||||
List<TerminalOnlineRateDataVO> deviceLevelAndId = terminalOnlineRateDataMapper.getDeviceLevelData(generalDeviceDTO.getDeviceIndexes());
|
||||
|
||||
// 通过部分终端等级信息查询终端信息
|
||||
List<TerminalOnlineRateDataVO> deviceList = terminalOnlineRateDataMapper.getDevice(deviceLevelAndId,terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
List<TerminalOnlineRateDataVO> deviceList = terminalOnlineRateDataMapper.getDevice(generalDeviceDTO.getDeviceIndexes(),terminalOnlineRateDataParam.getLineGrade());
|
||||
|
||||
|
||||
// 判断前端出入的终端等级
|
||||
if (terminalOnlineRateDataParam.getAlgoDescribe()!=null) {
|
||||
switch (terminalOnlineRateDataParam.getAlgoDescribe()) {
|
||||
case 0:
|
||||
deviceList = deviceList.stream().filter(dev -> dev.getAlgoDescribe() != null && dev.getAlgoDescribe() == 0).collect(Collectors.toList());
|
||||
break;
|
||||
case 1:
|
||||
deviceList = deviceList.stream().filter(dev -> dev.getAlgoDescribe() != null && dev.getAlgoDescribe() == 1).collect(Collectors.toList());
|
||||
break;
|
||||
case 2:
|
||||
deviceList = deviceList.stream().filter(dev -> dev.getAlgoDescribe() != null && dev.getAlgoDescribe() == 2).collect(Collectors.toList());
|
||||
break;
|
||||
case 3:
|
||||
deviceList = deviceList.stream().filter(dev -> dev.getAlgoDescribe() != null && dev.getAlgoDescribe() == 3).collect(Collectors.toList());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if(CollectionUtil.isEmpty(deviceList)){
|
||||
continue;
|
||||
}
|
||||
|
||||
List<String> devIds = deviceList.stream().map(TerminalOnlineRateDataVO::getId).collect(Collectors.toList());
|
||||
|
||||
// 通过工具类得到查询influxdb的条件(相当于mysql中的in)
|
||||
StringBuilder devForInfluxdb = InfluxDBCommUtils.assToInfluxParam(generalDeviceDTO.getDeviceIndexes());
|
||||
// 通过监测点id集合查询influxdb监测点数据完整性
|
||||
StringBuilder devForInfluxdb = InfluxDBCommUtils.assToInfluxParamDev(devIds);
|
||||
// 通过装置id
|
||||
List<TerminalOnlineRateData> terminalOnlineRateData = getPercentageOfOnlineRate(terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime(), devForInfluxdb);
|
||||
|
||||
// 处理终端在线率
|
||||
DataStatisticsUtil.getTerminalOnlineRateData(terminalOnlineRateData,deviceList);
|
||||
|
||||
|
||||
List<String> subIds = deviceList.stream().map(TerminalOnlineRateDataVO::getPid).collect(Collectors.toList());
|
||||
|
||||
|
||||
// 通过供电站索引查询供电站信息
|
||||
List<TerminalOnlineRateDataVO> subList = terminalOnlineRateDataMapper.getSubList(subIds,terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
List<String> gdIds = subList.stream().map(TerminalOnlineRateDataVO::getPid).collect(Collectors.toList());
|
||||
// 通过供电公司索引查询供电公司信息
|
||||
List<TerminalOnlineRateDataVO> gdList = terminalOnlineRateDataMapper.getGdList(gdIds,terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
List<String> proIds = gdList.stream().map(TerminalOnlineRateDataVO::getPid).collect(Collectors.toList());
|
||||
|
||||
// 通过供电公司索引查询省会
|
||||
List<TerminalOnlineRateDataVO> proList = terminalOnlineRateDataMapper.getProvinceList(proIds,terminalOnlineRateDataParam.getSearchBeginTime(), terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
|
||||
//处理变电站
|
||||
dealChildrenData(subList, deviceList, false);
|
||||
//处理供电公司
|
||||
@@ -219,12 +209,10 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
.append(InfluxDBPublicParam.END_TIME)
|
||||
.append("'");
|
||||
//sql语句
|
||||
String sql = "SELECT time,dev_id,online_rate FROM pqs_onlinerate WHERE " + queryCriteria + " group by dev_id " + InfluxDBPublicParam.TIME_ZONE;
|
||||
String sql = "SELECT mean(online_rate) as online_rate FROM pqs_onlinerate WHERE " + queryCriteria + " group by dev_id " + InfluxDBPublicParam.TIME_ZONE;
|
||||
// 结果集
|
||||
QueryResult results = influxDbUtils.query(sql);
|
||||
|
||||
System.out.println(results);
|
||||
|
||||
// 结果集映射到对象中
|
||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
||||
// 返回结果
|
||||
|
||||
@@ -121,43 +121,19 @@ public class DataStatisticsUtil {
|
||||
|
||||
if (CollectionUtil.isNotEmpty(terminalOnlineRateData)) {
|
||||
// 根据监测点id分类
|
||||
Map<String, List<TerminalOnlineRateData>> groupByDevId = terminalOnlineRateData.stream().collect(Collectors.groupingBy(TerminalOnlineRateData::getDevId));
|
||||
// 新建集合处理数据
|
||||
List<TerminalOnlineRateData> terminalOnlineRateDataArrayList = new ArrayList<>();
|
||||
// 获取map中的key(监测点id集合)
|
||||
Set<String> devIds = groupByDevId.keySet();
|
||||
|
||||
for (String devId : devIds) {
|
||||
// 创建对象处理数据
|
||||
TerminalOnlineRateData onlineRateData = new TerminalOnlineRateData();
|
||||
|
||||
double onlineRate = 0.0;
|
||||
|
||||
// 取出值
|
||||
List<TerminalOnlineRateData> devOnlineRateData = groupByDevId.get(devId);
|
||||
int size = devOnlineRateData.size();
|
||||
for (TerminalOnlineRateData devOnlineRate : devOnlineRateData) {
|
||||
onlineRate += devOnlineRate.getOnlineRate();
|
||||
}
|
||||
// 求出监测点数据完整性
|
||||
double deviceOnlineRateDouble = onlineRate / size;
|
||||
String deviceOnlineRateString = String.format("%.2f", deviceOnlineRateDouble);
|
||||
onlineRateData.setOnlineRate(Double.parseDouble(deviceOnlineRateString));
|
||||
onlineRateData.setDevId(devId);
|
||||
terminalOnlineRateDataArrayList.add(onlineRateData);
|
||||
}
|
||||
|
||||
deviceList = deviceList.stream().peek(onlineRateDataVO -> {
|
||||
for (TerminalOnlineRateData onlineRateData : terminalOnlineRateDataArrayList) {
|
||||
boolean flag = false;
|
||||
for (TerminalOnlineRateData onlineRateData : terminalOnlineRateData) {
|
||||
if (onlineRateDataVO.getId().equals(onlineRateData.getDevId())) {
|
||||
if (onlineRateData.getOnlineRate() != null) {
|
||||
onlineRateDataVO.setOnlineRate(onlineRateData.getOnlineRate());
|
||||
} else {
|
||||
// 为空则给对应的监测点的监测点合设置为魔数
|
||||
onlineRateDataVO.setOnlineRate(3.14159);
|
||||
}
|
||||
flag = true;
|
||||
onlineRateDataVO.setOnlineRate(onlineRateData.getOnlineRate());
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!flag){
|
||||
onlineRateDataVO.setOnlineRate(3.14159);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
} else {
|
||||
deviceList = deviceList.stream().peek(onlineRateDataVO -> onlineRateDataVO.setOnlineRate(3.14159)).collect(Collectors.toList());
|
||||
|
||||
@@ -86,7 +86,7 @@ public class ReportController extends BaseController {
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getContinueTime")
|
||||
@ApiOperation("详细时间列表")
|
||||
@ApiOperation("详细事件列表")
|
||||
@ApiImplicitParam(name = "businessParam", value = "详细时间列表参数", required = true)
|
||||
public HttpResult<Page<DetailVO>> getContinueTime(@RequestBody @Validated WaveTypeParam businessParam){
|
||||
String methodDescribe = getMethodDescribe("getContinueTime");
|
||||
|
||||
@@ -1503,8 +1503,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
}
|
||||
}
|
||||
Page<WaveTypeVO> page = new Page<>();
|
||||
long total = new BigDecimal(resultTotal.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).longValue();
|
||||
page.setTotal(total);
|
||||
page.setTotal(eventDetailList.size());
|
||||
page.setRecords(eventDetailList);
|
||||
page.setCurrent(eventBaseParam.getPageNum());
|
||||
page.setSize(eventBaseParam.getPageSize());
|
||||
@@ -1601,9 +1600,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
//抛出异常,当前暂态原因为空
|
||||
throw new BusinessException(EventResponseEnum.EVENT_REASON_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
for (WaveTypeVO eventDetail : eventDetailList) {
|
||||
if (eventDetail.getEventType() != null) {
|
||||
for (DictData dictData : eventTypeList) {
|
||||
//将字典数据id与VO中属性eventType对应的字符串进行比较
|
||||
@@ -1617,8 +1614,10 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||
throw new BusinessException(EventResponseEnum.EVENT_TYPE_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Page<WaveTypeVO> page = new Page<>();
|
||||
long total = new BigDecimal(resultTotal.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).longValue();
|
||||
long total = eventDetailList.size();
|
||||
page.setTotal(total);
|
||||
page.setRecords(eventDetailList);
|
||||
page.setCurrent(eventBaseParam.getPageNum());
|
||||
|
||||
@@ -84,18 +84,15 @@ public class EventDetailServiceImpl implements EventDetailService {
|
||||
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' ");
|
||||
}
|
||||
}
|
||||
stringBuilder.append(") order by time desc");
|
||||
stringBuilder.append(" tz('Asia/Shanghai')");
|
||||
stringBuilder.append(") order by time desc tz('Asia/Shanghai");
|
||||
//sql语句
|
||||
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
|
||||
System.out.println("sql------------->>>"+sql);
|
||||
|
||||
//结果集
|
||||
QueryResult result = influxDbUtils.query(sql);
|
||||
//结果集映射到对象中
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
||||
|
||||
|
||||
return eventDetailList;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -45,6 +45,7 @@ import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -85,25 +86,18 @@ public class TransientServiceImpl implements TransientService {
|
||||
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData();
|
||||
if (!CollectionUtils.isEmpty(deviceList)) {
|
||||
//获取按终端分类的监测点索引集合
|
||||
List<List<String>> LineIndexes = deviceList.stream().map(GeneralDeviceDTO::getLineIndexes).collect(Collectors.toList());
|
||||
List<String> lineList = new ArrayList<>();
|
||||
for (int i = 0; i < LineIndexes.size(); i++) {
|
||||
List<String> lineIds = LineIndexes.get(i);
|
||||
for (int a = 0; a < lineIds.size(); a++) {
|
||||
lineList.add(lineIds.get(a));
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(lineList)) {
|
||||
List<String> LineIndexes = deviceList.stream().flatMap(list->list.getLineIndexes().stream()).collect(Collectors.toList());
|
||||
|
||||
if (!CollectionUtils.isEmpty(LineIndexes)) {
|
||||
//influxDB查询待分页数据总量
|
||||
List<EventDetail> data = eventDetailService.getEventDetail(lineList, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(),transientParam.getWaveType());
|
||||
/* List<EventDetail> data = eventDetailService.getEventDetail(LineIndexes, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(),transientParam.getWaveType());
|
||||
page.setTotal(data.size());
|
||||
//分页总页数
|
||||
int pages = (int) Math.ceil(data.size() * 1.0 / transientParam.getPageSize());
|
||||
page.setPages(pages);
|
||||
page.setPages(pages);*/
|
||||
//influxDB分页查询
|
||||
List<EventDetail> eventDetailData = eventDetailService.getEventDetailLimit(lineList, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(), transientParam.getPageSize(), transientParam.getPageNum(),transientParam.getWaveType());
|
||||
// List<List<EventDetail>> partition = Lists.partition(eventDetailData, transientParam.getPageSize());
|
||||
// List<EventDetail> detailList = partition.get(transientParam.getPageNum() - 1);
|
||||
List<EventDetail> eventDetailData = eventDetailService.getEventDetailLimit(LineIndexes, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(), transientParam.getPageSize(), transientParam.getPageNum(),transientParam.getWaveType());
|
||||
|
||||
if (!CollectionUtils.isEmpty(eventDetailData)) {
|
||||
List<String> lineIds = eventDetailData.stream().map(EventDetail::getLineId).collect(Collectors.toList());
|
||||
lineIds = lineIds.stream().distinct().collect(Collectors.toList());
|
||||
@@ -118,9 +112,6 @@ public class TransientServiceImpl implements TransientService {
|
||||
Instant timeId = eventDetail.getTimeId();
|
||||
ZoneId zoneId = ZoneId.systemDefault();
|
||||
LocalDateTime localDateTime = LocalDateTime.ofInstant(timeId, zoneId);
|
||||
// //Instant转换long毫秒值
|
||||
// long milli = localDateTime.atZone(zoneId).toInstant().toEpochMilli();
|
||||
// System.out.println("milli==:" + milli);
|
||||
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
|
||||
String format = dateTimeFormatter.format(localDateTime);
|
||||
|
||||
|
||||
@@ -141,14 +141,15 @@ whitelist:
|
||||
- /*/v2/api-docs
|
||||
- /favicon.ico
|
||||
- /system-boot/theme/getTheme
|
||||
# - /device-boot/**
|
||||
# - /system-boot/**
|
||||
# - /harmonic-boot/**
|
||||
# - /energy-boot/**
|
||||
# - /event-boot/**
|
||||
# - /quality-boot/**
|
||||
# - /harmonic-prepare/**
|
||||
# - /process-boot/**
|
||||
|
||||
- /device-boot/**
|
||||
- /system-boot/**
|
||||
- /harmonic-boot/**
|
||||
- /energy-boot/**
|
||||
- /event-boot/**
|
||||
- /quality-boot/**
|
||||
- /harmonic-prepare/**
|
||||
- /process-boot/**
|
||||
|
||||
|
||||
mqtt:
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
sys_area.lng lng,
|
||||
sys_area.lat lat
|
||||
FROM sys_area sys_area
|
||||
WHERE sys_area.id = #{id}
|
||||
or sys_area.pid = #{id}
|
||||
WHERE (sys_area.id = #{id}
|
||||
or sys_area.pid = #{id})
|
||||
and sys_area.type = #{type}
|
||||
AND sys_area.state = #{state}
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user