代码修改

This commit is contained in:
2023-02-10 16:40:43 +08:00
parent 034738c634
commit fd9edd3225
18 changed files with 568 additions and 519 deletions

View File

@@ -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<>();

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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);
}

View File

@@ -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 供电公司索引

View File

@@ -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') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
and date_format(device.update_Time,'%y%m%d') &lt;= 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>
<!--根据供电公司索引获取出省会的信息-->

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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(CollectionUtil.isEmpty(deviceList)){
continue;
}
List<String> devIds = deviceList.stream().map(TerminalOnlineRateDataVO::getId).collect(Collectors.toList());
// 判断前端出入的终端等级
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;
}
}
// 通过工具类得到查询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();
// 返回结果

View File

@@ -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) {
flag = true;
onlineRateDataVO.setOnlineRate(onlineRateData.getOnlineRate());
} else {
// 为空则给对应的监测点的监测点合设置为魔数
break;
}
}
if(!flag){
onlineRateDataVO.setOnlineRate(3.14159);
}
}
}
}).collect(Collectors.toList());
} else {
deviceList = deviceList.stream().peek(onlineRateDataVO -> onlineRateDataVO.setOnlineRate(3.14159)).collect(Collectors.toList());

View File

@@ -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");

View File

@@ -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());

View File

@@ -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;
}

View File

@@ -23,6 +23,7 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
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.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
@@ -128,7 +129,9 @@ public class ReportServiceImpl implements ReportService {
//结果集映射到对象中
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(queryResult, EventDetail.class);
eventDetailList.stream().forEach(a -> {info.add(a);});
eventDetailList.stream().forEach(a -> {
info.add(a);
});
return info;
}
@@ -148,7 +151,9 @@ public class ReportServiceImpl implements ReportService {
//结果集映射到对象中
InfluxDBResultMapperCn influxDBResultMapper = new InfluxDBResultMapperCn();
List<EventDetailNew> eventDetailList = influxDBResultMapper.toPOJO(queryResult, EventDetailNew.class);
eventDetailList.stream().forEach(a -> {info.add(a);});
eventDetailList.stream().forEach(a -> {
info.add(a);
});
}
}
return info;
@@ -323,6 +328,7 @@ public class ReportServiceImpl implements ReportService {
public List<WaveTypeVO> getSeverity(DeviceInfoParam.BusinessParam businessParam) {
List<WaveTypeVO> result = new ArrayList<>();
List<EventDetailNew> info = getED2(businessParam);
if (CollectionUtil.isNotEmpty(info)) {
List<String> idlist = new ArrayList<>();
//根据严重度进行排序并取前二十个数据
info.sort(((o1, o2) -> o1.getSeverity().compareTo(o2.getSeverity())));
@@ -346,6 +352,7 @@ public class ReportServiceImpl implements ReportService {
}
}
}
}
return result;
}
@@ -411,24 +418,19 @@ public class ReportServiceImpl implements ReportService {
public Page<DetailVO> getContinueTime(WaveTypeParam waveTypeParam) {
List<DetailVO> result = new ArrayList<>();
List<EventDetailNew> count = getED2(waveTypeParam);
StringBuilder stringBuilder = new StringBuilder(Param.SELECT+Param.EVENT_DETAIL+Param.WHERE+" 1=1 ");
StringBuilder stringBuilder = new StringBuilder(Param.SELECT + Param.EVENT_DETAIL + Param.WHERE + " ");
List<GeneralDeviceDTO> deviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(waveTypeParam).getData();
String substring = "";
for (GeneralDeviceDTO dto : deviceDTOList) {
if (dto.getLineIndexes().size()>0){
stringBuilder.append(" or ");
dto.getLineIndexes().stream().forEach(line -> {
stringBuilder.append("line_id = '").append(line + "' ").append("or ");
});
stringBuilder.delete(stringBuilder.length()-3,stringBuilder.length()+1);
}
List<String> lineIds = deviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
if (CollectionUtil.isEmpty(lineIds)) {
throw new BusinessException(DeviceResponseEnum.DEPT_LINE_EMPTY);
}
StringBuilder lineSting = InfluxDBCommUtils.assToInfluxParam(lineIds);
Integer s = (waveTypeParam.getPageNum() - 1) * waveTypeParam.getPageSize();
substring = stringBuilder.toString() + "limit "+waveTypeParam.getPageSize()+" offset "+s+ Param.TZ_ASIA_SHANGHAI;
QueryResult query = influxDbUtils.query(substring);
stringBuilder.append(lineSting).append("limit ").append(waveTypeParam.getPageSize() + " offset " + s + Param.TZ_ASIA_SHANGHAI);
QueryResult query = influxDbUtils.query(stringBuilder.toString());
InfluxDBResultMapperCn influxDBResultMapper = new InfluxDBResultMapperCn();
List<EventDetailNew> info = influxDBResultMapper.toPOJO(query, EventDetailNew.class);
//id集合
if (CollectionUtil.isNotEmpty(info)) {
ArrayList<String> idlist = new ArrayList<>();
for (EventDetailNew eventDetail : info) {
DetailVO vo = new DetailVO();
@@ -454,6 +456,7 @@ public class ReportServiceImpl implements ReportService {
}
}
}
}
Page<DetailVO> page = new Page<>();
page.setTotal(count.size());
page.setRecords(result);
@@ -1294,6 +1297,7 @@ public class ReportServiceImpl implements ReportService {
doc.write(outputStream);
outputStream.close();
}
public String getStr(String barName, Map<String, Object> map) throws TemplateException, IOException {
String s = FreemarkerUtil.generateString(barName, "com/njcn/event/template", map);
return EchartsUtil.generateEchartsBase64(s, "8910");
@@ -1504,7 +1508,6 @@ public class ReportServiceImpl implements ReportService {
}
/**
*
* @param bar
* @param position 位置
* @param color 颜色
@@ -3828,7 +3831,6 @@ public class ReportServiceImpl implements ReportService {
createPic(doc, yftj, "" + typeName + "事件图形");
//创建部门与监测点次数的map集合
List<GeneralDeviceDTO> areaParamList = generalDeviceInfoClient.getPracticalAllDeviceInfo(areaParam).getData();
Map<String, Integer> lineCount1 = new HashMap<>();
@@ -3921,7 +3923,6 @@ public class ReportServiceImpl implements ReportService {
createPic(doc, yftj, "" + typeName + "事件图形");
//创建部门与监测点次数的map集合
Map<String, Integer> lineCount1 = new HashMap<>();
List<GeneralDeviceDTO> areaParamList = generalDeviceInfoClient.getPracticalAllDeviceInfo(areaParam).getData();

View File

@@ -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);

View File

@@ -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:

View File

@@ -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>