1.灿能云接口移植,代码调整

This commit is contained in:
wr
2024-01-05 16:00:24 +08:00
parent 2769afa5e6
commit 308a59227a
7 changed files with 206 additions and 10 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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>
<!--服务器发布内容为空--> <!--服务器发布内容为空-->