限制俩位小数点:数据完整性

This commit is contained in:
wr
2023-04-23 09:26:04 +08:00
parent b1a5771000
commit 0beccc3d0b
2 changed files with 6 additions and 43 deletions

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.config.GeneralInfo;
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());
// 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())) {
List<PublicDTO> compareData = getCondition(lineIndexes, integrityIconParam.getPeriodBeginTime(), integrityIconParam.getPeriodEndTime());
// 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);
}
@@ -355,12 +356,6 @@ public class IntegrityServiceImpl implements IntegrityService {
param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString());
param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
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)) {
data.forEach(po -> {
PublicDTO publicDTO = new PublicDTO();
@@ -374,39 +369,6 @@ public class IntegrityServiceImpl implements IntegrityService {
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;
}
}