细节修改

This commit is contained in:
陈超
2022-08-17 14:57:28 +08:00
parent d73547fe56
commit 61abbc251d

View File

@@ -6,7 +6,6 @@ import com.njcn.device.mapper.AreaDeviceOnlineMapper;
import com.njcn.device.mapper.DeviceMapper; import com.njcn.device.mapper.DeviceMapper;
import com.njcn.device.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pojo.param.AreaCensusParam; import com.njcn.device.pojo.param.AreaCensusParam;
import com.njcn.device.pojo.param.DeviceInfoParam;
import com.njcn.device.pojo.po.Device; import com.njcn.device.pojo.po.Device;
import com.njcn.device.pojo.vo.AreaDeviceOnlineVO; import com.njcn.device.pojo.vo.AreaDeviceOnlineVO;
import com.njcn.device.pojo.vo.LineInfluxDbOnlineVO; import com.njcn.device.pojo.vo.LineInfluxDbOnlineVO;
@@ -121,7 +120,7 @@ public class AreaDeviceOnlineServiceImpl implements AreaDeviceOnlineService {
areaDeviceOnlineVO.setBreaksRate(new BigDecimal(breaksRate).setScale(2, RoundingMode.HALF_UP).doubleValue()); areaDeviceOnlineVO.setBreaksRate(new BigDecimal(breaksRate).setScale(2, RoundingMode.HALF_UP).doubleValue());
double shutdownRate = areaDeviceOnlineVO.getShutdown().doubleValue() / deviceIndexes.size() * 100; double shutdownRate = areaDeviceOnlineVO.getShutdown().doubleValue() / deviceIndexes.size() * 100;
areaDeviceOnlineVO.setShutdownRate(new BigDecimal(shutdownRate).setScale(2, RoundingMode.HALF_UP).doubleValue()); areaDeviceOnlineVO.setShutdownRate(new BigDecimal(shutdownRate).setScale(2, RoundingMode.HALF_UP).doubleValue());
List<LineInfluxDbOnlineVO> onlineData = getOnlineData(deviceIndexes, areaCensusParam); List<LineInfluxDbOnlineVO> onlineData = getOnlineData(deviceIndexes, areaCensusParam.getSearchBeginTime(), areaCensusParam.getSearchEndTime());
if (!CollectionUtils.isEmpty(onlineData)) { if (!CollectionUtils.isEmpty(onlineData)) {
double avgOnline = onlineData.stream().mapToDouble(LineInfluxDbOnlineVO::getOnlineRate).sum() / onlineData.size(); double avgOnline = onlineData.stream().mapToDouble(LineInfluxDbOnlineVO::getOnlineRate).sum() / onlineData.size();
areaDeviceOnlineVO.setOnlineRate(new BigDecimal(avgOnline).setScale(2, RoundingMode.HALF_UP).doubleValue()); areaDeviceOnlineVO.setOnlineRate(new BigDecimal(avgOnline).setScale(2, RoundingMode.HALF_UP).doubleValue());
@@ -129,6 +128,7 @@ public class AreaDeviceOnlineServiceImpl implements AreaDeviceOnlineService {
return areaDeviceOnlineVO; return areaDeviceOnlineVO;
} }
private int getDeviceNumber(String lineLevel, List<String> deviceIndexes, List<String> lineIndexes) { private int getDeviceNumber(String lineLevel, List<String> deviceIndexes, List<String> lineIndexes) {
List<String> lineIdList = areaDeviceOnlineMapper.selectLineIdBylineLevel(lineLevel); List<String> lineIdList = areaDeviceOnlineMapper.selectLineIdBylineLevel(lineLevel);
List<String> result = lineIdList.stream().filter(item -> lineIndexes.contains(item)).collect(Collectors.toList()); List<String> result = lineIdList.stream().filter(item -> lineIndexes.contains(item)).collect(Collectors.toList());
@@ -152,10 +152,10 @@ public class AreaDeviceOnlineServiceImpl implements AreaDeviceOnlineService {
} }
/** 获取按终端分组的终端在线率*/ /** 获取按终端分组的终端在线率*/
public List<LineInfluxDbOnlineVO> getOnlineData(List<String> deviceIndexes, DeviceInfoParam.BusinessParam deviceInfoParam) { public List<LineInfluxDbOnlineVO> getOnlineData(List<String> deviceIndexes, String searchBeginTime, String searchEndTime) {
//组装sql语句 //组装sql语句
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime()))).append("' and "); stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(searchBeginTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(searchEndTime))).append("' and ");
for (int i = 0; i < deviceIndexes.size(); i++) { for (int i = 0; i < deviceIndexes.size(); i++) {
if (deviceIndexes.size() - i != 1) { if (deviceIndexes.size() - i != 1) {