diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineIntegrityDataServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineIntegrityDataServiceImpl.java index af11b1375..928286c62 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineIntegrityDataServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LineIntegrityDataServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.device.pq.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.config.GeneralInfo; @@ -210,11 +211,11 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl 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())) { List 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); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java index a86d7dd5e..e5a480c53 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/IntegrityServiceImpl.java @@ -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 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 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 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 data = lineFeignClient.getOnIntegrityByIdsAndTime(param).getData(); -// List 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 list = result.getResults().get(0).getSeries(); -// if (!CollectionUtils.isEmpty(list)) { -// list.forEach(po -> { -// PublicDTO publicDTO = new PublicDTO(); -// List> valueList = po.getValues(); -// String index = po.getTags().get(InfluxDBPublicParam.LINE_ID); -// if (!CollectionUtils.isEmpty(valueList)) { -// for (List 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; } }