liurunyu
2024-11-08 04779efe2410fb0df1ff983b26384d56471b85cf
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -191,16 +191,7 @@
    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
@@ -208,15 +199,18 @@
        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>
  <!--根据指定条件获取控制器记录-->
@@ -228,37 +222,28 @@
        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}
      </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 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}