From 12ea7330bac0a43818b8ec3a8601119dd609dfb9 Mon Sep 17 00:00:00 2001
From: ustcyc <yincun@163.com>
Date: 星期五, 18 四月 2025 22:43:12 +0800
Subject: [PATCH] Merge branch 'master' of https://github.com/zhitan-cloud/zhitan-ems

---
 zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml |  135 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 96 insertions(+), 39 deletions(-)

diff --git a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
index c704454..d8486ec 100644
--- a/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
+++ b/zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml
@@ -89,9 +89,9 @@
             resultType="com.zhitan.model.domain.EnergyIndex">
         select ei.index_id as indexId, code, name, index_type as indexType
         from energy_index ei
-                 left join node_index ni on ei.index_id = ni.index_id
+        left join node_index ni on ei.index_id = ni.index_id
         where ni.node_id = #{nodeId}
-          and ei.index_type = #{indexType}
+        and ei.index_type = #{indexType}
         <if test="code != null  and code != ''">
             and code like concat('%', #{code}, '%')
         </if>
@@ -292,7 +292,7 @@
     </select>
 
     <select id="getModelNodeIndexIdRelationInforByCode"
-            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
+            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
         SELECT mn.node_id  nodeId,
                mn."name"   "name",
                ni.index_id indexId
@@ -303,7 +303,7 @@
     </select>
 
     <select id="listModelNodeIndexIdRelationInforByParentId"
-            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
+            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
         SELECT mn.node_id  nodeId,
                mn."name"   "name",
                ni.index_id indexId
@@ -313,7 +313,7 @@
     </select>
 
     <select id="getModelNodeIndexIdRelationInforByNodeId"
-            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
+            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
         SELECT mn.node_id  nodeId,
                mn."name"   "name",
                ni.index_id indexId
@@ -332,11 +332,12 @@
                node_category nodeCategory
         FROM "model_node"
         WHERE model_code = #{indexCode}
-          AND parent_id IS NULL LIMIT 1;
+          AND parent_id IS NULL
+        LIMIT 1;
     </select>
     <select id="selectIndexByModelCodeAndNodeId"
-            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
-        SELECT mn.node_id nodeId,
+            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
+        SELECT mn.node_id  nodeId,
                mn."name",
                ni.index_id indexId
         FROM model_node mn
@@ -347,15 +348,15 @@
 
     <select id="getSettingDeviceIndex" resultType="com.zhitan.basicdata.domain.MeterImplement">
         SELECT distinct
-               m."id",
-               m.code,
-               m.meter_name AS meterName,
-               m.meter_type    meterType,
-               m.wire_diameter    wireDiameter,
-               m.max_allowable_power    maxAllowablePower
+        m."id",
+        m.code,
+        m.meter_name AS meterName,
+        m.meter_type meterType,
+        m.wire_diameter wireDiameter,
+        m.max_allowable_power maxAllowablePower
         FROM meter_implement m
-                 LEFT JOIN energy_index ei ON ei.meter_id = m."id"
-                 LEFT JOIN node_index ni ON ni.index_id = ei.index_id
+        LEFT JOIN energy_index ei ON ei.meter_id = m."id"
+        LEFT JOIN node_index ni ON ni.index_id = ei.index_id
         WHERE ni.node_id = #{nodeId}
         <if test="energyType!=null and energyType!=''">
             AND M.energy_type = #{energyType}
@@ -365,11 +366,12 @@
     <delete id="delIndexNodeIdAndIndexType">
         delete
         from node_index
-        where node_id = #{nodeId} and index_id in (
-            select ni.index_id
-            from node_index ni left join energy_index ei on ni.index_id = ei.index_id
-            where node_id = #{nodeId} and ei.index_type = #{indexType}
-        );
+        where node_id = #{nodeId}
+          and index_id in (select ni.index_id
+                           from node_index ni
+                                    left join energy_index ei on ni.index_id = ei.index_id
+                           where node_id = #{nodeId}
+                             and ei.index_type = #{indexType});
     </delete>
     <insert id="setIndexAndNodeId">
         <foreach collection="indexIds" item="indexId" separator=";">
@@ -378,11 +380,13 @@
         </foreach>
     </insert>
 
-    <select id="getModelNodeIndexIdByNodeId" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
-        SELECT mn.node_id  nodeId,
-               mn."name"   "name",
-               ni.index_id indexId,
-               ei.energy_id energyId
+    <select id="getModelNodeIndexIdByNodeId" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
+        SELECT mn.node_id nodeId,
+        mn."name" "name",
+        ni.index_id indexId,
+        ei.energy_id energyId,
+        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
@@ -391,7 +395,7 @@
             and ei.energy_id = #{energyType}
         </if>
     </select>
-    <select id="getModelNodeByParentId" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
+    <select id="getModelNodeByParentId" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
         SELECT mn.node_id  nodeId,
                mn."name"   "name",
                ni.index_id indexId,
@@ -399,16 +403,17 @@
         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
-        WHERE mn.parent_id = #{parentId} and ei.index_type = 'STATISTIC'
+        WHERE mn.parent_id = #{parentId}
+          and ei.index_type = 'STATISTIC'
     </select>
     <select id="getFirstModeNodeInfo" resultType="com.zhitan.model.domain.ModelNode">
         <include refid="selectModelNodeVo"/>
-        where model_code = #{modelCode}  AND parent_id is null
+        where model_code = #{modelCode} AND parent_id is null
         order by order_num
     </select>
-    <select id="selectIndexByNodeIds" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfor">
-        SELECT mn.node_id  nodeId,
-        mn."name"   "name",
+    <select id="selectIndexByNodeIds" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
+        SELECT mn.node_id nodeId,
+        mn."name" "name",
         ni.index_id indexId,
         ei.energy_id
         FROM "model_node" mn
@@ -416,15 +421,67 @@
         left join energy_index ei on ni.index_id = ei.index_id
         <where>
             mn.model_code = #{modelCode}
-          AND mn.node_id in
-        <foreach collection="nodeIds" index="index" item="item" open="(" separator="," close=")">
-            #{item}
-        </foreach>
-        <if test="modelCode!=null and modelCode!='' and nodeIds.size>0">
-            and ei.index_type='STATISTIC'
-        </if>
+            AND mn.node_id in
+            <foreach collection="nodeIds" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            <if test="modelCode!=null and modelCode!='' and nodeIds.size>0">
+                and ei.index_type='STATISTIC'
+            </if>
 
         </where>
 
     </select>
+
+    <select id="getDataItemByParentNodeId" resultType="com.zhitan.dataitem.domain.vo.NodeIndexValueVO">
+        SELECT mn.node_id  nodeId,
+               mn."name"   nodeName,
+               di.index_id indexId,
+               di."value"  value
+        FROM model_node mn
+                 LEFT JOIN "node_index" ni ON mn.node_id = ni.node_id
+                 LEFT JOIN "energy_index" ei ON ei.index_id = ni.index_id
+                 LEFT JOIN "data_item" di ON ei.index_id = di.index_id
+        WHERE mn.parent_id = #{parentId}
+          AND ei.energy_id = #{energyType}
+          AND ei.index_type = 'STATISTIC'
+          AND di.time_type = #{timeType.name}
+          AND di.data_time >= #{dateTimeMap.startTime}
+          AND di.data_time &lt;= #{dateTimeMap.endTime}
+    </select>
+
+    <select id="getDataItemByNodeId" resultType="com.zhitan.dataitem.domain.vo.NodeIndexValueVO">
+        SELECT mn.node_id  nodeId,
+               mn."name"   nodeName,
+               di.index_id indexId,
+               di."value"  value
+        FROM "model_node" mn
+                 LEFT JOIN "node_index" ni ON mn.node_id = ni.node_id
+                 LEFT JOIN "energy_index" ei ON ei.index_id = ni.index_id
+                 LEFT JOIN "data_item" di ON ei.index_id = di.index_id
+        WHERE mn.node_id = #{nodeId}
+          AND ei.energy_id = #{energyType}
+          AND ei.index_type = 'STATISTIC'
+          AND di.time_type = #{timeType.name}
+          AND di.data_time >= #{dateTimeMap.startTime}
+          AND di.data_time &lt;= #{dateTimeMap.endTime}
+    </select>
+    <select id="getAllModelNodeIndexByAddress" resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
+        SELECT
+            mn.node_id nodeId,
+            mn.code nodeCode,
+            mn."name" nodeName,
+            ni.index_id indexId,
+            ei."name" indexName,
+            ei.index_type indexType,
+            mi.energy_type
+        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
+                LEFT JOIN meter_implement mi ON mi."id" = ei.meter_id
+        WHERE
+            mn.model_code = #{modelCode}
+          AND mn.address LIKE concat( #{address} , '%' )
+    </select>
 </mapper>

--
Gitblit v1.9.3