From 23254bb2239591b92100fa6b22f41c4f4d0e5ca8 Mon Sep 17 00:00:00 2001
From: ustcyc <yincun@163.com>
Date: 星期五, 28 三月 2025 17:36:53 +0800
Subject: [PATCH] Merge pull request #42 from Andy-Yin/develop1.0
---
zhitan-vue/src/views/poweranalysis/perPassu/index.vue | 11 ++++++-----
zhitan-vue/src/views/poweranalysis/pariPassu/index.vue | 9 +++++----
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java | 31 +++++++++++++++++++++++++++++--
3 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
index edc291a..1b895d7 100644
--- a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
+++ b/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);
diff --git a/zhitan-vue/src/views/poweranalysis/pariPassu/index.vue b/zhitan-vue/src/views/poweranalysis/pariPassu/index.vue
index a1221a9..1da4671 100644
--- a/zhitan-vue/src/views/poweranalysis/pariPassu/index.vue
+++ b/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) {
diff --git a/zhitan-vue/src/views/poweranalysis/perPassu/index.vue b/zhitan-vue/src/views/poweranalysis/perPassu/index.vue
index b37d75a..d38108c 100644
--- a/zhitan-vue/src/views/poweranalysis/perPassu/index.vue
+++ b/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()
}
// 鑳借�楀姣斿垎鏋�-瀵煎嚭
--
Gitblit v1.9.3