冀北监测点试运行功能提交
This commit is contained in:
@@ -54,7 +54,7 @@ public class CommLineController extends BaseController {
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getLineDetailBatch")
|
||||
@ApiOperation("批量获取监测点信息")
|
||||
public HttpResult<List<LineDTO>> getLineDetailBatch(@RequestParam("ids") List<String> ids) {
|
||||
public HttpResult<List<LineDTO>> getLineDetailBatch(@RequestBody List<String> ids) {
|
||||
String methodDescribe = getMethodDescribe("getLineDetailBatch");
|
||||
List<LineDTO> result = lineService.getLineDetailBatch(ids);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
|
||||
@@ -8,8 +8,10 @@ import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
||||
import com.njcn.device.pq.pojo.param.LineIntegrityDataParam;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
|
||||
@@ -116,4 +118,14 @@ public class LineIntegrityDataController extends BaseController {
|
||||
Float integrity = irStatIntegrityDService.getTotalIntegrityByLineIds(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, integrity, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/lineDataQuality")
|
||||
@ApiOperation("获取监测点的在线率和数据完成性")
|
||||
@ApiImplicitParam(name = "lineIds", value = "参数实体", required = true)
|
||||
public HttpResult<List<LineDataQualityDTO>> getLineDataQuality(@RequestBody LineDataQualityParam lineDataQualityParam) {
|
||||
String methodDescribe = getMethodDescribe("getLineDataQuality");
|
||||
List<LineDataQualityDTO> result = irStatIntegrityDService.getLineDataQuality(lineDataQualityParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,result,methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,9 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
||||
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
||||
@@ -84,4 +86,10 @@ public class TerminalOnlineRateDataController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,9 +2,13 @@ package com.njcn.device.pq.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 数据完整性日表 服务类
|
||||
@@ -22,4 +26,7 @@ public interface IRStatIntegrityDService extends IService<RStatIntegrityD> {
|
||||
* @Date: 2024/1/8 13:59
|
||||
*/
|
||||
Float getTotalIntegrityByLineIds(LineBaseQueryParam param);
|
||||
|
||||
|
||||
List<LineDataQualityDTO> getLineDataQuality(LineDataQualityParam lineDataQualityParam);
|
||||
}
|
||||
|
||||
@@ -1,13 +1,31 @@
|
||||
package com.njcn.device.pq.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.device.pq.mapper.LineMapper;
|
||||
import com.njcn.device.pq.mapper.RStatIntegrityDMapper;
|
||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||
import com.njcn.device.pq.service.IRStatIntegrityDService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 数据完整性日表 服务实现类
|
||||
@@ -17,10 +35,67 @@ import org.springframework.stereotype.Service;
|
||||
* @since 2023-03-28
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RStatIntegrityDServiceImpl extends ServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService {
|
||||
|
||||
private final RStatOnlinerateDMapper onlineRateMapper;
|
||||
|
||||
private final RStatIntegrityDMapper rStatIntegrityDMapper;
|
||||
|
||||
private final LineMapper lineMapper;
|
||||
|
||||
@Override
|
||||
public Float getTotalIntegrityByLineIds(LineBaseQueryParam param) {
|
||||
return this.baseMapper.selectTotalIntegrityByLineIds(param);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<LineDataQualityDTO> getLineDataQuality(LineDataQualityParam lineDataQualityParam) {
|
||||
List<String> lineIds = lineDataQualityParam.getLineIds();
|
||||
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId,lineIds));
|
||||
|
||||
lineList = lineList.stream().peek(item->{
|
||||
String devId = item.getPids().split(StrUtil.COMMA)[4];
|
||||
item.setPid(devId);
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
List<String> devIds = lineList.stream().map(Line::getPid).distinct().collect(Collectors.toList());
|
||||
|
||||
QueryWrapper<RStatOnlinerateD> onlineQuery = new QueryWrapper<>();
|
||||
onlineQuery.select("dev_index,avg(online_min/offline_min+online_min) as onlineRate")
|
||||
.lambda()
|
||||
.in(RStatOnlinerateD::getDevIndex,devIds)
|
||||
.between(RStatOnlinerateD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATETIME_FORMATTER),DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATETIME_FORMATTER))
|
||||
.groupBy(RStatOnlinerateD::getDevIndex);
|
||||
List<RStatOnlinerateD> rStatOnlinerateDList = onlineRateMapper.selectList(onlineQuery);
|
||||
Map<String,RStatOnlinerateD> onlineMap = rStatOnlinerateDList.stream().collect(Collectors.toMap(RStatOnlinerateD::getDevIndex, Function.identity()));
|
||||
|
||||
|
||||
QueryWrapper<RStatIntegrityD> integrityQuery = new QueryWrapper<>();
|
||||
integrityQuery.select("line_index,avg(real_time/due_time) as integrityData")
|
||||
.lambda()
|
||||
.in(RStatIntegrityD::getLineIndex,lineIds)
|
||||
.between(RStatIntegrityD::getTimeId, DateUtil.parse(lineDataQualityParam.getBeginTime(), DatePattern.NORM_DATETIME_FORMATTER),DateUtil.parse(lineDataQualityParam.getEndTime(), DatePattern.NORM_DATETIME_FORMATTER))
|
||||
.groupBy(RStatIntegrityD::getLineIndex);
|
||||
List<RStatIntegrityD> rStatIntegrityDList = rStatIntegrityDMapper.selectList(integrityQuery);
|
||||
Map<String,RStatIntegrityD> integrityMap = rStatIntegrityDList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex,Function.identity()));
|
||||
|
||||
List<LineDataQualityDTO> result = new ArrayList<>();
|
||||
for(Line item : lineList){
|
||||
LineDataQualityDTO lineDataQualityDTO = new LineDataQualityDTO();
|
||||
lineDataQualityDTO.setLineId(item.getId());
|
||||
if(onlineMap.containsKey(item.getPid())){
|
||||
lineDataQualityDTO.setOnlineRate(Double.valueOf(onlineMap.get(item.getPid()).getOnlineRate()));
|
||||
}else {
|
||||
lineDataQualityDTO.setOnlineRate(0.00);
|
||||
}
|
||||
if(integrityMap.containsKey(item.getId())){
|
||||
lineDataQualityDTO.setIntegrityRate(Double.valueOf(integrityMap.get(item.getId()).getIntegrityData()));
|
||||
}else {
|
||||
lineDataQualityDTO.setIntegrityRate(0.00);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,21 +2,29 @@ package com.njcn.device.pq.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.njcn.common.config.GeneralInfo;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pq.api.AlarmClient;
|
||||
import com.njcn.device.biz.enums.DeviceResponseEnum;
|
||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||
import com.njcn.device.pq.mapper.TerminalOnlineRateDataMapper;
|
||||
import com.njcn.device.pq.mapper.*;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.dto.LineDataQualityDTO;
|
||||
import com.njcn.device.pq.pojo.dto.PublicDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
|
||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
|
||||
|
||||
import com.njcn.device.pq.pojo.po.Line;
|
||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
|
||||
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
|
||||
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
|
||||
@@ -65,6 +73,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 终端在线率列表
|
||||
*
|
||||
@@ -197,6 +206,8 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
return onlineRateCensusVO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<PublicDTO> getCondition(List<String> deviceIndexes, String searchBeginTime, String searchEndTime) {
|
||||
List<PublicDTO> publicDTOList = new ArrayList<>();
|
||||
OnlineRateParam param=new OnlineRateParam();
|
||||
|
||||
Reference in New Issue
Block a user