北京暂降平台调整
This commit is contained in:
@@ -1160,8 +1160,79 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
returnpage.setTotal(list.getTotal());
|
returnpage.setTotal(list.getTotal());
|
||||||
return returnpage;
|
return returnpage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
public Page<DeviceDTO> devicePage(LargeScreenCountParam largeScreenCountParam) {
|
||||||
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
|
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
|
||||||
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
|
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
|
||||||
@@ -1217,7 +1288,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
|
|
||||||
|
|
||||||
return pqsEventdetailPage;
|
return pqsEventdetailPage;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<EventDetailVO> userEventList(LargeScreenCountParam largeScreenCountParam) {
|
public Page<EventDetailVO> userEventList(LargeScreenCountParam largeScreenCountParam) {
|
||||||
|
|||||||
Reference in New Issue
Block a user