1.灿能云接口移植,代码调整
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.njcn.cloud.pojo.vo.AdminStatistic;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 终端在线率统计
|
||||
* @Author: wr
|
||||
* @Date: 2024/1/5 10:44
|
||||
*/
|
||||
@Data
|
||||
public class StaticInfo {
|
||||
|
||||
@ApiModelProperty("统计开始时间")
|
||||
private Date timeStart;
|
||||
|
||||
@ApiModelProperty("统计结束时间")
|
||||
private Date timeEnd;
|
||||
|
||||
@ApiModelProperty("终端总在线率")
|
||||
private Float onlineRatez;
|
||||
|
||||
@ApiModelProperty("终端通讯异常数")
|
||||
private Long comError;
|
||||
|
||||
@ApiModelProperty("各终端信息集合")
|
||||
private List<DevStatic> list;
|
||||
|
||||
|
||||
@Data
|
||||
public static class DevStatic {
|
||||
|
||||
@ApiModelProperty("终端编号")
|
||||
private String devIndex;
|
||||
@ApiModelProperty("终端名称")
|
||||
private String devName;
|
||||
@ApiModelProperty("ip")
|
||||
private String ip;
|
||||
@ApiModelProperty("在线率")
|
||||
private Float onlineRate;
|
||||
@ApiModelProperty("供电公司")
|
||||
private String gdName;
|
||||
@ApiModelProperty("变电站信息")
|
||||
private String subName;
|
||||
@ApiModelProperty("最后更新时间")
|
||||
private LocalDateTime timeId;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.njcn.cloud.controller.AdminStatistic;
|
||||
|
||||
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
|
||||
import com.njcn.cloud.service.AdminStatistic.StaticService;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/dataIntegrity")
|
||||
@Api(tags = "统计装置在线率接口")
|
||||
@RequiredArgsConstructor
|
||||
public class StaticController extends BaseController {
|
||||
|
||||
private final StaticService staticService;
|
||||
|
||||
|
||||
/**
|
||||
* 统计数据完整性率
|
||||
*/
|
||||
@PostMapping("/getDevStatus")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, paramType = "query"),
|
||||
})
|
||||
@ApiOperation(value = "统计装置在线率入口", notes = "统计装置在线率列表")
|
||||
public HttpResult<StaticInfo> getDevStatus(String userId) {
|
||||
String methodDescribe = getMethodDescribe("getDevStatus");
|
||||
StaticInfo aStatic = staticService.getStatic(userId);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, aStatic, methodDescribe);
|
||||
}
|
||||
}
|
||||
@@ -146,11 +146,9 @@ public class SteadyMsgTask {
|
||||
*/
|
||||
public void statisticsData(String time, String startTime, String endTime) {
|
||||
LocalDateTime timeDay = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
|
||||
List<User> users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
|
||||
// List<User> users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
|
||||
// List<User> users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
|
||||
List<User> users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
|
||||
if (CollUtil.isNotEmpty(users)) {
|
||||
StatSubstationBizBaseParam baseParam;
|
||||
EventCountParam param;
|
||||
for (User user : users) {
|
||||
//根据单位获取投运监测点
|
||||
List<String> lineIds = generalDeviceInfoClient.deptGetRunLine(user.getDeptId()).getData();
|
||||
@@ -199,7 +197,7 @@ public class SteadyMsgTask {
|
||||
param = new EventCountParam();
|
||||
param.setIds(Collections.singletonList(lineId));
|
||||
List<RmpEventDetailPO> detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
||||
if (CollUtil.isNotEmpty(limitRates)) {
|
||||
if (CollUtil.isNotEmpty(detailPOList)) {
|
||||
dates.addAll(detailPOList.stream().map(x -> x.getStartTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)))
|
||||
.distinct().collect(Collectors.toList()));
|
||||
}
|
||||
@@ -230,7 +228,7 @@ public class SteadyMsgTask {
|
||||
param.setEndTime(endTime);
|
||||
//获取特征增幅小于0.9的暂态信息
|
||||
List<RmpEventDetailPO> detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
||||
saveStatistics(lineId, timeDay, detailPOList.size(), limitRates.get(0));
|
||||
saveStatistics(lineId, timeDay, detailPOList.size(), CollUtil.isNotEmpty(limitRates)?limitRates.get(0):null);
|
||||
return detailPOList.stream().map(RmpEventDetailPO::getEventId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.cloud.service.AdminStatistic;
|
||||
|
||||
|
||||
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
|
||||
|
||||
|
||||
/**
|
||||
* @description: StaticService
|
||||
* @author: denghuajun
|
||||
* @time: 2020-01-02 10:07:01
|
||||
**/
|
||||
|
||||
public interface StaticService {
|
||||
|
||||
/**
|
||||
* 统计数据终端在线率统计
|
||||
* @param userID
|
||||
* @return
|
||||
*/
|
||||
StaticInfo getStatic(String userID);
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.njcn.cloud.service.impl.AdminStatistic;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.njcn.cloud.enums.app.UserCodeEnum;
|
||||
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
|
||||
import com.njcn.cloud.service.AdminStatistic.StaticService;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||
import com.njcn.device.pq.pojo.vo.DevDetail;
|
||||
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
|
||||
import com.njcn.user.api.UserFeignClient;
|
||||
import com.njcn.user.pojo.po.User;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description: StaticServiceImpl
|
||||
* @author: denghuajun
|
||||
* @time: 2020-01-02 10:07:27
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class StaticServiceImpl implements StaticService {
|
||||
|
||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||
private final UserFeignClient userFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
public StaticInfo getStatic(String userID) {
|
||||
Date date = new Date();
|
||||
//开始时间
|
||||
// Date startTime = DateUtil.beginOfDay(date);
|
||||
Date startTime = DateUtil.offset(date, DateField.YEAR,-3);
|
||||
//根据用户id获取用户部门
|
||||
List<User> users = userFeignClient.getUserByIdList(Collections.singletonList(userID)).getData();
|
||||
if(CollUtil.isEmpty(users)){
|
||||
throw new BusinessException(UserCodeEnum.NO_USER.getMsg());
|
||||
}
|
||||
//获取终端ids
|
||||
List<String> devIds = generalDeviceInfoClient.deptGetRunDev(users.get(0).getDeptId()).getData();
|
||||
//获取总终端在线率
|
||||
OnlineRateParam param=new OnlineRateParam();
|
||||
param.setIds(devIds);
|
||||
param.setStartTime(startTime.toString());
|
||||
param.setEndTime(date.toString());
|
||||
Float data = generalDeviceInfoClient.getTotalOnlineRates(param).getData();
|
||||
//获取终端信息
|
||||
List<DevDetail> devDetails = generalDeviceInfoClient.getDevInfoByIds(new ArrayList<>()).getData();
|
||||
//获取终端在线率
|
||||
List<RStatOnlinerateVO> onlineRates = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
||||
//异常终端数据
|
||||
long count = devDetails.stream().filter(x -> 0==x.getComFlag()).count();
|
||||
StaticInfo info=new StaticInfo();
|
||||
info.setTimeStart(startTime);
|
||||
info.setTimeEnd(date);
|
||||
info.setOnlineRatez(data);
|
||||
info.setComError(count);
|
||||
List<StaticInfo.DevStatic> list=new ArrayList<>();
|
||||
Map<String, Float> onlineRateMap = onlineRates.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate));
|
||||
StaticInfo.DevStatic devStatic;
|
||||
for (DevDetail devDetail : devDetails) {
|
||||
devStatic=new StaticInfo.DevStatic();
|
||||
devStatic.setDevIndex(devDetail.getDevIndex());
|
||||
devStatic.setDevName(devDetail.getDevName());
|
||||
devStatic.setIp(devDetail.getIp());
|
||||
devStatic.setOnlineRate(onlineRateMap.get(devDetail.getDevIndex()));
|
||||
devStatic.setGdName(devDetail.getGdName());
|
||||
devStatic.setSubName(devDetail.getBdzName());
|
||||
devStatic.setTimeId(devDetail.getTimeID());
|
||||
list.add(devStatic);
|
||||
}
|
||||
info.setList(list);
|
||||
return info;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -291,7 +291,6 @@ public class AppStatisticsServiceImpl extends ServiceImpl<AppStatisticsMapper, A
|
||||
param.setIds(Collections.singletonList(lineIndex));
|
||||
param.setStartTime(startTime);
|
||||
param.setEndTime(endTime);
|
||||
|
||||
List<RmpEventDetailPO> eventDetailList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
||||
if (CollUtil.isNotEmpty(eventDetailList)) {
|
||||
for (RmpEventDetailPO event : eventDetailList) {
|
||||
|
||||
6
pom.xml
6
pom.xml
@@ -20,11 +20,11 @@
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<!--中间件目标地址-->
|
||||
<middle.server.url>192.168.1.13</middle.server.url>
|
||||
<middle.server.url>192.168.1.22</middle.server.url>
|
||||
<!--微服务模块发布地址-->
|
||||
<service.server.url>127.0.0.1</service.server.url>
|
||||
<service.server.url>192.168.1.121</service.server.url>
|
||||
<!--docker仓库地址-->
|
||||
<docker.server.url>192.168.1.13</docker.server.url>
|
||||
<docker.server.url>192.168.1.22</docker.server.url>
|
||||
<!--nacos的ip:port-->
|
||||
<nacos.url>${middle.server.url}:18848</nacos.url>
|
||||
<!--服务器发布内容为空-->
|
||||
|
||||
Reference in New Issue
Block a user