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) {
|
public void statisticsData(String time, String startTime, String endTime) {
|
||||||
LocalDateTime timeDay = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
|
LocalDateTime timeDay = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
|
||||||
List<User> users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
|
// List<User> users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
|
||||||
// List<User> users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
|
List<User> users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
|
||||||
if (CollUtil.isNotEmpty(users)) {
|
if (CollUtil.isNotEmpty(users)) {
|
||||||
StatSubstationBizBaseParam baseParam;
|
|
||||||
EventCountParam param;
|
|
||||||
for (User user : users) {
|
for (User user : users) {
|
||||||
//根据单位获取投运监测点
|
//根据单位获取投运监测点
|
||||||
List<String> lineIds = generalDeviceInfoClient.deptGetRunLine(user.getDeptId()).getData();
|
List<String> lineIds = generalDeviceInfoClient.deptGetRunLine(user.getDeptId()).getData();
|
||||||
@@ -199,7 +197,7 @@ public class SteadyMsgTask {
|
|||||||
param = new EventCountParam();
|
param = new EventCountParam();
|
||||||
param.setIds(Collections.singletonList(lineId));
|
param.setIds(Collections.singletonList(lineId));
|
||||||
List<RmpEventDetailPO> detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
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)))
|
dates.addAll(detailPOList.stream().map(x -> x.getStartTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)))
|
||||||
.distinct().collect(Collectors.toList()));
|
.distinct().collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
@@ -230,7 +228,7 @@ public class SteadyMsgTask {
|
|||||||
param.setEndTime(endTime);
|
param.setEndTime(endTime);
|
||||||
//获取特征增幅小于0.9的暂态信息
|
//获取特征增幅小于0.9的暂态信息
|
||||||
List<RmpEventDetailPO> detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
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());
|
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.setIds(Collections.singletonList(lineIndex));
|
||||||
param.setStartTime(startTime);
|
param.setStartTime(startTime);
|
||||||
param.setEndTime(endTime);
|
param.setEndTime(endTime);
|
||||||
|
|
||||||
List<RmpEventDetailPO> eventDetailList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
List<RmpEventDetailPO> eventDetailList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
|
||||||
if (CollUtil.isNotEmpty(eventDetailList)) {
|
if (CollUtil.isNotEmpty(eventDetailList)) {
|
||||||
for (RmpEventDetailPO event : eventDetailList) {
|
for (RmpEventDetailPO event : eventDetailList) {
|
||||||
|
|||||||
6
pom.xml
6
pom.xml
@@ -20,11 +20,11 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<properties>
|
<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仓库地址-->
|
||||||
<docker.server.url>192.168.1.13</docker.server.url>
|
<docker.server.url>192.168.1.22</docker.server.url>
|
||||||
<!--nacos的ip:port-->
|
<!--nacos的ip:port-->
|
||||||
<nacos.url>${middle.server.url}:18848</nacos.url>
|
<nacos.url>${middle.server.url}:18848</nacos.url>
|
||||||
<!--服务器发布内容为空-->
|
<!--服务器发布内容为空-->
|
||||||
|
|||||||
Reference in New Issue
Block a user