<?xml version="1.0" encoding="UTF-8" ?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.battery.business.mapper.TDeviceAdapterMapper">
|
<resultMap id="AdapterResult" type="TDeviceAdapter">
|
<id property="adapterId" column="adapter_id"/>
|
<result property="adapterCode" column="adapter_code"/>
|
<result property="adapterName" column="adapter_name"/>
|
<result property="adapterType" column="adapter_type"/>
|
<result property="host" column="host"/>
|
<result property="port" column="port"/>
|
<result property="pollIntervalMs" column="poll_interval_ms"/>
|
<result property="timezoneId" column="timezone_id"/>
|
<result property="capabilities" column="capabilities"/>
|
<result property="readOnly" column="read_only"/>
|
<result property="status" column="status"/>
|
<result property="connectionStatus" column="connection_status"/>
|
<result property="lastErrorCode" column="last_error_code"/>
|
<result property="lastErrorMessage" column="last_error_message"/>
|
<result property="lastAttemptAtUtc" column="last_attempt_at_utc"/>
|
<result property="lastObservedAtUtc" column="last_observed_at_utc"/>
|
<result property="createBy" column="create_by"/>
|
<result property="createTime" column="create_time"/>
|
<result property="updateBy" column="update_by"/>
|
<result property="updateTime" column="update_time"/>
|
<result property="remark" column="remark"/>
|
<result property="delFlag" column="del_flag"/>
|
</resultMap>
|
|
<sql id="adapterColumns">
|
adapter_id, adapter_code, adapter_name, adapter_type, host, port, poll_interval_ms, timezone_id,
|
capabilities, (json_extract(capabilities, '$.control') = false) read_only, status,
|
connection_status, last_error_code, last_error_message, last_attempt_at_utc, last_observed_at_utc,
|
create_by, create_time, update_by, update_time, remark, del_flag
|
</sql>
|
|
<select id="selectDeviceAdapterList" parameterType="TDeviceAdapter" resultMap="AdapterResult">
|
select <include refid="adapterColumns"/> from t_device_adapter
|
<where>
|
del_flag = 0
|
<if test="adapterName != null and adapterName != ''">
|
and (adapter_name like concat('%', #{adapterName}, '%') or adapter_code like concat('%', #{adapterName}, '%'))
|
</if>
|
<if test="status != null and status != ''">and status = #{status}</if>
|
<if test="connectionStatus != null and connectionStatus != ''">and connection_status = #{connectionStatus}</if>
|
</where>
|
order by adapter_id desc
|
</select>
|
|
<select id="selectEnabledDeviceAdapters" resultMap="AdapterResult">
|
select <include refid="adapterColumns"/> from t_device_adapter where status = '0' and del_flag = 0
|
</select>
|
|
<select id="selectDeviceAdapterById" resultMap="AdapterResult">
|
select <include refid="adapterColumns"/> from t_device_adapter where adapter_id = #{adapterId} and del_flag = 0
|
</select>
|
|
<select id="selectDeviceAdapterByCode" resultMap="AdapterResult">
|
select <include refid="adapterColumns"/> from t_device_adapter where adapter_code = #{adapterCode} and del_flag = 0 limit 1
|
</select>
|
|
<!-- 应用装配层提供托管配置;持久化层仅负责按稳定编码幂等恢复。 -->
|
<insert id="upsertManagedDeviceAdapter" parameterType="TDeviceAdapter">
|
insert into t_device_adapter(adapter_code, adapter_name, adapter_type, host, port, poll_interval_ms,
|
timezone_id, capabilities, status, connection_status, create_by, create_time, update_by, update_time,
|
remark, del_flag)
|
values(#{adapterCode}, #{adapterName}, #{adapterType}, #{host}, #{port}, #{pollIntervalMs}, #{timezoneId},
|
#{capabilities}, '0', 'OFFLINE', 'system', sysdate(), 'system', sysdate(), #{remark}, 0)
|
on duplicate key update adapter_name=values(adapter_name), adapter_type=values(adapter_type),
|
host=values(host), port=values(port), poll_interval_ms=values(poll_interval_ms),
|
timezone_id=values(timezone_id), capabilities=values(capabilities), status='0',
|
connection_status='OFFLINE', last_error_code=null, last_error_message=null,
|
update_by='system', update_time=sysdate(), remark=values(remark), del_flag=0
|
</insert>
|
|
<insert id="insertDeviceAdapter" parameterType="TDeviceAdapter" useGeneratedKeys="true" keyProperty="adapterId">
|
insert into t_device_adapter(adapter_code, adapter_name, adapter_type, host, port, poll_interval_ms,
|
timezone_id, capabilities, status, connection_status, create_by, create_time, remark, del_flag)
|
values(#{adapterCode}, #{adapterName}, #{adapterType}, #{host}, #{port}, #{pollIntervalMs},
|
#{timezoneId}, #{capabilities}, #{status}, 'OFFLINE', #{createBy}, sysdate(), #{remark}, 0)
|
</insert>
|
|
<update id="updateDeviceAdapter" parameterType="TDeviceAdapter">
|
update t_device_adapter set adapter_name=#{adapterName}, adapter_type=#{adapterType}, host=#{host}, port=#{port},
|
poll_interval_ms=#{pollIntervalMs}, timezone_id=#{timezoneId}, capabilities=#{capabilities},
|
connection_status='OFFLINE', last_error_code=null, last_error_message=null,
|
update_by=#{updateBy}, update_time=sysdate()
|
where adapter_id=#{adapterId} and del_flag=0
|
</update>
|
|
<update id="updateDeviceAdapterStatus">
|
update t_device_adapter set status=#{status}, connection_status='OFFLINE',
|
last_error_code=null, last_error_message=null, update_by=#{updateBy}, update_time=sysdate()
|
where adapter_id=#{adapterId} and del_flag=0
|
</update>
|
|
<update id="updateDiscoverySuccess">
|
update t_device_adapter set connection_status='ONLINE', last_error_code=null, last_error_message=null,
|
last_attempt_at_utc=#{observedAt}, last_observed_at_utc=#{observedAt}, update_time=sysdate()
|
where adapter_id=#{adapterId} and del_flag=0
|
</update>
|
|
<update id="updateDiscoveryFailure">
|
update t_device_adapter set connection_status='OFFLINE', last_error_code=#{errorCode},
|
last_error_message=left(#{errorMessage}, 500), last_attempt_at_utc=utc_timestamp(3), update_time=sysdate()
|
where adapter_id=#{adapterId} and del_flag=0
|
</update>
|
|
</mapper>
|