限制俩位小数点:数据完整性
This commit is contained in:
@@ -2,6 +2,7 @@ package com.njcn.device.pq.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.common.config.GeneralInfo;
|
import com.njcn.common.config.GeneralInfo;
|
||||||
@@ -210,11 +211,11 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
|||||||
outParam.setType(generalDeviceDTO.getName());
|
outParam.setType(generalDeviceDTO.getName());
|
||||||
//根据监测点查询数据完整性
|
//根据监测点查询数据完整性
|
||||||
List<PublicDTO> integrityData = getCondition(lineIndexes, integrityIconParam.getSearchBeginTime(), integrityIconParam.getSearchEndTime());
|
List<PublicDTO> integrityData = getCondition(lineIndexes, integrityIconParam.getSearchBeginTime(), integrityIconParam.getSearchEndTime());
|
||||||
outParam.setSingle(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
outParam.setSingle(NumberUtil.round(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159),2).doubleValue());
|
||||||
//如果存在需要比较的时间,再获取对应数据
|
//如果存在需要比较的时间,再获取对应数据
|
||||||
if (StrUtil.isNotBlank(integrityIconParam.getPeriodBeginTime()) && StrUtil.isNotBlank(integrityIconParam.getPeriodEndTime())) {
|
if (StrUtil.isNotBlank(integrityIconParam.getPeriodBeginTime()) && StrUtil.isNotBlank(integrityIconParam.getPeriodEndTime())) {
|
||||||
List<PublicDTO> compareData = getCondition(lineIndexes, integrityIconParam.getPeriodBeginTime(), integrityIconParam.getPeriodEndTime());
|
List<PublicDTO> compareData = getCondition(lineIndexes, integrityIconParam.getPeriodBeginTime(), integrityIconParam.getPeriodEndTime());
|
||||||
outParam.setRatio(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
outParam.setRatio(NumberUtil.round(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159),2).doubleValue());
|
||||||
}
|
}
|
||||||
out.add(outParam);
|
out.add(outParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.util.CharUtil;
|
import cn.hutool.core.util.CharUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.njcn.common.config.GeneralInfo;
|
import com.njcn.common.config.GeneralInfo;
|
||||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||||
@@ -184,12 +185,12 @@ public class IntegrityServiceImpl implements IntegrityService {
|
|||||||
//根据监测点查询数据完整性
|
//根据监测点查询数据完整性
|
||||||
List<PublicDTO> integrityData = getCondition(lineIndexes, integrityIconParam.getSearchBeginTime(), integrityIconParam.getSearchEndTime());
|
List<PublicDTO> integrityData = getCondition(lineIndexes, integrityIconParam.getSearchBeginTime(), integrityIconParam.getSearchEndTime());
|
||||||
// single.add(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
// single.add(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
||||||
outParam.setSingle(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
outParam.setSingle(NumberUtil.round(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159),2).doubleValue());
|
||||||
//如果存在需要比较的时间,再获取对应数据
|
//如果存在需要比较的时间,再获取对应数据
|
||||||
if (StrUtil.isNotBlank(integrityIconParam.getPeriodBeginTime()) && StrUtil.isNotBlank(integrityIconParam.getPeriodEndTime())) {
|
if (StrUtil.isNotBlank(integrityIconParam.getPeriodBeginTime()) && StrUtil.isNotBlank(integrityIconParam.getPeriodEndTime())) {
|
||||||
List<PublicDTO> compareData = getCondition(lineIndexes, integrityIconParam.getPeriodBeginTime(), integrityIconParam.getPeriodEndTime());
|
List<PublicDTO> compareData = getCondition(lineIndexes, integrityIconParam.getPeriodBeginTime(), integrityIconParam.getPeriodEndTime());
|
||||||
// ratio.add(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
// ratio.add(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
||||||
outParam.setRatio(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
|
outParam.setRatio(NumberUtil.round(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159),2).doubleValue());
|
||||||
}
|
}
|
||||||
out.add(outParam);
|
out.add(outParam);
|
||||||
}
|
}
|
||||||
@@ -355,12 +356,6 @@ public class IntegrityServiceImpl implements IntegrityService {
|
|||||||
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
||||||
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
||||||
List<RStatIntegrityVO> data = lineFeignClient.getOnIntegrityByIds(param).getData();
|
List<RStatIntegrityVO> data = lineFeignClient.getOnIntegrityByIds(param).getData();
|
||||||
// LineBaseQueryParam param = new LineBaseQueryParam();
|
|
||||||
// param.setLineIds(lineList);
|
|
||||||
// param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
|
|
||||||
// param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
|
|
||||||
// List<RStatIntegrityVO> data = lineFeignClient.getOnIntegrityByIdsAndTime(param).getData();
|
|
||||||
// List<String> data = lineFeignClient.getOnOrUnLine(param).getData()
|
|
||||||
if (!CollectionUtils.isEmpty(data)) {
|
if (!CollectionUtils.isEmpty(data)) {
|
||||||
data.forEach(po -> {
|
data.forEach(po -> {
|
||||||
PublicDTO publicDTO = new PublicDTO();
|
PublicDTO publicDTO = new PublicDTO();
|
||||||
@@ -374,39 +369,6 @@ public class IntegrityServiceImpl implements IntegrityService {
|
|||||||
return integrityList;
|
return integrityList;
|
||||||
|
|
||||||
|
|
||||||
// //组装sql语句
|
|
||||||
// StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
// stringBuilder.append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append(InfluxDBPublicParam.START_TIME).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append(InfluxDBPublicParam.END_TIME).append("' and (");
|
|
||||||
// for (int i = 0; i < lineList.size(); i++) {
|
|
||||||
// if (lineList.size() - i != 1) {
|
|
||||||
// stringBuilder.append(InfluxDBPublicParam.LINE_ID + "='").append(lineList.get(i)).append("' or ");
|
|
||||||
// } else {
|
|
||||||
// stringBuilder.append(InfluxDBPublicParam.LINE_ID + "='").append(lineList.get(i)).append("')");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// //sql语句
|
|
||||||
// String sql = "SELECT SUM(" + InfluxDBPublicParam.REAL + ")/SUM(" + InfluxDBPublicParam.DUE + ")*100 AS integrity FROM "+InfluxDBPublicParam.PQS_INTEGRITY+" WHERE " + stringBuilder + " group by " + InfluxDBPublicParam.LINE_ID + " tz('Asia/Shanghai')";
|
|
||||||
// //结果集
|
|
||||||
// QueryResult result = influxDbUtils.query(sql);
|
|
||||||
// //处理结果集
|
|
||||||
// List<QueryResult.Series> list = result.getResults().get(0).getSeries();
|
|
||||||
// if (!CollectionUtils.isEmpty(list)) {
|
|
||||||
// list.forEach(po -> {
|
|
||||||
// PublicDTO publicDTO = new PublicDTO();
|
|
||||||
// List<List<Object>> valueList = po.getValues();
|
|
||||||
// String index = po.getTags().get(InfluxDBPublicParam.LINE_ID);
|
|
||||||
// if (!CollectionUtils.isEmpty(valueList)) {
|
|
||||||
// for (List<Object> value : valueList) {
|
|
||||||
// //数据完整性 保留四位小数
|
|
||||||
// Double integrity = value.get(1) == null ? 3.14159 : BigDecimal.valueOf(Double.parseDouble(value.get(1).toString())).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
||||||
// publicDTO.setId(index);
|
|
||||||
// publicDTO.setData((integrity > 100.00) ? 100.00 : integrity);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// integrityList.add(publicDTO);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// return integrityList;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user