Administrator
2024-06-19 acdbf06288c8cbeac4abe3518e8157d753e72574
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -168,19 +168,28 @@
    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 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>
@@ -193,23 +202,34 @@
        CAST(con.id AS char) AS id,
        con.rtuAddr AS rtuAddr,
        inta.name AS intakeName,
        "在线" AS onlineState,
        con.protocol,
        inta.remarks,
        rtus.isOnLine,
        (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.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 intakeId = inta.id AND operateType = 1) = ${bindNumber}
      </if>