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