|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据指定条件获取控制器记录--> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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} | 
|---|
|  |  |  | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | LIMIT 0,1 | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--不分页获取全部未删除的阀控器列表--> | 
|---|
|  |  |  | <select id="getSimpleControllers" resultType="com.dy.pipIrrGlobal.voPr.VoControllerSimple"> | 
|---|
|  |  |  | SELECT id AS controllerId, rtuAddr FROM pr_controller WHERE deleted = 0 | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </mapper> | 
|---|