|  |  | 
 |  |  |     <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
 |  |  |         SELECT COUNT(*) AS recordCount | 
 |  |  |         FROM pr_intake ge | 
 |  |  |                  INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
 |  |  |                  INNER JOIN ba_block blo ON divi.blockId = blo.id | 
 |  |  |                  LEFT JOIN ba_district country ON ge.countyId = country.id | 
 |  |  |                  LEFT JOIN ba_district town ON ge.townId = town.id | 
 |  |  |                  LEFT JOIN ba_district village ON ge.villageId = village.id | 
 |  |  |                  LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |         INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
 |  |  |         INNER JOIN ba_block blo ON divi.blockId = blo.id | 
 |  |  |         LEFT JOIN ba_district country ON ge.countyId = country.id | 
 |  |  |         LEFT JOIN ba_district town ON ge.townId = town.id | 
 |  |  |         LEFT JOIN ba_district village ON ge.villageId = village.id | 
 |  |  |         LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |         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 cont.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             ge.deleted = 0 | 
 |  |  |               AND divi.deleted = 0 | 
 |  |  |               and blo.deleted = 0 | 
 |  |  |             AND divi.deleted = 0 | 
 |  |  |             AND blo.deleted = 0 | 
 |  |  |             <if test="intakeName != null and intakeName != ''"> | 
 |  |  |                 AND ge.name LIKE CONCAT('%', #{intakeName}, '%') | 
 |  |  |             </if> | 
 |  |  | 
 |  |  |             </if> | 
 |  |  |             <if test="address != null and address != ''"> | 
 |  |  |                 AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%') | 
 |  |  |             </if> | 
 |  |  |             <if test = "rtuAddr != null and rtuAddr !=''"> | 
 |  |  |                 AND cont.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
 |  |  |             </if> | 
 |  |  |             <if test="isOnLine != null and isOnLine !='' "> | 
 |  |  |                 AND rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="protocol != null and protocol !='' "> | 
 |  |  |                 AND cont.protocol = #{protocol} | 
 |  |  |             </if> | 
 |  |  |             <if test = "bindNumber != null and bindNumber > 0"> | 
 |  |  |                 AND (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) = ${bindNumber} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |     </select> | 
 |  |  | 
 |  |  |                blo.`name`                                          AS blockName, | 
 |  |  |                CAST(cont.id AS char)                               AS controllerId, | 
 |  |  |                cont.rtuAddr                                        AS rtuAddr, | 
 |  |  |                 cont.protocol                                       AS protocol, | 
 |  |  |                 cont.findDt                                         AS findDt, | 
 |  |  |                 rtus.isOnLine                                       AS isOnLine, | 
 |  |  |                 (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) AS bindNumber, | 
 |  |  |                ge.lng, | 
 |  |  |                ge.lat, | 
 |  |  |                ge.remarks, | 
 |  |  | 
 |  |  |                    END)                                            AS isBind, | 
 |  |  |                CONCAT(country.`name`, town.`name`, village.`name`) AS address | 
 |  |  |         FROM pr_intake ge | 
 |  |  |                  INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
 |  |  |                  INNER JOIN ba_block blo ON divi.blockId = blo.id | 
 |  |  |                  LEFT JOIN ba_district country ON ge.countyId = country.id | 
 |  |  |                  LEFT JOIN ba_district town ON ge.townId = town.id | 
 |  |  |                  LEFT JOIN ba_district village ON ge.villageId = village.id | 
 |  |  |                  LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |                 INNER JOIN pr_divide divi ON ge.divideId = divi.id | 
 |  |  |                 INNER JOIN ba_block blo ON divi.blockId = blo.id | 
 |  |  |                 LEFT JOIN ba_district country ON ge.countyId = country.id | 
 |  |  |                 LEFT JOIN ba_district town ON ge.townId = town.id | 
 |  |  |                 LEFT JOIN ba_district village ON ge.villageId = village.id | 
 |  |  |                 LEFT JOIN pr_controller cont ON ge.id = cont.intakeId | 
 |  |  |                 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 cont.rtuAddr = rtus.rtuAddr | 
 |  |  |         <where> | 
 |  |  |             ge.deleted = 0 | 
 |  |  |               AND divi.deleted = 0 | 
 |  |  |               and blo.deleted = 0 | 
 |  |  |             AND divi.deleted = 0 | 
 |  |  |             AND blo.deleted = 0 | 
 |  |  |             <if test="intakeName != null and intakeName != ''"> | 
 |  |  |                 AND ge.name LIKE CONCAT('%', #{intakeName}, '%') | 
 |  |  |             </if> | 
 |  |  | 
 |  |  |             <if test="address != null and address != ''"> | 
 |  |  |                 AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%') | 
 |  |  |             </if> | 
 |  |  |             <if test = "rtuAddr != null and rtuAddr !=''"> | 
 |  |  |                 AND cont.rtuAddr like CONCAT('%',#{rtuAddr},'%') | 
 |  |  |             </if> | 
 |  |  |             <if test="isOnLine != null and isOnLine !='' "> | 
 |  |  |                 AND rtus.isOnLine = #{isOnLine} | 
 |  |  |             </if> | 
 |  |  |             <if test="protocol != null and protocol !='' "> | 
 |  |  |                 AND cont.protocol = #{protocol} | 
 |  |  |             </if> | 
 |  |  |             <if test = "bindNumber != null and bindNumber > 0"> | 
 |  |  |                 AND (SELECT COUNT(*) FROM pr_intake_controller WHERE intakeId = ge.id AND operateType = 1) = ${bindNumber} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |         ORDER BY ge.operateDt DESC | 
 |  |  |         <trim prefix="limit "> |