北京暂降平台调整
This commit is contained in:
@@ -1160,8 +1160,79 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
returnpage.setTotal(list.getTotal());
|
||||
return returnpage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<DeviceDTO> devicePage(LargeScreenCountParam largeScreenCountParam) {
|
||||
TimeInterval timeInterval = new TimeInterval();
|
||||
log.info("开始查询:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
|
||||
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
|
||||
Page<DeviceDTO> pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize());
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList");
|
||||
|
||||
|
||||
List<Integer> deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId());
|
||||
|
||||
|
||||
if(Objects.isNull(largeScreenCountParam.getGdIndex())){
|
||||
pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList());
|
||||
}else {
|
||||
pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex()) && Objects.equals(temp.getGdIndex(),largeScreenCountParam.getGdIndex())).collect(Collectors.toList());
|
||||
}
|
||||
if(CollUtil.isEmpty(pqLineList)){
|
||||
return new Page<>();
|
||||
}
|
||||
|
||||
List<Integer> devIndexs = pqLineList.stream().map(PqLine::getDevIndex).distinct().collect(Collectors.toList());
|
||||
log.info("完成从redis获取信息:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
//在运总数
|
||||
List<PqDevice> pqDeviceList = pqDeviceService.lambdaQuery().in(PqDevice::getDevIndex, devIndexs)
|
||||
.eq(PqDevice::getDevflag, 0).list();
|
||||
log.info("完成设备查询sql:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
List<Integer> runDevList = pqDeviceList.stream().map(PqDevice::getDevIndex).collect(Collectors.toList());
|
||||
|
||||
pqsEventdetailPage = pqDeviceService.selectDeviceDTOPage(pqsEventdetailPage,largeScreenCountParam.getSearchValue(),runDevList,largeScreenCountParam.getState());
|
||||
log.info("完成设备分页查询sql:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
|
||||
List<DeviceDTO> deviceDTOList = pqsEventdetailPage.getRecords();
|
||||
if(!CollectionUtils.isEmpty(deviceDTOList)){
|
||||
List<Integer> devIds = deviceDTOList.stream().map(DeviceDTO::getDevId).collect(Collectors.toList());
|
||||
log.info("在线率查询sql开始:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
List<PqsOnlinerate> list = pqsOnlinerateService.lambdaQuery().in(PqsOnlinerate::getDevIndex,devIds).between(PqsOnlinerate::getTimeid, startTime, endTime).list();
|
||||
log.info("在线率查询sql结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
|
||||
List<PqLine> inteList = pqLineList.stream().filter(it->devIds.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||
Map<Integer,List<Integer>> lineMap = inteList.stream().collect(Collectors.groupingBy(PqLine::getDevIndex,Collectors.mapping(PqLine::getLineIndex,Collectors.toList())));
|
||||
List<Integer> inteIds = inteList.stream().map(PqLine::getLineIndex).collect(Collectors.toList());
|
||||
|
||||
Map<Integer,Double> inteDevMap = new HashMap<>();
|
||||
log.info("完整性查询sql开始:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
List<PqsIntegrity> pqsIntegrityList = pqsIntegrityMapper.selectList(new LambdaQueryWrapper<PqsIntegrity>().in(PqsIntegrity::getLineIndex,inteIds).between(PqsIntegrity::getTimeID, startTime, endTime));
|
||||
log.info("完整性查询sql结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
|
||||
lineMap.forEach((dev,lineList)->{
|
||||
double rate = pqsIntegrityList.stream().filter(it->lineList.contains(it.getLineIndex())).mapToDouble(it->it.getReal()*1.0/(it.getDue()+it.getReal())).average().orElse(0.0);
|
||||
inteDevMap.put(dev,rate);
|
||||
});
|
||||
|
||||
|
||||
for (DeviceDTO record : pqsEventdetailPage.getRecords()) {
|
||||
List<PqsOnlinerate> tempList = list.stream().filter(temp -> Objects.equals(temp.getDevIndex(), record.getDevId())).collect(Collectors.toList());
|
||||
if(!CollectionUtils.isEmpty(tempList)){
|
||||
double asDouble = tempList.stream().mapToDouble(temp -> {
|
||||
return Double.valueOf(temp.getOnlinemin()*100) / (temp.getOfflinemin() + temp.getOnlinemin());
|
||||
}).average().getAsDouble();
|
||||
record.setOnLineRate(new BigDecimal(asDouble).setScale(2, RoundingMode.UP).doubleValue());
|
||||
record.setIntegrityRate(inteDevMap.containsKey(record.getDevId())? new BigDecimal(inteDevMap.get(record.getDevId())*100).setScale(2,RoundingMode.UP).doubleValue():0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
log.info("所有程序结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s");
|
||||
|
||||
|
||||
return pqsEventdetailPage;
|
||||
}
|
||||
/* @Override
|
||||
public Page<DeviceDTO> devicePage(LargeScreenCountParam largeScreenCountParam) {
|
||||
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
|
||||
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
|
||||
@@ -1217,7 +1288,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
|
||||
|
||||
return pqsEventdetailPage;
|
||||
}
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public Page<EventDetailVO> userEventList(LargeScreenCountParam largeScreenCountParam) {
|
||||
|
||||
Reference in New Issue
Block a user