<?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.dy.pipIrrGlobal.daoPr.PrControllerMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<!--@mbg.generated-->
|
<!--@Table pr_controller-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="intakeId" jdbcType="BIGINT" property="intakeId" />
|
<result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" />
|
<result column="protocol" jdbcType="VARCHAR" property="protocol" />
|
<result column="findDt" jdbcType="TIMESTAMP" property="findDt" />
|
<result column="orgTag" jdbcType="VARCHAR" property="orgTag" />
|
<result column="addWays" jdbcType="TINYINT" property="addWays" />
|
<result column="operator" jdbcType="BIGINT" property="operator" />
|
<result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" />
|
<result column="deleted" jdbcType="TINYINT" property="deleted" />
|
</resultMap>
|
<resultMap id="PartResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="intakeId" jdbcType="BIGINT" property="intakeId" />
|
<result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" />
|
</resultMap>
|
|
<sql id="Base_Column_List">
|
<!--@mbg.generated-->
|
id, intakeId, rtuAddr, protocol, findDt, orgTag, addWays, `operator`, operateDt, deleted
|
</sql>
|
<sql id="Part_Column_List">
|
<!--@mbg.generated-->
|
id, rtuAddr, intakeId
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List" />
|
from pr_controller
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from pr_controller
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<!--@mbg.generated-->
|
insert into pr_controller (id, intakeId, rtuAddr,
|
protocol, findDt, orgTag, addWays,
|
`operator`, operateDt, deleted
|
)
|
values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR},
|
#{protocol,jdbcType=VARCHAR}, #{findDt,jdbcType=TIMESTAMP}, #{orgTag,jdbcType=VARCHAR},
|
#{addWays,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP},
|
#{deleted,jdbcType=TINYINT}
|
)
|
</insert>
|
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<!--@mbg.generated-->
|
insert into pr_controller
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="intakeId != null">
|
intakeId,
|
</if>
|
<if test="rtuAddr != null">
|
rtuAddr,
|
</if>
|
<if test="protocol != null">
|
protocol,
|
</if>
|
<if test="findDt != null">
|
findDt,
|
</if>
|
<if test="orgTag != null">
|
orgTag,
|
</if>
|
<if test="addWays != null">
|
addWays,
|
</if>
|
<if test="operator != null">
|
`operator`,
|
</if>
|
<if test="operateDt != null">
|
operateDt,
|
</if>
|
<if test="deleted != null">
|
deleted,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
#{id,jdbcType=BIGINT},
|
</if>
|
<if test="intakeId != null">
|
#{intakeId,jdbcType=BIGINT},
|
</if>
|
<if test="rtuAddr != null">
|
#{rtuAddr,jdbcType=VARCHAR},
|
</if>
|
<if test="protocol != null">
|
#{protocol,jdbcType=VARCHAR},
|
</if>
|
<if test="findDt != null">
|
#{findDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="orgTag != null">
|
#{orgTag,jdbcType=VARCHAR},
|
</if>
|
<if test="addWays != null">
|
#{addWays,jdbcType=TINYINT},
|
</if>
|
<if test="operator != null">
|
#{operator,jdbcType=BIGINT},
|
</if>
|
<if test="operateDt != null">
|
#{operateDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
#{deleted,jdbcType=TINYINT},
|
</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<!--@mbg.generated-->
|
update pr_controller
|
<set>
|
<if test="intakeId != null">
|
intakeId = #{intakeId,jdbcType=BIGINT},
|
</if>
|
<if test="rtuAddr != null">
|
rtuAddr = #{rtuAddr,jdbcType=VARCHAR},
|
</if>
|
<if test="protocol != null">
|
protocol = #{protocol,jdbcType=VARCHAR},
|
</if>
|
<if test="findDt != null">
|
findDt = #{findDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="orgTag != null">
|
orgTag = #{orgTag,jdbcType=VARCHAR},
|
</if>
|
<if test="addWays != null">
|
addWays = #{addWays,jdbcType=TINYINT},
|
</if>
|
<if test="operator != null">
|
`operator` = #{operator,jdbcType=BIGINT},
|
</if>
|
<if test="operateDt != null">
|
operateDt = #{operateDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
deleted = #{deleted,jdbcType=TINYINT},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
<!--@mbg.generated-->
|
update pr_controller
|
set intakeId = #{intakeId,jdbcType=BIGINT},
|
rtuAddr = #{rtuAddr,jdbcType=VARCHAR},
|
protocol = #{protocol,jdbcType=VARCHAR},
|
findDt = #{findDt,jdbcType=TIMESTAMP},
|
orgTag = #{orgTag,jdbcType=VARCHAR},
|
addWays = #{addWays,jdbcType=TINYINT},
|
`operator` = #{operator,jdbcType=BIGINT},
|
operateDt = #{operateDt,jdbcType=TIMESTAMP},
|
deleted = #{deleted,jdbcType=TINYINT}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
|
<!--根据控制器编号删除取水口编号-->
|
<update id="deleteIntakeId">
|
UPDATE pr_controller SET intakeId = null WHERE id = ${controllerId}
|
</update>
|
|
<!--根据指定条件获取控制器记录数-->
|
<select id="getRecordCount" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM pr_controller con
|
LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
|
INNER JOIN pr_intake inta ON con.intakeId = inta.id
|
left JOIN JSON_TABLE(
|
<!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
|
#{onLineMap},
|
'$[*]' COLUMNS(
|
rtuAddr VARCHAR(20) PATH '$.rtuAddr',
|
isOnLine BOOLEAN PATH '$.isOnLine'
|
)
|
) rtus ON con.rtuAddr = rtus.rtuAddr
|
<where>
|
AND con.deleted = 0
|
|
<if test = "id != null and id > 0">
|
AND con.id = ${id}
|
</if>
|
<if test = "rtuAddr != null and rtuAddr !=''">
|
AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
|
</if>
|
<if test="isOnLine != null and isOnLine !='' ">
|
AND rtus.isOnLine = #{isOnLine}
|
</if>
|
<if test = "bindNumber != null and bindNumber > 0">
|
AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取控制器记录-->
|
<select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController">
|
SELECT
|
CAST(con.id AS char) AS id,
|
con.rtuAddr AS rtuAddr,
|
inta.name AS intakeName,
|
con.protocol,
|
inta.remarks,
|
rtus.isOnLine,
|
(SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND operateType = 1) AS bindNumber,
|
con.findDt AS findDt
|
FROM pr_controller con
|
LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id
|
INNER JOIN pr_intake inta ON con.intakeId = inta.id
|
left JOIN JSON_TABLE(
|
<!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
|
#{onLineMap},
|
'$[*]' COLUMNS(
|
rtuAddr VARCHAR(20) PATH '$.rtuAddr',
|
isOnLine BOOLEAN PATH '$.isOnLine'
|
)
|
) rtus ON con.rtuAddr = rtus.rtuAddr
|
<where>
|
AND con.deleted = 0
|
|
<if test = "id != null and id > 0">
|
AND con.id = ${id}
|
</if>
|
<if test = "rtuAddr != null and rtuAddr !=''">
|
AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
|
</if>
|
<if test="isOnLine != null and isOnLine !='' ">
|
AND rtus.isOnLine = #{isOnLine}
|
</if>
|
<if test = "bindNumber != null and bindNumber > 0">
|
AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND operateType = 1) = ${bindNumber}
|
</if>
|
</where>
|
ORDER BY con.operateDt DESC
|
<trim prefix="limit " >
|
<if test="start != null and count != null">
|
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
|
</if>
|
</trim>
|
</select>
|
|
<!--根据控制器地址获取控制器列表-->
|
<select id="getControllersByAddr" resultType="java.util.Map">
|
SELECT id, rtuAddr FROM pr_controller WHERE deleted = 0 AND rtuAddr LIKE CONCAT('%',#{rtuAddr},'%')
|
</select>
|
|
<!--根据控制器地址获取控制器列表-->
|
<select id="getControllersByRtuAddrAndIntakeNotNull" parameterType="java.lang.String" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
SELECT tb.id id,
|
tb.rtuAddr rtuAddr,
|
tb.intakeId intakeId,
|
itb.name intakeName
|
FROM pr_controller tb
|
INNER JOIN pr_intake itb on tb.intakeId = itb.id
|
WHERE tb.deleted = 0 AND tb.intakeId is not null AND tb.rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
|
</select>
|
|
<!--根据控制器编号逻辑删除控制-->
|
<update id="deleteControllerById">
|
UPDATE pr_controller SET deleted = 1 WHERE id = ${controllerId}
|
</update>
|
|
<!--根据控制器编号获取未删除的控制器数量-->
|
<select id="getRecordCountOfController" resultType="java.lang.Integer">
|
SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId}
|
</select>
|
|
<!--根据流浪控制器编号获取已绑定记录数-->
|
<select id="getBindedCount" resultType="java.lang.Integer">
|
SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL
|
</select>
|
|
<!--根据取水口ID或阀控器地址获取阀控器对象-->
|
<select id="getRtu" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
|
SELECT * FROM pr_controller
|
<where>
|
AND deleted = 0
|
<if test = "intakeId != null">
|
AND intakeId = #{intakeId}
|
</if>
|
<if test = "rtuAddr != null">
|
AND rtuAddr = #{rtuAddr}
|
</if>
|
</where>
|
LIMIT 0,1
|
</select>
|
</mapper>
|