ustcyc
2025-03-28 4daff68fd4971e74c6637044912a1789fe148714
Merge branch 'master' of https://github.com/Andy-Yin/zhitan-ems
已修改3个文件
51 ■■■■ 文件已修改
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-vue/src/views/poweranalysis/pariPassu/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-vue/src/views/poweranalysis/perPassu/index.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()
}
// 能耗对比分析-导出