From ea5366e3995e2a1679ca9867795fbeb9d3b4c1f4 Mon Sep 17 00:00:00 2001
From: z1415143022 <z1415143022@163.com>
Date: 星期二, 25 三月 2025 20:22:34 +0800
Subject: [PATCH] Merge pull request #32 from Andy-Yin/zhangjw
---
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisVO.java | 38 ++++
zhitan-admin/src/main/java/com/zhitan/web/controller/itemizedenergyanalysis/ItemizedEnergyAnalysisController.java | 36 ++++
zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfo.java | 6
zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java | 43 ++++
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisItemVO.java | 85 +++++++++
sql/zhitan-ems_20250325182628.nb3 | 0
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/dto/ItemizedEnergyAnalysisDTO.java | 23 ++
zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java | 124 +++++++++++++
zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml | 3
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/IItemizedEnergyAnalysisService.java | 13 +
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java | 113 ++++++++++++
11 files changed, 481 insertions(+), 3 deletions(-)
diff --git a/sql/zhitan-ems_20250325182628.nb3 b/sql/zhitan-ems_20250325182628.nb3
new file mode 100644
index 0000000..6102f1e
--- /dev/null
+++ b/sql/zhitan-ems_20250325182628.nb3
Binary files differ
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/itemizedenergyanalysis/ItemizedEnergyAnalysisController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/itemizedenergyanalysis/ItemizedEnergyAnalysisController.java
new file mode 100644
index 0000000..80badb9
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/itemizedenergyanalysis/ItemizedEnergyAnalysisController.java
@@ -0,0 +1,36 @@
+package com.zhitan.web.controller.itemizedenergyanalysis;
+
+import com.zhitan.Itemizedenergyanalysis.domain.VO.ItemizedEnergyAnalysisVO;
+import com.zhitan.Itemizedenergyanalysis.dto.ItemizedEnergyAnalysisDTO;
+import com.zhitan.Itemizedenergyanalysis.service.IItemizedEnergyAnalysisService;
+import com.zhitan.common.core.domain.AjaxResult;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static com.zhitan.common.core.domain.AjaxResult.success;
+
+/**
+ * 鍒嗛」鐢ㄨ兘鍒嗘瀽 鎺ュ彛
+ */
+@RestController
+@RequestMapping("/itemizedEnergyAnalysis")
+@Api(value = "鍒嗛」鐢ㄨ兘鍒嗘瀽", tags = {"鍒嗛」鐢ㄨ兘鍒嗘瀽"})
+public class ItemizedEnergyAnalysisController {
+
+ @Autowired
+ private IItemizedEnergyAnalysisService itemizedEnergyAnalysisService;
+
+ /**
+ *
+ * @param dataItem
+ * @return
+ */
+ @GetMapping("/list")
+ private AjaxResult list(ItemizedEnergyAnalysisDTO dataItem) {
+ ItemizedEnergyAnalysisVO list = itemizedEnergyAnalysisService.getItemizedEnergyAnalysisService(dataItem);
+ return success(list);
+ }
+}
\ No newline at end of file
diff --git a/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java
new file mode 100644
index 0000000..411b6e5
--- /dev/null
+++ b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java
@@ -0,0 +1,124 @@
+package com.zhitan.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 灞炴�у�兼搷浣滃伐鍏风被
+ * @author: yxw
+ * @date: 2022骞�03鏈�07鏃� 9:57
+ */
+public class PropUtils {
+ /**
+ * 涓哄疄浣撹祴鍊�
+ *
+ * @param obj
+ * @param propName
+ * @param value
+ * @return
+ */
+ public static Object setValue(Object obj, String propName, Object value) {
+ try {
+ Field field = obj.getClass().getDeclaredField(propName);
+ field.setAccessible(true);
+ String nameTypeName = field.getType().getTypeName();
+ nameTypeName = StringUtil.ifEmptyOrNullReturnValue(nameTypeName).toLowerCase();
+ if (nameTypeName.contains("float")) {
+ float num = (float) DoubleUtil.toDouble(value);
+ field.set(obj, num);
+ } else if (nameTypeName.contains("double")) {
+ field.set(obj, DoubleUtil.toDouble(value));
+ } else if (nameTypeName.contains("bigdecimal")) {
+ BigDecimal valueOf = BigDecimal.valueOf(Double.parseDouble(String.valueOf(value)))
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ field.set(obj, valueOf);
+ } else {
+ field.set(obj, value);
+ }
+ } catch (Exception e) {
+ return null;
+ }
+ return obj;
+ }
+
+ /**
+ * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑鍊�
+ *
+ * @param obj
+ * @param propName
+ * @return
+ */
+ public static String getPropValue(Object obj, String propName) {
+ String propValue = "";
+ try {
+ if (null != obj) {
+ JSONObject jsonObject = StringUtil.toJsonObject(obj);
+ if (!StringUtil.isEmptyOrNull(propName)) {
+ propValue = jsonObject.getString(propName);
+ }
+ }
+ } catch (Exception e) {
+ }
+ return propValue;
+ }
+
+ /**
+ * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑绫诲瀷
+ * 杩斿洖灞炴�х殑绫诲瀷瀛楃涓诧紙灏忓啓锛屼緥濡�:string/integer/double/date锛�
+ *
+ * @param obj 瀹炰綋
+ * @param propName 灞炴�у悕
+ * @return 锛堝皬鍐欙紝渚嬪:string/integer/double/date锛�
+ */
+ public static String getPropType(Object obj, String propName) {
+ String propType = "";
+ try {
+ if (null != obj && !StringUtil.isEmptyOrNull(propName)) {
+ Field[] fields = obj.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ String name = field.getName().toLowerCase();
+ if (name.equals(propName.toLowerCase())) {
+ propType = field.getType().getSimpleName().toLowerCase();
+ }
+ }
+ }
+
+ } catch (Exception e) {
+
+ }
+ return propType;
+ }
+
+ /**
+ * 琛岃浆鍒�
+ * @param clazz 缁撴灉绫伙紝濡� UserInfo.class
+ * @param list 鏁版嵁闆�
+ * @return
+ * @param <T>
+ */
+ public static <T> List rowToColumn(Class<T> clazz, List<T> list){
+ List<List> result;
+ Field[] fields = clazz.getDeclaredFields();
+ result = new ArrayList<>(fields.length);
+ for (int i = 0; i < fields.length; i++) {
+ result.add(new ArrayList());
+ }
+ for (T t : list) {
+ for (int i = 0; i < fields.length; i++) {
+ List l = result.get(i);
+ Field field = fields[i];
+ field.setAccessible(true);
+ try {
+ l.add(field.get(t));
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisItemVO.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisItemVO.java
new file mode 100644
index 0000000..3984bb6
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisItemVO.java
@@ -0,0 +1,85 @@
+package com.zhitan.Itemizedenergyanalysis.domain.VO;
+
+import com.zhitan.common.annotation.Excel;
+import lombok.Data;
+
+/**
+ *
+ */
+@Data
+public class ItemizedEnergyAnalysisItemVO {
+ /**
+ * 鑺傜偣id
+ */
+ private String nodeId;
+ /**
+ * 鑺傜偣鍚嶇О
+ */
+ private String nodeName;
+ /**
+ * 鍚堣
+ */
+ private Double total;
+ @Excel(name = "1鏃�/1鏃�/1鏈�")
+ private Double value0;
+ @Excel(name = "2鏃�/2鏃�/2鏈�")
+ private Double value1;
+ @Excel(name = "3鏃�/3鏃�/3鏈�")
+ private Double value2;
+ @Excel(name = "4鏃�/4鏃�/4鏈�")
+ private Double value3;
+ @Excel(name = "5鏃�/5鏃�/5鏈堟棩")
+ private Double value4;
+ @Excel(name = "6鏃�/6鏃�/6鏈堟棩")
+ private Double value5;
+ @Excel(name = "7鏃�/7鏃�/7鏈堟棩")
+ private Double value6;
+ @Excel(name = "8鏃�/8鏃�/8鏈堟棩")
+ private Double value7;
+ @Excel(name = "9鏃�/9鏃�/9鏈堟棩")
+ private Double value8;
+ @Excel(name = "10鏃�/10鏃�/10鏈堟棩")
+ private Double value9;
+ @Excel(name = "11鏃�/11鏃�/11鏈堟棩")
+ private Double value10;
+ @Excel(name = "12鏃�/12鏃�/12鏈�")
+ private Double value11;
+ @Excel(name = "13鏃�/13鏃�")
+ private Double value12;
+ @Excel(name = "14鏃�/14鏃�")
+ private Double value13;
+ @Excel(name = "15鏃�/15鏃�")
+ private Double value14;
+ @Excel(name = "16鏃�/16鏃�")
+ private Double value15;
+ @Excel(name = "17鏃�/17鏃�")
+ private Double value16;
+ @Excel(name = "18鏃�/18鏃�")
+ private Double value17;
+ @Excel(name = "19鏃�/19鏃�")
+ private Double value18;
+ @Excel(name = "20鏃�/20鏃�")
+ private Double value19;
+ @Excel(name = "21鏃�/21鏃�")
+ private Double value20;
+ @Excel(name = "22鏃�/22鏃�")
+ private Double value21;
+ @Excel(name = "23鏃�/23鏃�")
+ private Double value22;
+ @Excel(name = "24鏃�/24鏃�")
+ private Double value23;
+ @Excel(name = "25鏃�")
+ private Double value24;
+ @Excel(name = "26鏃�")
+ private Double value25;
+ @Excel(name = "27鏃�")
+ private Double value26;
+ @Excel(name = "28鏃�")
+ private Double value27;
+ @Excel(name = "29鏃�")
+ private Double value28;
+ @Excel(name = "30鏃�")
+ private Double value29;
+ @Excel(name = "31鏃�")
+ private Double value30;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisVO.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisVO.java
new file mode 100644
index 0000000..1e6db62
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/domain/VO/ItemizedEnergyAnalysisVO.java
@@ -0,0 +1,38 @@
+package com.zhitan.Itemizedenergyanalysis.domain.VO;
+
+import com.zhitan.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍒嗛」鐢ㄨ兘鍒嗘瀽杩斿洖绫�
+ *
+ * @author 寮�
+ */
+@Data
+public class ItemizedEnergyAnalysisVO {
+
+ /**
+ * 鍚堣
+ */
+ private String total;
+ /**
+ * 鏈�澶у��
+ */
+ private String max;
+ /**
+ * 鏈�灏忓��
+ */
+ private String min;
+ /**
+ * 骞冲潎鍊�
+ */
+ private String avg;
+ /**
+ * 鍗曚綅
+ */
+ private String unit;
+
+ private List<ItemizedEnergyAnalysisItemVO> dataList;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/dto/ItemizedEnergyAnalysisDTO.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/dto/ItemizedEnergyAnalysisDTO.java
new file mode 100644
index 0000000..b161b87
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/dto/ItemizedEnergyAnalysisDTO.java
@@ -0,0 +1,23 @@
+package com.zhitan.Itemizedenergyanalysis.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鍛ㄦ湡鏁版嵁椤�.
+ */
+@Data
+public class ItemizedEnergyAnalysisDTO {
+
+ @ApiModelProperty(value = "鏃堕棿瀛楃涓�")
+ private String dataTime;
+
+ @ApiModelProperty(value = "鏃堕棿绫诲瀷")
+ private String timeType;
+
+ @ApiModelProperty(value = "鑳芥簮绫诲瀷")
+ private String energyType;
+
+ @ApiModelProperty(value = "鑺傜偣Id")
+ private String nodeId;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/IItemizedEnergyAnalysisService.java b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/IItemizedEnergyAnalysisService.java
new file mode 100644
index 0000000..1c72f44
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/IItemizedEnergyAnalysisService.java
@@ -0,0 +1,13 @@
+package com.zhitan.Itemizedenergyanalysis.service;
+
+import com.zhitan.Itemizedenergyanalysis.domain.VO.ItemizedEnergyAnalysisVO;
+import com.zhitan.Itemizedenergyanalysis.dto.ItemizedEnergyAnalysisDTO;
+
+public interface IItemizedEnergyAnalysisService {
+ /**
+ * 鍒嗛」鐢ㄨ兘鍒嗘瀽
+ * @param dto 璇锋眰鍙傛暟
+ * @return 缁撴灉
+ */
+ ItemizedEnergyAnalysisVO getItemizedEnergyAnalysisService(ItemizedEnergyAnalysisDTO dto);
+}
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
new file mode 100644
index 0000000..6b8fb0d
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
@@ -0,0 +1,113 @@
+package com.zhitan.Itemizedenergyanalysis.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.zhitan.Itemizedenergyanalysis.domain.VO.ItemizedEnergyAnalysisItemVO;
+import com.zhitan.Itemizedenergyanalysis.domain.VO.ItemizedEnergyAnalysisVO;
+import com.zhitan.Itemizedenergyanalysis.dto.ItemizedEnergyAnalysisDTO;
+import com.zhitan.Itemizedenergyanalysis.service.IItemizedEnergyAnalysisService;
+import com.zhitan.common.constant.TimeTypeConst;
+import com.zhitan.common.exception.ServiceException;
+import com.zhitan.common.utils.DateTimeUtil;
+import com.zhitan.common.utils.PropUtils;
+import com.zhitan.dataitem.service.IDataItemService;
+import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
+import com.zhitan.model.mapper.ModelNodeMapper;
+import com.zhitan.realtimedata.domain.DataItem;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * 鍒嗛」鐢ㄨ兘鍒嗘瀽
+ *
+ * @author sys
+ * @date 2025-03-25
+ */
+@Service
+@AllArgsConstructor
+public class ItemizedEnergyAnalysisServiceImpl implements IItemizedEnergyAnalysisService {
+
+ @Resource
+ private final ModelNodeMapper modelNodeMapper;
+ @Resource
+ private final IDataItemService dataItemService;
+
+ /**
+ * @param dto 璇锋眰鍙傛暟
+ * @return 缁撴灉
+ */
+ @Override
+ public ItemizedEnergyAnalysisVO getItemizedEnergyAnalysisService(ItemizedEnergyAnalysisDTO 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 ItemizedEnergyAnalysisVO();
+ }
+
+ 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 = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, timeType, indexList);
+
+ // 鑾峰彇鏈�澶у�笺�佹渶灏忓�笺�佸悎璁°�佸钩鍧囧��
+ ItemizedEnergyAnalysisVO vo = new ItemizedEnergyAnalysisVO();
+ double sum = dataItemList.stream().mapToDouble(DataItem::getValue).sum();
+ double max = dataItemList.stream().mapToDouble(DataItem::getValue).max().getAsDouble();
+ double min = dataItemList.stream().mapToDouble(DataItem::getValue).min().getAsDouble();
+ double avg = dataItemList.stream().mapToDouble(DataItem::getValue).average().getAsDouble();
+
+ vo.setTotal(BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).toString());
+ vo.setMax(BigDecimal.valueOf(max).setScale(2, RoundingMode.HALF_UP).toString());
+ vo.setMin(BigDecimal.valueOf(min).setScale(2, RoundingMode.HALF_UP).toString());
+ vo.setAvg(BigDecimal.valueOf(avg).setScale(2, RoundingMode.HALF_UP).toString());
+ if(ObjectUtil.isNotEmpty(info.getUnitId())){
+ vo.setUnit(info.getUnitId());
+ }
+
+ List<ItemizedEnergyAnalysisItemVO> voList = new ArrayList<>();
+ ItemizedEnergyAnalysisItemVO itemVO = new ItemizedEnergyAnalysisItemVO();
+ 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());
+ }
+ voList.add(itemVO);
+ vo.setDataList(voList);
+
+ return vo;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfo.java b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfo.java
index a99de97..cd2b19c 100644
--- a/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfo.java
+++ b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfo.java
@@ -38,7 +38,6 @@
* 鍚嶇О
*/
private String nodeName;
-
/**
* 鐐逛綅id
*/
@@ -60,5 +59,8 @@
* 鐐逛綅绫诲瀷
*/
private String indexType;
-
+ /**
+ * 鍗曚綅
+ */
+ private String unitId;
}
diff --git a/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java
new file mode 100644
index 0000000..559f6c3
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java
@@ -0,0 +1,43 @@
+package com.zhitan.model.domain.vo;
+
+
+import com.zhitan.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 妯″瀷鑺傜偣涓庣偣浣嶅叧绯诲璞�
+ *
+ * @Author: Zhujw
+ * @Date: 2023/3/2
+ */
+@Data
+public class ModelNodeIndexInfor extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭
+ */
+ private String nodeId;
+
+ /**
+ * 鍚嶇О
+ */
+ private String name;
+
+ /**
+ * 鐐逛綅id
+ */
+ private String indexId;
+
+ /**
+ * 鑳芥簮绫诲瀷
+ */
+ private String energyId;
+
+ /**
+ * 鍗曚綅
+ */
+ private String unitId;
+
+ private String indexType;
+}
diff --git a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
index ab63dde..eb7fbde 100644
--- a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
+++ b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
@@ -385,7 +385,8 @@
mn."name" "name",
ni.index_id indexId,
ei.energy_id energyId,
- ei.index_type indexType
+ ei.index_type indexType,
+ ei.unit_id unitId
FROM "model_node" mn
LEFT JOIN "node_index" ni ON mn.node_id = ni.node_id
LEFT JOIN energy_index ei on ni.index_id = ei.index_id
--
Gitblit v1.9.3