From 36a9d5bf9ac0c80bf051e159635ee749b0f10d07 Mon Sep 17 00:00:00 2001 From: VVT789 <67089238+VVT789@users.noreply.github.com> Date: 星期三, 26 三月 2025 11:24:44 +0800 Subject: [PATCH] Merge pull request #35 from Andy-Yin/develop1.0 --- zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) diff --git a/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java new file mode 100644 index 0000000..443fc99 --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java @@ -0,0 +1,91 @@ +package com.zhitan.branchanalysis.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.zhitan.branchanalysis.domain.BranchAnalysisVO; +import com.zhitan.common.constant.TimeTypeConst; +import com.zhitan.common.exception.ServiceException; +import com.zhitan.common.utils.DateTimeUtil; +import com.zhitan.branchanalysis.service.IBranchAnalysisService; +import com.zhitan.common.utils.PropUtils; +import com.zhitan.dataitem.mapper.DataItemMapper; +import com.zhitan.model.domain.vo.ModelNodeIndexInfo; +import com.zhitan.model.domain.vo.ModelNodeIndexInfor; +import com.zhitan.model.mapper.ModelNodeMapper; +import com.zhitan.realtimedata.domain.DataItem; +import com.zhitan.realtimedata.domain.dto.BranchAnalysisDTO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * c + * + * @author sys + * @date 2021-01-11 + */ +@Service +@AllArgsConstructor +public class BranchAnalysisServiceImpl implements IBranchAnalysisService { + + private ModelNodeMapper modelNodeMapper; + private DataItemMapper dataItemMapper; + + @Override + public BranchAnalysisVO getBranchAnalysisService(BranchAnalysisDTO dto) { + String timeType = dto.getTimeType(); + String dataTime = dto.getDataTime(); + Date beginTime = DateTimeUtil.getTypeTime(timeType, dataTime); + DateTime endTime = null; + + List<ModelNodeIndexInfo> nodeIndexInfo = modelNodeMapper.getModelNodeIndexIdByNodeId(dto.getNodeId(), dto.getEnergyType()); + List<String> indexlist = nodeIndexInfo.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toList()); + + if (ObjectUtil.isEmpty(indexlist)) { + return new BranchAnalysisVO(); + } + + ModelNodeIndexInfo info = nodeIndexInfo.stream().findFirst().get(); + + //鏍规嵁鏃堕棿绫诲瀷璋冩暣鏃堕棿鑼冨洿 + switch (dto.getTimeType()) { + case TimeTypeConst.TIME_TYPE_DAY: + timeType = TimeTypeConst.TIME_TYPE_HOUR; + endTime = DateUtil.endOfDay(beginTime); + break; + case TimeTypeConst.TIME_TYPE_MONTH: + timeType = TimeTypeConst.TIME_TYPE_DAY; + endTime = DateUtil.endOfMonth(beginTime); + break; + case TimeTypeConst.TIME_TYPE_YEAR: + timeType = TimeTypeConst.TIME_TYPE_MONTH; + endTime = DateUtil.endOfYear(beginTime); + break; + default: + throw new ServiceException("鏃堕棿鏍煎紡閿欒"); + } + //鑾峰彇鏁版嵁椤瑰垪琛� + List<DataItem> dataItemlist = dataItemMapper.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, timeType, indexlist); + + BranchAnalysisVO vo = new BranchAnalysisVO(); + double sum = dataItemlist.stream().mapToDouble(DataItem::getValue).sum(); + vo.setTotal(sum); + if (ObjectUtil.isNotEmpty(info.getIndexId())) { + vo.setUntil(info.getUnitId()); + } + + vo.setNodeId(info.getNodeId()); + vo.setNodeName(info.getName()); + for (int i = 0; i < dataItemlist.size(); i++) { + PropUtils.setValue(vo, "value" + i, dataItemlist.get(i).getValue()); + } + + return vo; + + + } +} -- Gitblit v1.9.3