Administrator
2024-06-03 620c3af4bb8c53d5ec4c4d0127c9d92dc8aa4f65
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -14,17 +14,23 @@
    <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, addWays, `operator`, operateDt, deleted
  </sql>
  <sql id="Part_Column_List">
    <!--@mbg.generated-->
    id, rtuAddr
    id, rtuAddr, intakeId
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select
    select
    <include refid="Base_Column_List" />
    from pr_controller
    where id = #{id,jdbcType=BIGINT}
@@ -152,6 +158,11 @@
    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
@@ -161,7 +172,7 @@
        INNER JOIN pr_intake inta ON con.intakeId = inta.id
    <where>
      AND ic.operateType = 1
      AND deleted = 0
      AND con.deleted = 0
      <if test = "id != null and id > 0">
        AND con.id = ${id}
@@ -180,16 +191,18 @@
  <!--根据指定条件获取控制器记录-->
  <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,
        "在线" AS onlineState,
        (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
        con.findDt
        con.findDt AS findDt
    FROM pr_controller con
        INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
        INNER JOIN pr_intake inta ON con.intakeId = inta.id
    <where>
      AND ic.operateType = 1
      AND deleted = 0
      AND con.deleted = 0
      <if test = "id != null and id > 0">
        AND con.id = ${id}
@@ -204,14 +217,24 @@
      </if>
    </where>
    ORDER BY con.operateDt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
    </if>
    <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" resultMap="PartResultMap">
    SELECT
    <include refid="Part_Column_List">
    </include>
    FROM pr_controller WHERE deleted = 0 AND intakeId is not null AND rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
  </select>
  <!--根据控制器编号逻辑删除控制-->
@@ -223,4 +246,24 @@
  <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>