zhubaomin
2025-04-07 e67870fff62635cd14beb0d5988f08aeef4b22fa
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -8,7 +8,9 @@
    <result column="intakeId" jdbcType="BIGINT" property="intakeId" />
    <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" />
    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
    <result column="protocol_version" jdbcType="INTEGER" property="protocolVersion" />
    <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" />
@@ -22,7 +24,7 @@
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, intakeId, rtuAddr, protocol, findDt, addWays, `operator`, operateDt, deleted
    id, intakeId, rtuAddr, protocol, protocol_version, findDt, orgTag, addWays, `operator`, operateDt, deleted
  </sql>
  <sql id="Part_Column_List">
    <!--@mbg.generated-->
@@ -30,7 +32,7 @@
  </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}
@@ -43,12 +45,13 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
    <!--@mbg.generated-->
    insert into pr_controller (id, intakeId, rtuAddr,
      protocol, findDt, addWays,
      protocol, protocol_version, findDt, orgTag, addWays,
      `operator`, operateDt, deleted
      )
    values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR},
      #{protocol,jdbcType=VARCHAR}, #{findDt,jdbcType=TIMESTAMP}, #{addWays,jdbcType=TINYINT},
      #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}
      #{protocol,jdbcType=VARCHAR}, #{protocolVersion,jdbcType=INTEGER}, #{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">
@@ -67,8 +70,14 @@
      <if test="protocol != null">
        protocol,
      </if>
     <if test="protocolVersion != null">
       protocol_version,
      </if>
      <if test="findDt != null">
        findDt,
      </if>
      <if test="orgTag != null">
        orgTag,
      </if>
      <if test="addWays != null">
        addWays,
@@ -96,8 +105,14 @@
      <if test="protocol != null">
        #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="protocolVersion != null">
        #{protocolVersion,jdbcType=INTEGER},
      </if>
      <if test="findDt != null">
        #{findDt,jdbcType=TIMESTAMP},
      </if>
      <if test="orgTag != null">
        #{orgTag,jdbcType=VARCHAR},
      </if>
      <if test="addWays != null">
        #{addWays,jdbcType=TINYINT},
@@ -126,8 +141,14 @@
      <if test="protocol != null">
        protocol = #{protocol,jdbcType=VARCHAR},
      </if>
     <if test="protocolVersion != null">
        protocol_version = #{protocolVersion,jdbcType=INTEGER},
      </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},
@@ -150,7 +171,9 @@
    set intakeId = #{intakeId,jdbcType=BIGINT},
      rtuAddr = #{rtuAddr,jdbcType=VARCHAR},
      protocol = #{protocol,jdbcType=VARCHAR},
      protocol_version = #{protocolVersion,jdbcType=INTEGER},
      findDt = #{findDt,jdbcType=TIMESTAMP},
      orgTag = #{orgTag,jdbcType=VARCHAR},
      addWays = #{addWays,jdbcType=TINYINT},
      `operator` = #{operator,jdbcType=BIGINT},
      operateDt = #{operateDt,jdbcType=TIMESTAMP},
@@ -160,7 +183,7 @@
  <!--根据控制器编号删除取水口编号-->
  <update id="deleteIntakeId">
    UPDATE pr_controller SET intakeId = null WHERE id = ${controllerId}
    UPDATE pr_controller SET intakeId = null WHERE id = #{controllerId}
  </update>
  <!--根据指定条件获取控制器记录数-->
@@ -168,56 +191,64 @@
    SELECT
        COUNT(*) AS recordCount
    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
    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}
        AND con.id = #{id}
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
        AND con.rtuAddr = #{rtuAddr}
      </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 test = "intakeNum != null and intakeNum !=''">
        AND inta.name like CONCAT('%',#{intakeNum},'%')
      </if>
    </where>
      <if test = "protocolName != null and protocolName !=''">
        AND con.protocol = #{protocolName}
      </if>
      <if test = "protocolVersion != null">
        AND con.protocol_version = #{protocolVersion}
      </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,
        (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
        con.findDt
        con.protocol,
        con.protocol_version,
        inta.remarks,
        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}
        AND con.id = #{id}
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
        AND con.rtuAddr = #{rtuAddr}
      </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 test = "intakeNum != null and intakeNum !=''">
        AND inta.name like CONCAT('%',#{intakeNum},'%')
      </if>
      <if test = "protocolName != null and protocolName !=''">
        AND con.protocol = #{protocolName}
      </if>
      <if test = "protocolVersion != null">
        AND con.protocol_version = #{protocolVersion}
      </if>
    </where>
    ORDER BY con.operateDt DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${pageCurr}, ${pageSize}
    </if>
    ORDER BY con.id DESC
    <trim prefix="limit " >
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
  <!--根据控制器地址获取控制器列表-->
@@ -226,25 +257,45 @@
  </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 id="getControllersByRtuAddrAndIntakeNotNull" parameterType="java.lang.String" resultType="com.dy.pipIrrGlobal.pojoPr.PrController">
    SELECT tb.id id,
    tb.rtuAddr rtuAddr,
    tb.intakeId intakeId,
    tb.findDt findDt,
    tb.operateDt operateDt,
    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 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 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 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>