liurunyu
3 天以前 1cf88d43994ec7ec403319032a9d118b39fe3571
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -8,6 +8,7 @@
    <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" />
@@ -23,7 +24,7 @@
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, intakeId, rtuAddr, protocol, findDt, orgTag, addWays, `operator`, operateDt, deleted
    id, intakeId, rtuAddr, protocol, protocol_version, findDt, orgTag, addWays, `operator`, operateDt, deleted
  </sql>
  <sql id="Part_Column_List">
    <!--@mbg.generated-->
@@ -44,11 +45,11 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
    <!--@mbg.generated-->
    insert into pr_controller (id, intakeId, rtuAddr,
      protocol, findDt, orgTag, 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}, #{orgTag,jdbcType=VARCHAR},
      #{protocol,jdbcType=VARCHAR}, #{protocolVersion,jdbcType=INTEGER}, #{findDt,jdbcType=TIMESTAMP}, #{orgTag,jdbcType=VARCHAR},
      #{addWays,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP},
      #{deleted,jdbcType=TINYINT}
      )
@@ -68,6 +69,9 @@
      </if>
      <if test="protocol != null">
        protocol,
      </if>
     <if test="protocolVersion != null">
       protocol_version,
      </if>
      <if test="findDt != null">
        findDt,
@@ -100,6 +104,9 @@
      </if>
      <if test="protocol != null">
        #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="protocolVersion != null">
        #{protocolVersion,jdbcType=INTEGER},
      </if>
      <if test="findDt != null">
        #{findDt,jdbcType=TIMESTAMP},
@@ -134,6 +141,9 @@
      <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>
@@ -161,6 +171,7 @@
    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},
@@ -172,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>
  <!--根据指定条件获取控制器记录数-->
@@ -180,32 +191,26 @@
    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}
        AND con.id = #{id}
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
        AND con.rtuAddr = #{rtuAddr}
      </if>
      <if test="isOnLine != null and isOnLine !='' ">
        AND rtus.isOnLine = #{isOnLine}
      <if test = "intakeNum != null and intakeNum !=''">
        AND inta.name like CONCAT('%',#{intakeNum},'%')
      </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 = "protocolName != null and protocolName !=''">
        AND con.protocol = #{protocolName}
      </if>
    </where>
      <if test = "protocolVersion != null">
        AND con.protocol_version = #{protocolVersion}
      </if>
     </where>
  </select>
  <!--根据指定条件获取控制器记录-->
@@ -215,38 +220,30 @@
        con.rtuAddr AS rtuAddr,
        inta.name AS intakeName,
        con.protocol,
        con.protocol_version,
        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}
        AND con.id = #{id}
      </if>
      <if test = "rtuAddr != null and rtuAddr !=''">
        AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%')
        AND con.rtuAddr = #{rtuAddr}
      </if>
      <if test="isOnLine != null and isOnLine !='' ">
        AND rtus.isOnLine = #{isOnLine}
      <if test = "intakeNum != null and intakeNum !=''">
        AND inta.name like CONCAT('%',#{intakeNum},'%')
      </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 = "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
    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}
@@ -265,6 +262,7 @@
    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
@@ -273,17 +271,17 @@
  <!--根据控制器编号逻辑删除控制-->
  <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或阀控器地址获取阀控器对象-->