zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
@@ -11,6 +11,7 @@ import com.zhitan.common.exception.ServiceException; import com.zhitan.common.utils.DateTimeUtil; import com.zhitan.common.utils.PropUtils; import com.zhitan.common.utils.TypeTime; import com.zhitan.dataitem.service.IDataItemService; import com.zhitan.model.domain.vo.ModelNodeIndexInfo; import com.zhitan.model.mapper.ModelNodeMapper; @@ -62,19 +63,23 @@ ModelNodeIndexInfo info = nodeIndexInfo.stream().findFirst().get(); List<TypeTime> dateTimeList; // 根据时间类型调整时间范围 switch (dto.getTimeType()) { case TimeTypeConst.TIME_TYPE_DAY: timeType = TimeTypeConst.TIME_TYPE_HOUR; endTime = DateUtil.endOfDay(beginTime); dateTimeList = DateTimeUtil.getDateTimeListSame(TimeTypeConst.TIME_TYPE_DAY, beginTime); break; case TimeTypeConst.TIME_TYPE_MONTH: timeType = TimeTypeConst.TIME_TYPE_DAY; endTime = DateUtil.endOfMonth(beginTime); dateTimeList = DateTimeUtil.getDateTimeListSame(TimeTypeConst.TIME_TYPE_MONTH, beginTime); break; case TimeTypeConst.TIME_TYPE_YEAR: timeType = TimeTypeConst.TIME_TYPE_MONTH; endTime = DateUtil.endOfYear(beginTime); dateTimeList = DateTimeUtil.getDateTimeListSame(TimeTypeConst.TIME_TYPE_YEAR, beginTime); break; default: throw new ServiceException("时间格式错误"); @@ -102,9 +107,31 @@ itemVO.setNodeId(info.getNodeId()); itemVO.setNodeName(info.getName()); itemVO.setTotal(sum); for (int i = 0; i < dataItemList.size(); i++) { PropUtils.setValue(itemVO,"value"+ i, dataItemList.get(i).getValue()); Map<Date, List<DataItem>> dateListMap = dataItemList.stream().collect(Collectors.groupingBy(DataItem::getDataTime)); List<DataItem> results = new ArrayList<>(); dateListMap.forEach((key, value) -> { DataItem dataItem = new DataItem(); dataItem.setDataTime(key); //保留四位小数 double totalValue = value.stream().map(data -> BigDecimal.valueOf(data.getValue())) .reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_UP).doubleValue(); dataItem.setValue(totalValue); results.add(dataItem); }); //根据时间排序 results.sort(Comparator.comparing(DataItem::getDataTime)); for (int i = 0; i < dateTimeList.size(); i++) { TypeTime typeTime = dateTimeList.get(i); Optional<DataItem> dataItem = results.stream().filter(result -> result.getDataTime().equals(typeTime.getDateTime())).findFirst(); if (dataItem.isPresent()) { DataItem item = dataItem.get(); PropUtils.setValue(itemVO, "value" + i, item.getValue()); } else { PropUtils.setValue(itemVO, "value" + i, null); } } voList.add(itemVO); vo.setDataList(voList); zhitan-vue/src/views/poweranalysis/pariPassu/index.vue
@@ -156,7 +156,7 @@ function handleNodeClick(data) { queryParams.value.nodeId = data.id queryParams.value.nodeName = data.label handleTimeType(period.value[1].value) handleTimeType("MONTH") listEnergyTypeList().then((res) => { energyTypeList.value = res.data queryParams.value.energyType = energyTypeList.value[0].enersno @@ -168,11 +168,11 @@ function handleTimeType(e) { queryParams.value.timeType = e if (e == "MONTH") { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY-MM") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } else if (e == "YEAR") { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } else { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY-MM-DD") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } } function handleEnergyType(item) { @@ -200,6 +200,7 @@ proxy.addDateRange({ ...queryParams.value, ...query.value, timeCode: queryParams.value.dataTime, }) ).then((res) => { if (!!res.code && res.code == 200) { zhitan-vue/src/views/poweranalysis/perPassu/index.vue
@@ -156,7 +156,7 @@ function handleNodeClick(data) { queryParams.value.nodeId = data.id queryParams.value.nodeName = data.label handleTimeType(period.value[1].value) handleTimeType("MONTH") listEnergyTypeList().then((res) => { energyTypeList.value = res.data queryParams.value.energyType = energyTypeList.value[0].enersno @@ -168,11 +168,11 @@ function handleTimeType(e) { queryParams.value.timeType = e if (e == "MONTH") { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY-MM") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } else if (e == "YEAR") { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } else { queryParams.value.timeCode = proxy.dayjs(new Date()).format("YYYY-MM-DD") queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") } } function handleEnergyType(item) { @@ -200,6 +200,7 @@ proxy.addDateRange({ ...queryParams.value, ...query.value, timeCode: queryParams.value.dataTime, }) ).then((res) => { if (!!res.code && res.code == 200) { @@ -554,11 +555,11 @@ // 能耗对比分析-重置 function resetQuery() { proxy.resetForm("queryRef") handleTimeType(period.value[1].value) queryParams.value.energyType = energyTypeList.value[0].enersno queryParams.value.enername = energyTypeList.value[0].enername queryParams.value.muid = energyTypeList.value[0].muid queryParams.value.analysisType = "MOM" handleTimeType(period.value[1].value) handleQuery() } // 能耗对比分析-导出