DYL0109
2025-04-16 75f043dfa6660716364e66ee0b3cf99f44255686
zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml
@@ -184,7 +184,7 @@
      <if test="energyId != null">#{energyId},
      </if>
    </trim>
  </insert>
  <insert id="insertNodeIndex">
    insert into node_index (node_id, index_id) values (#{nodeId}, #{indexId});
@@ -303,11 +303,11 @@
    from energy_index
    where meter_id = #{meterId}
  </delete>
  <delete id="removeNodeIndex">
    delete from node_index where node_id = #{nodeId} and index_id in
    <foreach item="indexId" collection="indexIds" open="(" separator="," close=")">
  <delete id="removeEnergyIndex">
    delete from energy_index where index_id in
    <foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
      #{indexId}
    </foreach>;
    </foreach>
  </delete>
  <select id="getEnergyIndexMeterByCodes" resultMap="EnergyIndexResult">
@@ -331,7 +331,7 @@
    and ei.meter_id = me.id
    order by ei.order_num
  </select>
  <select id="selectEnergyIndexPage" resultMap="EnergyIndexResult">
    select ni.index_id, name, code, index_type, remark, unit_id, index_category
    from energy_index ei left join node_index ni on ei.index_id = ni.index_id
@@ -346,7 +346,7 @@
      </if>
    </where>
    order by ei.order_num
  </select>
    <select id="listIndexByMeterIds" resultType="com.zhitan.model.domain.EnergyIndex">
      select ei.index_id,
@@ -363,7 +363,7 @@
      from energy_index ei
      left join node_index ni on ei.index_id = ni.index_id
      <where>
        <if test="nodeId != null  and nodeId != ''">and ni.node_id = #{nodeId}</if>
        <if test="meterIds != null">
          and ei.meter_id in
@@ -377,4 +377,54 @@
    <include refid="selectEnergyIndexVo"/>
    where code = #{cdoe}
  </select>
  <select id="getIndexByCode" resultType="com.zhitan.model.domain.EnergyIndex">
    SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei
    LEFT JOIN node_device nd on ei.meter_id =  nd.device_id
    LEFT JOIN meter_implement  mi on mi."id" = nd.device_id
    <where>
        <if test="nodeId != null  and nodeId != ''">and nd.node_id  = #{nodeId}</if>
        <if test="code != null  and code != ''">
          and (mi.meter_name like concat('%', #{code}, '%')
          or ei.code like concat('%', #{code}, '%')
          or ei.name like concat('%', #{code}, '%')
          )
        </if>
    </where>
  </select>
  <select id="getIndexByMeterIdIndexCode" resultType="com.zhitan.model.domain.EnergyIndex">
    SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei
    LEFT JOIN node_device nd on ei.meter_id =  nd.device_id
    LEFT JOIN meter_implement  mi on mi."id" = nd.device_id
    <where>
        <if test="nodeId != null  and nodeId != ''">and nd.node_id  = #{nodeId}</if>
        <if test="indexCode != null  and indexCode != ''">
          and (mi.meter_name like concat('%', #{indexCode}, '%')
          or ei.code like concat('%', #{indexCode}, '%')
          or ei.name like concat('%', #{indexCode}, '%')
          )
        </if>
        <if test="meterId != null  and meterId != ''">
          and ei.meter_id = #{meterId}
        </if>
    </where>
  </select>
    <select id="getModelNodeIndexInfoListByIndexIds"
            resultType="com.zhitan.model.domain.vo.ModelNodeIndexInfo">
        SELECT    mi.model_name modelName,
          mi.model_code,
          mn."name" "name",
          ei.index_id,
          ei.code indexCode,
          ei."name" indexName,
          ei.energy_id,
          ei.energy_id
        FROM node_index ni
        INNER JOIN energy_index ei ON ni.index_id = ei.index_id
        LEFT JOIN model_node mn ON ni.node_id = mn.node_id
        LEFT JOIN model_info mi ON mn.model_code = mi.model_code
        WHERE ei.index_id IN
        <foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
            #{indexId}
        </foreach>
    </select>
</mapper>