修改终端在线率

This commit is contained in:
陈超
2022-07-05 22:14:26 +08:00
parent 88ede44ac9
commit 1da799ee4b
6 changed files with 21 additions and 24 deletions

View File

@@ -79,6 +79,8 @@ public enum CommonResponseEnum {
DELETE_PID_EXIST("A0094", "存在子节点"), DELETE_PID_EXIST("A0094", "存在子节点"),
DELETE_PID_UNEXIST("A0095", "不存在子节点"), DELETE_PID_UNEXIST("A0095", "不存在子节点"),
FILE_EXIST("A0096", "文件已存在"),
; ;
private final String code; private final String code;

View File

@@ -214,6 +214,11 @@ public interface InfluxDBPublicParam {
*/ */
String PQS_COMASSES = "pqs_comasses"; String PQS_COMASSES = "pqs_comasses";
/**
* 终端运维日志表
*/
String PQS_TERMINAL_LOGS = "pqs_terminal_logs";
/** /**
* 监测点状态信息表 * 监测点状态信息表
*/ */

View File

@@ -17,7 +17,7 @@ import javax.validation.constraints.Pattern;
@Data @Data
public class AlarmStrategyParam { public class AlarmStrategyParam {
@ApiModelProperty(value = "告警策略Id", required = true) @ApiModelProperty(value = "告警策略Id 关联字典表id", required = true)
@NotBlank(message = DeviceValidMessage.ID_NOT_BLANK) @NotBlank(message = DeviceValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String id; private String id;

View File

@@ -75,7 +75,7 @@ public class ProgramVersionController extends BaseController {
String methodDescribe = getMethodDescribe("getProgramVersionById"); String methodDescribe = getMethodDescribe("getProgramVersionById");
boolean res = programService.getProgramVersionById(id); boolean res = programService.getProgramVersionById(id);
if (res) { if (res) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FILE_EXIST, null, methodDescribe);
} else { } else {
throw new BusinessException(CommonResponseEnum.NO_DATA); throw new BusinessException(CommonResponseEnum.NO_DATA);
} }

View File

@@ -13,6 +13,7 @@ import com.njcn.device.pojo.vo.EventLogVO;
import com.njcn.device.service.LogManageService; import com.njcn.device.service.LogManageService;
import com.njcn.event.api.EventDetailFeignClient; import com.njcn.event.api.EventDetailFeignClient;
import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.EventDetail;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.influxdb.dto.QueryResult; import org.influxdb.dto.QueryResult;
@@ -151,12 +152,12 @@ public class LogManageServiceImpl implements LogManageService {
List<TerminalLogs> terminalLogs; List<TerminalLogs> terminalLogs;
//组装sql语句 //组装sql语句
StringBuilder string = new StringBuilder(); StringBuilder string = new StringBuilder();
string.append(DeviceValidMessage.TIME + " >= '" + startTime + DeviceValidMessage.START_TIME + "' and " + DeviceValidMessage.TIME + " <= '" + endTime + DeviceValidMessage.END_TIME + "'"); string.append(InfluxDBPublicParam.TIME + " >= '" + startTime + InfluxDBPublicParam.START_TIME + "' and " + InfluxDBPublicParam.TIME + " <= '" + endTime + InfluxDBPublicParam.END_TIME + "'");
if (!type.isEmpty()) { if (!type.isEmpty()) {
string.append(" and terminal_type = '" + type +"'").append(" tz('Asia/Shanghai')"); string.append(" and terminal_type = '" + type +"'");
} }
//sql语句 //sql语句
String sql = "SELECT * FROM pqs_terminal_logs WHERE " + string; String sql = "SELECT * FROM "+InfluxDBPublicParam.PQS_TERMINAL_LOGS+" WHERE " + string + InfluxDBPublicParam.TIME_ZONE;
System.out.println("sql==========="+sql); System.out.println("sql==========="+sql);
//结果集 //结果集
QueryResult results = influxDbUtils.query(sql); QueryResult results = influxDbUtils.query(sql);
@@ -179,10 +180,10 @@ public class LogManageServiceImpl implements LogManageService {
StringBuilder string = new StringBuilder(); StringBuilder string = new StringBuilder();
string.append(DeviceValidMessage.TIME + " >= '" + startTime + DeviceValidMessage.START_TIME + "' and " + DeviceValidMessage.TIME + " <= '" + endTime + DeviceValidMessage.END_TIME + "'"); string.append(DeviceValidMessage.TIME + " >= '" + startTime + DeviceValidMessage.START_TIME + "' and " + DeviceValidMessage.TIME + " <= '" + endTime + DeviceValidMessage.END_TIME + "'");
if (result==1 || result==2) { if (result==1 || result==2) {
string.append(" and result=" + result).append(" tz('Asia/Shanghai')"); string.append(" and result=" + result);
} }
//sql语句 //sql语句
String sql = "SELECT * FROM pqs_event_push_logs WHERE " + string; String sql = "SELECT * FROM pqs_event_push_logs WHERE " + string +InfluxDBPublicParam.TIME_ZONE;
System.out.println("sql==========="+sql); System.out.println("sql==========="+sql);
//结果集 //结果集
QueryResult results = influxDbUtils.query(sql); QueryResult results = influxDbUtils.query(sql);

View File

@@ -4,12 +4,12 @@ import com.njcn.common.config.GeneralInfo;
import com.njcn.device.api.GeneralDeviceInfoClient; import com.njcn.device.api.GeneralDeviceInfoClient;
import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pojo.param.DeviceInfoParam; import com.njcn.device.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.constant.Param;
import com.njcn.harmonic.mapper.TerminalDataMapper; import com.njcn.harmonic.mapper.TerminalDataMapper;
import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.dto.PublicDTO;
import com.njcn.harmonic.pojo.vo.TerminalCensusVO; import com.njcn.harmonic.pojo.vo.TerminalCensusVO;
import com.njcn.harmonic.pojo.vo.TerminalVO; import com.njcn.harmonic.pojo.vo.TerminalVO;
import com.njcn.harmonic.service.TerminalService; import com.njcn.harmonic.service.TerminalService;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.influxdb.dto.QueryResult; import org.influxdb.dto.QueryResult;
@@ -160,16 +160,6 @@ public class TerminalServiceImpl implements TerminalService {
List<TerminalVO> substationList = terminalDataMapper.getLineInfoByList(deviceList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList())); List<TerminalVO> substationList = terminalDataMapper.getLineInfoByList(deviceList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList()));
//供电公司集合 //供电公司集合
List<TerminalVO> powerCompanyList = terminalDataMapper.getLineInfoByList(substationList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList())); List<TerminalVO> powerCompanyList = terminalDataMapper.getLineInfoByList(substationList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList()));
// //区域集合
// List<TerminalVO> areaList = terminalDataMapper.getLineInfoByList(powerCompanyList.stream().map(TerminalVO::getPid).distinct().collect(Collectors.toList()));
// //区域详情,用来替换区域名称
// List<Area> area = areaFeignClient.areaNameByList(areaList.stream().map(TerminalVO::getName).collect(Collectors.toList())).getData();
// //组装区域名称
// areaList.stream().map(list1 -> area.stream().filter(list2 -> Objects.equals(list1.getName(), list2.getId())).findAny().map(m -> {
// list1.setName(m.getName());
// return list1;
// })).collect(Collectors.toList());
//查询终端的在线率 //查询终端的在线率
List<PublicDTO> onlineRateList = getCondition(deviceIndexes, terminalParam.getSearchBeginTime(), terminalParam.getSearchEndTime()); List<PublicDTO> onlineRateList = getCondition(deviceIndexes, terminalParam.getSearchBeginTime(), terminalParam.getSearchEndTime());
//根据终端集合组装终端的在线率 //根据终端集合组装终端的在线率
@@ -191,7 +181,6 @@ public class TerminalServiceImpl implements TerminalService {
powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList()); powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList());
setTreeFlag(powerCompanyList,substationList); setTreeFlag(powerCompanyList,substationList);
// areaList.stream().peek(item -> item.setChildren(getChildCategoryList(item, powerCompanyList))).collect(Collectors.toList());
setFatherOnlineRate(substationList); setFatherOnlineRate(substationList);
setFatherOnlineRate(powerCompanyList); setFatherOnlineRate(powerCompanyList);
// setAreaIntegrity(areaList); // setAreaIntegrity(areaList);
@@ -218,16 +207,16 @@ public class TerminalServiceImpl implements TerminalService {
List<PublicDTO> publicDTOList = new ArrayList<>(); List<PublicDTO> publicDTOList = new ArrayList<>();
//组装sql语句 //组装sql语句
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(Param.TIME + " >= '").append(startTime).append(Param.START_TIME).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append(Param.END_TIME).append("' and ("); stringBuilder.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append(InfluxDBPublicParam.START_TIME).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append(InfluxDBPublicParam.END_TIME).append("' and (");
for (int i = 0; i < deviceIndexes.size(); i++) { for (int i = 0; i < deviceIndexes.size(); i++) {
if (deviceIndexes.size() - i != 1) { if (deviceIndexes.size() - i != 1) {
stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or "); stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("' or ");
} else { } else {
stringBuilder.append(Param.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')"); stringBuilder.append(InfluxDBPublicParam.DEV_INDEX + "='").append(deviceIndexes.get(i)).append("')");
} }
} }
//sql语句 //sql语句
String sql = "SELECT (SUM(" + Param.ONLINEMIN + ")/(SUM(" + Param.OFFLINEMIN + ")+SUM(" + Param.ONLINEMIN + ")))*100 AS onlineRate FROM PQS_ONLINERATE WHERE " + stringBuilder + " group by " + Param.DEV_INDEX; String sql = "SELECT (SUM(" + InfluxDBPublicParam.ONLINEMIN + ")/(SUM(" + InfluxDBPublicParam.OFFLINEMIN + ")+SUM(" + InfluxDBPublicParam.ONLINEMIN + ")))*100 AS onlineRate FROM "+InfluxDBPublicParam.PQS_ONLINERATE+" WHERE " + stringBuilder + " group by " + InfluxDBPublicParam.DEV_INDEX + InfluxDBPublicParam.TIME_ZONE;
//结果集 //结果集
QueryResult result = influxDbUtils.query(sql); QueryResult result = influxDbUtils.query(sql);
//处理结果集 //处理结果集
@@ -236,7 +225,7 @@ public class TerminalServiceImpl implements TerminalService {
list.forEach(po -> { list.forEach(po -> {
PublicDTO publicDTO = new PublicDTO(); PublicDTO publicDTO = new PublicDTO();
List<List<Object>> valueList = po.getValues(); List<List<Object>> valueList = po.getValues();
String index = po.getTags().get(Param.DEV_INDEX); String index = po.getTags().get(InfluxDBPublicParam.DEV_INDEX);
if (!CollectionUtils.isEmpty(valueList)) { if (!CollectionUtils.isEmpty(valueList)) {
for (List<Object> value : valueList) { for (List<Object> value : valueList) {
//终端在线率 保留两位小数 //终端在线率 保留两位小数