| | |
| | | LEFT JOIN pr_controller con ON con.intakeId = inta.id |
| | | LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | LEFT JOIN( |
| | | SELECT intake_id AS intakeId, |
| | | CONCAT( |
| | | IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '流量计故障,', ''), |
| | | IF(alarm_water_meter_fault = 1, '流量计故障', '')), |
| | | IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '漏损(偷水)报警,', ''), |
| | | IF(alarm_loss = 1, '漏损(偷水)报警', '')), |
| | | IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '蓄电池电压报警,', ''), |
| | | IF(alarm_battery_volt = 1, '蓄电池电压报警', '')), |
| | | IF(alarm_valve = 1, '阀门报警', '') |
| | | ) AS alarm |
| | | FROM rm_alarm_state_last |
| | | WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) |
| | | AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) |
| | | ) alarm ON alarm.intakeId = inta.id |
| | | SELECT intake_id AS intakeId, |
| | | CONCAT( |
| | | IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '流量计故障,', ''), |
| | | IF(alarm_water_meter_fault = 1, '流量计故障', '')), |
| | | IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '漏损(偷水)报警,', ''), |
| | | IF(alarm_loss = 1, '漏损(偷水)报警', '')), |
| | | IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '蓄电池电压报警,', ''), |
| | | IF(alarm_battery_volt = 1, '蓄电池电压报警', '')), |
| | | IF(alarm_valve = 1, '阀门报警', '') |
| | | ) AS alarm |
| | | FROM rm_alarm_state_last |
| | | WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1) |
| | | AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) |
| | | ) alarm ON alarm.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' |
| | | ) |
| | | <!--'[{"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> |
| | | <if test="isOnLine != null"> |
| | |
| | | </trim> |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!--获取取水口数量(在线或离线或不设状态)--> |
| | | <select id="selectIntakesCountForOnLine" resultType="java.lang.Long"> |
| | | SELECT COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN pr_controller con ON con.intakeId = inta.id |
| | | <if test="onLineMap != null and onLineMap !='' and isOnLine != null"> |
| | | 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 |
| | | </if> |
| | | WHERE con.intakeId is not null |
| | | <if test="isOnLine != null"> |
| | | AND rtus.isOnLine = #{isOnLine} |
| | | </if> |
| | | <if test="intakeNum != null and intakeNum != ''"> |
| | | AND inta.name = #{intakeNum} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <!--获取取水口列表(在线或离线或不设状态)--> |
| | | <select id="selectIntakesForOnLine" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | con.rtuAddr, |
| | | inta.name AS intakeNum, |
| | | inta.lng, |
| | | inta.lat, |
| | | IFNULL(hou.total_amount, 0) AS totalAmount, |
| | | alarm.alarm |
| | | FROM pr_intake inta |
| | | INNER JOIN pr_controller con ON con.intakeId = inta.id |
| | | LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | LEFT JOIN( |
| | | SELECT intake_id AS intakeId, |
| | | CONCAT( |
| | | IF(alarm_loss = 1, '漏损报警,', ''), |
| | | IF(alarm_battery_volt = 1, '电池电压报警,', ''), |
| | | IF(alarm_valve = 1, '阀门报警,', ''), |
| | | IF(alarm_water_meter_fault = 1, '流量计故障报警,', '') |
| | | ) AS alarm |
| | | FROM rm_alarm_state_last |
| | | WHERE (alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1 OR alarm_water_meter_fault = 1) |
| | | AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR) |
| | | ) alarm ON alarm.intakeId = inta.id |
| | | <if test="onLineMap != null and onLineMap !='' and isOnLine != null"> |
| | | 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 |
| | | </if> |
| | | WHERE con.intakeId is not null |
| | | <if test="isOnLine != null"> |
| | | AND rtus.isOnLine = #{isOnLine} |
| | | </if> |
| | | <if test="intakeNum != null and intakeNum != ''"> |
| | | AND inta.name = #{intakeNum} |
| | | </if> |
| | | order by inta.id ASC |
| | | <trim prefix="limit "> |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!--根据取水口编号获取取水口对象--> |
| | | <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> |
| | | SELECT con.intakeId, |