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

This commit is contained in:
wr
2024-01-09 15:34:09 +08:00
parent 308a59227a
commit ed4cdeaa8f
5 changed files with 200 additions and 2 deletions

View File

@@ -0,0 +1,46 @@
package com.njcn.cloud.pojo.vo.AdminStatistic;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 数据完整性
* @Author: wr
* @Date: 2024/1/8 9:57
*/
@Data
public class Integrity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("开始时间")
private Date timeStart;
@ApiModelProperty("结束时间")
private Date timeEnd;
@ApiModelProperty("总监测点完整性")
private Float integrityz;
@ApiModelProperty("各监测点数据完整性")
private List<Integrity.DataIntegrity> list;
@Data
public static class DataIntegrity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("监测点id")
private String lineIndex;
@ApiModelProperty("监测点名称")
private String lineName;
@ApiModelProperty("数据完整性")
private Float integrity;
}
}

View File

@@ -3,6 +3,7 @@ package com.njcn.cloud.pojo.vo.AdminStatistic;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@@ -13,7 +14,9 @@ import java.util.List;
* @Date: 2024/1/5 10:44
*/
@Data
public class StaticInfo {
public class StaticInfo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("统计开始时间")
private Date timeStart;
@@ -32,7 +35,9 @@ public class StaticInfo {
@Data
public static class DevStatic {
public static class DevStatic implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("终端编号")
private String devIndex;

View File

@@ -0,0 +1,46 @@
package com.njcn.cloud.controller.AdminStatistic;
import com.njcn.cloud.pojo.vo.AdminStatistic.Integrity;
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
import com.njcn.cloud.service.AdminStatistic.DataIntegrityService;
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;
/**
* @Description: 统计终端在线率
* @Author: wr
* @Date: 2024/1/8 14:30
*/
@RestController
@RequestMapping("/dataIntegrity")
@Api(tags = "统计数据完整性率接口")
@RequiredArgsConstructor
public class DataIntegrityController extends BaseController {
private final DataIntegrityService dataIntegrityService;
/**
* 统计数据完整性率
*/
@PostMapping("/getDataIntegrity")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, paramType = "query"),
})
@ApiOperation(value = "统计数据完整性率入口", notes = "统计数据完整性率列表")
public HttpResult<Integrity> getDataIntegrity(String userId) {
String methodDescribe = getMethodDescribe("getDataIntegrity");
Integrity integrity = dataIntegrityService.getIntegrity(userId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, integrity, methodDescribe);
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.cloud.service.AdminStatistic;
import com.njcn.cloud.pojo.vo.AdminStatistic.Integrity;
public interface DataIntegrityService {
/**
* @Description: 统计数据数据完整性统计
* @param userID
* @return: com.njcn.cloud.pojo.vo.AdminStatistic.Integrity
* @Author: wr
* @Date: 2024/1/8 13:49
*/
Integrity getIntegrity(String userID);
}

View File

@@ -0,0 +1,84 @@
package com.njcn.cloud.service.impl.AdminStatistic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.njcn.cloud.enums.app.UserCodeEnum;
import com.njcn.cloud.pojo.vo.AdminStatistic.Integrity;
import com.njcn.cloud.pojo.vo.AdminStatistic.StaticInfo;
import com.njcn.cloud.service.AdminStatistic.DataIntegrityService;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.api.LineIntegrityClient;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
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: DataIntegrityServiceImpl
* @author: denghuajun
* @time: 2020-01-02 10:05:11
**/
@Service
@RequiredArgsConstructor
public class DataIntegrityServiceImpl implements DataIntegrityService {
private final LineIntegrityClient lineIntegrityClient;
private final UserFeignClient userFeignClient;
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final LineFeignClient lineFeignClient;
@Override
public Integrity getIntegrity(String userID) {
Date date = new Date();
//开始时间
Date startTime = DateUtil.beginOfDay(date);
//根据用户id获取用户部门
List<User> users = userFeignClient.getUserByIdList(Collections.singletonList(userID)).getData();
if(CollUtil.isEmpty(users)){
throw new BusinessException(UserCodeEnum.NO_USER.getMsg());
}
//获取监测点ids
List<String> lindIds = generalDeviceInfoClient.deptGetRunLine(users.get(0).getDeptId()).getData();
//获取总终端在线率
LineBaseQueryParam param=new LineBaseQueryParam();
param.setLineIds(lindIds);
param.setStartTime(startTime.toString());
param.setEndTime(date.toString());
Float data = lineIntegrityClient.getTotalIntegrityByLineIds(param).getData();
Integrity info=new Integrity();
info.setTimeStart(startTime);
info.setTimeEnd(date);
info.setIntegrityz(data);
List<Integrity.DataIntegrity> list=new ArrayList<>();
//获取监测点数据完整性
List<RStatIntegrityD> integrityDS = lineIntegrityClient.getIntegrityByLineIds(lindIds,startTime.toString(),date.toString()).getData();
Map<String, Float> onIntegrityMap = integrityDS.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex, RStatIntegrityD::getIntegrityData));
Integrity.DataIntegrity integrity;
//获取监测点信息
List<LineDeviceStateVO> lineDetails = lineFeignClient.getAllLine(lindIds).getData();
for (LineDeviceStateVO lineDetail : lineDetails) {
integrity=new Integrity.DataIntegrity();
integrity.setLineIndex(lineDetail.getId());
integrity.setLineName(lineDetail.getName());
integrity.setIntegrity(onIntegrityMap.get(lineDetail.getId())==null?0:onIntegrityMap.get(lineDetail.getId()));
list.add(integrity);
}
info.setList(list);
return info;
}
}