添加日志查询慢接口
This commit is contained in:
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.StopWatch;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -37,6 +38,7 @@ import com.njcn.device.userledger.service.UserLedgerService;
|
|||||||
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||||
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -60,6 +62,7 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService {
|
public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService {
|
||||||
|
|
||||||
private final RStatOnlinerateDMapper onlineRateMapper;
|
private final RStatOnlinerateDMapper onlineRateMapper;
|
||||||
@@ -153,8 +156,14 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
//BusinessParam的searchvalue只匹配监测点名称现在要匹配电站,监测点,监测点对象名称,所以穿空再添加过滤逻辑
|
//BusinessParam的searchvalue只匹配监测点名称现在要匹配电站,监测点,监测点对象名称,所以穿空再添加过滤逻辑
|
||||||
String tempSearchValue=param.getSearchValue();
|
String tempSearchValue=param.getSearchValue();
|
||||||
param.setSearchValue("");
|
param.setSearchValue("");
|
||||||
|
StopWatch sw = new StopWatch();
|
||||||
|
sw.start("获取设备台账");
|
||||||
|
|
||||||
|
|
||||||
//获取终端台账类信息
|
//获取终端台账类信息
|
||||||
List<GeneralDeviceDTO> deviceInfo = deviceService.getDeviceInfo(param, null, Collections.singletonList(1));
|
List<GeneralDeviceDTO> deviceInfo = deviceService.getDeviceInfo(param, null, Collections.singletonList(1));
|
||||||
|
sw.stop();
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(deviceInfo)) {
|
if (CollUtil.isNotEmpty(deviceInfo)) {
|
||||||
List<String> lineIds = deviceInfo.stream()
|
List<String> lineIds = deviceInfo.stream()
|
||||||
.flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList())
|
.flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList())
|
||||||
@@ -165,7 +174,12 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
|
|
||||||
if(CollectionUtil.isNotEmpty(lineIds)){
|
if(CollectionUtil.isNotEmpty(lineIds)){
|
||||||
//根据searchvalue过滤
|
//根据searchvalue过滤
|
||||||
|
sw.start("获取线路详情远程调用");
|
||||||
|
|
||||||
List<LineALLInfoDTO> data = commLineClient.getLineAllDetailList(lineIds).getData();
|
List<LineALLInfoDTO> data = commLineClient.getLineAllDetailList(lineIds).getData();
|
||||||
|
sw.stop();
|
||||||
|
sw.start("内存过滤线路");
|
||||||
|
|
||||||
filterLineList= data.stream()
|
filterLineList= data.stream()
|
||||||
.filter(dto -> {
|
.filter(dto -> {
|
||||||
LineALLInfoDTO.LineLineDTO lineDTO = dto.getLineLineDTO();
|
LineALLInfoDTO.LineLineDTO lineDTO = dto.getLineLineDTO();
|
||||||
@@ -183,9 +197,12 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
|
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
sw.stop();
|
||||||
|
|
||||||
rate.setTotalNum(filterLineList.size());
|
rate.setTotalNum(filterLineList.size());
|
||||||
List<String> finalFilterLineList = filterLineList;
|
List<String> finalFilterLineList = filterLineList;
|
||||||
//根据过滤后监测点过滤
|
//根据过滤后监测点过滤
|
||||||
|
sw.start("过滤后重新组装");
|
||||||
deviceInfo= deviceInfo.stream()
|
deviceInfo= deviceInfo.stream()
|
||||||
.filter(dto -> {
|
.filter(dto -> {
|
||||||
List<String> original = dto.getLineIndexes();
|
List<String> original = dto.getLineIndexes();
|
||||||
@@ -204,9 +221,16 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList()); //获取所有监测点的数据完整性
|
.collect(Collectors.toList()); //获取所有监测点的数据完整性
|
||||||
|
sw.stop();
|
||||||
|
sw.start("查询完整性率");
|
||||||
|
|
||||||
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(filterLineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
List<RStatIntegrityVO> lineIntegrityRateInfo = rStatIntegrityDMapper.getLineIntegrityRateInfo(filterLineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
|
sw.stop();
|
||||||
|
sw.start("查询线路详情");
|
||||||
|
|
||||||
//获取所有监测点信息信息
|
//获取所有监测点信息信息
|
||||||
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(filterLineList);
|
List<LineDetailVO.Detail> LineInfoByIds = lineService.getLineDetailByIds(filterLineList);
|
||||||
|
sw.stop();
|
||||||
|
|
||||||
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, filterLineList.size()) : lineIds.size());
|
rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, filterLineList.size()) : lineIds.size());
|
||||||
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, filterLineList).doubleValue()>100.0?BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, filterLineList).doubleValue()>100.0?BigDecimal.valueOf(100.0) : calculateIntegrityRate(lineIntegrityRateInfo, lineIds));
|
||||||
@@ -214,7 +238,12 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
DeviceOnlineRate.CitDetail citDetail;
|
DeviceOnlineRate.CitDetail citDetail;
|
||||||
DeviceOnlineRate.LineDetail detail;
|
DeviceOnlineRate.LineDetail detail;
|
||||||
//用户侧监测点 监测对象
|
//用户侧监测点 监测对象
|
||||||
|
sw.start("查询用户台账");
|
||||||
|
|
||||||
List<UserLedgerVO> userLedgerVOS = userLedgerService.selectUserList(new UserReportParam());
|
List<UserLedgerVO> userLedgerVOS = userLedgerService.selectUserList(new UserReportParam());
|
||||||
|
sw.stop();
|
||||||
|
sw.start("组装响应");
|
||||||
|
|
||||||
Map<String, String> objMap = userLedgerVOS.stream().collect(Collectors.toMap(UserLedgerVO::getId, UserLedgerVO::getProjectName));
|
Map<String, String> objMap = userLedgerVOS.stream().collect(Collectors.toMap(UserLedgerVO::getId, UserLedgerVO::getProjectName));
|
||||||
for (GeneralDeviceDTO dto : deviceInfo) {
|
for (GeneralDeviceDTO dto : deviceInfo) {
|
||||||
//获取部门终端集合
|
//获取部门终端集合
|
||||||
@@ -252,7 +281,9 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
|||||||
}
|
}
|
||||||
rate.setCitDetailList(citDetailList);
|
rate.setCitDetailList(citDetailList);
|
||||||
}
|
}
|
||||||
return rate;
|
sw.stop();
|
||||||
|
log.info("耗时总结"+sw.prettyPrint());
|
||||||
|
return rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user