1.灿能云接口移植,代码调整
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user