|  |  |  | 
|---|
|  |  |  | operateDt, | 
|---|
|  |  |  | deleted | 
|---|
|  |  |  | </sql> | 
|---|
|  |  |  | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|---|
|  |  |  | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | select | 
|---|
|  |  |  | <include refid="Base_Column_List"/> | 
|---|
|  |  |  | from pr_intake | 
|---|
|  |  |  | where id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | and deleted = 0 | 
|---|
|  |  |  | ge.id, | 
|---|
|  |  |  | ge.countyId, | 
|---|
|  |  |  | ge.townId, | 
|---|
|  |  |  | ge.villageId, | 
|---|
|  |  |  | ge.divideId, | 
|---|
|  |  |  | ge.blockId, | 
|---|
|  |  |  | ge.`name`, | 
|---|
|  |  |  | ge.lng, | 
|---|
|  |  |  | ge.lat, | 
|---|
|  |  |  | ge.remarks, | 
|---|
|  |  |  | ge.`operator`, | 
|---|
|  |  |  | ge.operateDt, | 
|---|
|  |  |  | blo.`name`                                          AS blockName, | 
|---|
|  |  |  | CONCAT(country.`name`, town.`name`, village.`name`)              AS address, | 
|---|
|  |  |  | con.id AS controllerId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | con.protocol | 
|---|
|  |  |  | FROM pr_intake ge | 
|---|
|  |  |  | LEFT JOIN pr_divide divi ON ge.divideId = divi.id | 
|---|
|  |  |  | LEFT 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 con ON con.intakeId = ge.id | 
|---|
|  |  |  | where ge.id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | AND ge.deleted = 0 | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <delete id="deleteLogicById" parameterType="java.lang.Long"> | 
|---|
|  |  |  | 
|---|
|  |  |  | where id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | </delete> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="selectAll" resultMap="BaseResultMap"> | 
|---|
|  |  |  | <select id="selectAll"  resultType="com.dy.pipIrrGlobal.voPr.VoAllIntake"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | select | 
|---|
|  |  |  | <include refid="Base_Column_List"/> | 
|---|
|  |  |  | from pr_intake | 
|---|
|  |  |  | where deleted != 1 | 
|---|
|  |  |  | ge.id, | 
|---|
|  |  |  | ge.countyId, | 
|---|
|  |  |  | ge.townId, | 
|---|
|  |  |  | ge.villageId, | 
|---|
|  |  |  | ge.divideId, | 
|---|
|  |  |  | ge.blockId, | 
|---|
|  |  |  | ge.`name`, | 
|---|
|  |  |  | ge.lng, | 
|---|
|  |  |  | ge.lat, | 
|---|
|  |  |  | ge.remarks, | 
|---|
|  |  |  | ge.`operator`, | 
|---|
|  |  |  | ge.operateDt, | 
|---|
|  |  |  | blo.`name`                                          AS blockName, | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | where | 
|---|
|  |  |  | ge.deleted = 0 | 
|---|
|  |  |  | AND divi.deleted = 0 | 
|---|
|  |  |  | AND blo.deleted = 0 | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | <if test = "bindNumber != null and bindNumber > 0"> | 
|---|
|  |  |  | LEFT JOIN (SELECT intakeId, COUNT(*) num FROM pr_intake_controller WHERE operateType = 1 group by intakeId) AS bindNumTb on bindNumTb.intakeId= ge.id | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | ge.deleted = 0 | 
|---|
|  |  |  | AND divi.deleted = 0 | 
|---|
|  |  |  | 
|---|
|  |  |  | AND blo.id = #{blockId} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <if test="isBinded == 0"> | 
|---|
|  |  |  | <if test="isBinded != null and isBinded == 0"> | 
|---|
|  |  |  | AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="isBinded == 1"> | 
|---|
|  |  |  | <if test="isBinded != null and isBinded == 1"> | 
|---|
|  |  |  | AND ge.id IN (SELECT intakeId FROM pr_controller where deleted = 0) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="isBinded == null"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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} | 
|---|
|  |  |  | AND bindNumTb.num = #{bindNumber} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据指定条件获取取水口记录--> | 
|---|
|  |  |  | <select id="getIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntake"> | 
|---|
|  |  |  | SELECT CAST(ge.id AS char)                                 AS intakeId, | 
|---|
|  |  |  | WITH intakeIds AS(SELECT intakeId FROM pr_controller where deleted = 0) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SELECT CAST(ge.id AS char)                          AS intakeId, | 
|---|
|  |  |  | ge.`name`                                           AS intakeName, | 
|---|
|  |  |  | CAST(divi.id AS char)                               AS divideId, | 
|---|
|  |  |  | divi.`name`                                         AS divideName, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | bindNumTb.num                                       AS bindNumber, | 
|---|
|  |  |  | ge.lng, | 
|---|
|  |  |  | ge.lat, | 
|---|
|  |  |  | ge.remarks, | 
|---|
|  |  |  | ge.operator, | 
|---|
|  |  |  | ge.operateDt                                        As operateDt, | 
|---|
|  |  |  | (CASE | 
|---|
|  |  |  | WHEN ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0) THEN '未绑定' | 
|---|
|  |  |  | WHEN ge.id IN (SELECT intakeId FROM pr_controller where deleted = 0) THEN '已绑定' | 
|---|
|  |  |  | END)                                            AS isBind, | 
|---|
|  |  |  | CONCAT(country.`name`, town.`name`, village.`name`) AS address | 
|---|
|  |  |  | IF(ge.id IN (SELECT intakeId FROM intakeIds),'已绑定','未绑定')    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 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 | 
|---|
|  |  |  | LEFT JOIN (SELECT intakeId, COUNT(*) num FROM pr_intake_controller WHERE operateType = 1 group by intakeId) AS bindNumTb on bindNumTb.intakeId= ge.id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | ge.deleted = 0 | 
|---|
|  |  |  | AND divi.deleted = 0 | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != ''"> | 
|---|
|  |  |  | AND ge.name LIKE CONCAT('%', #{intakeName}, '%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <if test="divideId != null and divideId != ''"> | 
|---|
|  |  |  | AND divi.id = #{divideId} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <if test="blockId != null and blockId != ''"> | 
|---|
|  |  |  | AND blo.id = #{blockId} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <if test="isBinded == 0"> | 
|---|
|  |  |  | <if test="isBinded != null and isBinded == 0"> | 
|---|
|  |  |  | AND ge.id NOT IN (SELECT intakeId FROM pr_controller where deleted = 0) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="isBinded == 1"> | 
|---|
|  |  |  | <if test="isBinded != null and isBinded == 1"> | 
|---|
|  |  |  | AND ge.id IN (SELECT intakeId FROM pr_controller where deleted = 0) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="isBinded == null"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="address != null and address != ''"> | 
|---|
|  |  |  | AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test = "rtuAddr != null and rtuAddr !=''"> | 
|---|
|  |  |  | <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 test="bindNumber != null and bindNumber > 0"> | 
|---|
|  |  |  | AND bindNumTb.num = #{bindNumber} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | ORDER BY ge.operateDt DESC | 
|---|
|  |  |  | ORDER BY ge.divideId DESC, ge.id DESC | 
|---|
|  |  |  | <trim prefix="limit "> | 
|---|
|  |  |  | <if test="start != null and count != null"> | 
|---|
|  |  |  | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
|---|
|  |  |  | 
|---|
|  |  |  | FROM pr_intake | 
|---|
|  |  |  | WHERE deleted = 0 | 
|---|
|  |  |  | AND id = #{intakeId} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据村ID获取全部地址--> | 
|---|
|  |  |  | <select id="getNameById" resultType="java.lang.String"> | 
|---|
|  |  |  | select name | 
|---|
|  |  |  | from pr_intake | 
|---|
|  |  |  | where id = #{intakeId, jdbcType=BIGINT} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据村ID获取全部地址--> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--获取取水口列表(在线和不在先)--> | 
|---|
|  |  |  | <select id="getOnLineIntakes" 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, | 
|---|
|  |  |  | (CASE | 
|---|
|  |  |  | WHEN con.rtuAddr IS NULL THEN false | 
|---|
|  |  |  | WHEN con.rtuAddr IS NOT NULL THEN true | 
|---|
|  |  |  | END)                    AS isBinded, | 
|---|
|  |  |  | rtus.isOnLine, | 
|---|
|  |  |  | alarm.alarm | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | inta.id AS intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum, | 
|---|
|  |  |  | inta.lng, | 
|---|
|  |  |  | inta.lat, | 
|---|
|  |  |  | IFNULL(hou.total_amount, 0) AS totalAmount, | 
|---|
|  |  |  | (CASE | 
|---|
|  |  |  | WHEN con.rtuAddr IS NULL THEN false | 
|---|
|  |  |  | WHEN con.rtuAddr IS NOT NULL THEN true | 
|---|
|  |  |  | END) AS isBinded, | 
|---|
|  |  |  | rtus.isOnLine, | 
|---|
|  |  |  | alarm.alarm | 
|---|
|  |  |  | FROM pr_intake inta | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | <if test="isOnLine != null"> | 
|---|
|  |  |  | rtus.isOnLine = #{isOnLine} | 
|---|
|  |  |  | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | inta.id                     AS intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name                   AS intakeNum, | 
|---|
|  |  |  | con.protocol, | 
|---|
|  |  |  | con.protocol_version       AS protocolVersion, | 
|---|
|  |  |  | inta.name                  AS intakeNum, | 
|---|
|  |  |  | inta.lng, | 
|---|
|  |  |  | inta.lat, | 
|---|
|  |  |  | IFNULL(hou.instant_amount, 0) AS instantAmount, | 
|---|
|  |  |  | IFNULL(hou.total_amount, 0) AS totalAmount, | 
|---|
|  |  |  | <if test="onLineMap != null and onLineMap !='' and isOnLine != null"> | 
|---|
|  |  |  | rtus.isOnLine, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | alarm.alarm | 
|---|
|  |  |  | alarm.alarm, | 
|---|
|  |  |  | alarm.alarmDt | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | IF(alarm_battery_volt = 1, '电池电压报警,', ''), | 
|---|
|  |  |  | IF(alarm_valve = 1, '阀门报警,', ''), | 
|---|
|  |  |  | IF(alarm_water_meter_fault = 1, '流量计故障报警,', '') | 
|---|
|  |  |  | ) AS alarm | 
|---|
|  |  |  | ) AS alarm, | 
|---|
|  |  |  | dt AS alarmDt | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  | </trim> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据取水口编号获取取水口对象--> | 
|---|
|  |  |  | <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
|---|
|  |  |  | SELECT con.intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum, | 
|---|
|  |  |  | rtus.isOnLine | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | con.intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum | 
|---|
|  |  |  | FROM pr_controller con | 
|---|
|  |  |  | INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|---|
|  |  |  | left JOIN JSON_TABLE( | 
|---|
|  |  |  | #{onLineMap}, | 
|---|
|  |  |  | '$[*]' COLUMNS ( | 
|---|
|  |  |  | rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
|---|
|  |  |  | isOnLine BOOLEAN PATH '$.isOnLine' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | ) rtus ON con.rtuAddr = rtus.rtuAddr | 
|---|
|  |  |  | INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | <if test="intakeNum != null and intakeNum != ''"> | 
|---|
|  |  |  | AND LOWER(inta.name) = #{intakeNum} | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据操作员获取常用取水口--> | 
|---|
|  |  |  | <select id="getUsedIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
|---|
|  |  |  | SELECT DISTINCT con.intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum, | 
|---|
|  |  |  | rtus.isOnLine | 
|---|
|  |  |  | FROM pr_controller con | 
|---|
|  |  |  | INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|---|
|  |  |  | INNER JOIN rm_command_history com ON con.rtuAddr = com.rtu_addr | 
|---|
|  |  |  | INNER 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 | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | com.intake_id AS intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum, | 
|---|
|  |  |  | rtus.isOnLine | 
|---|
|  |  |  | FROM pr_common_intakes com | 
|---|
|  |  |  | INNER JOIN pr_intake inta ON inta.id = com.intake_id | 
|---|
|  |  |  | INNER JOIN pr_controller con ON con.intakeId = com.intake_id | 
|---|
|  |  |  | LEFT JOIN JSON_TABLE( | 
|---|
|  |  |  | <!--'[{"rtuAddr":"530115059980","isOnLine":true},{"rtuAddr":"620201000030","isOnLine":true}]',--> | 
|---|
|  |  |  | #{onLineMap}, | 
|---|
|  |  |  | '$[*]' COLUMNS ( | 
|---|
|  |  |  | rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
|---|
|  |  |  | isOnLine BOOLEAN PATH '$.isOnLine' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | ) rtus ON con.rtuAddr = rtus.rtuAddr | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | <if test="operator != null"> | 
|---|
|  |  |  | com.operator = #{operator} | 
|---|
|  |  |  | <if test="operatorId != null"> | 
|---|
|  |  |  | AND com.operator_id = #{operatorId} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | ORDER BY com.last_used_time DESC,com.usage_count DESC | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--取水口名称换取水口ID,扫码开阀使用--> | 
|---|
|  |  |  | 
|---|
|  |  |  | WHERE id != #{id} | 
|---|
|  |  |  | and `name` = #{intakeName} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | <!--app修改取水口经纬度--> | 
|---|
|  |  |  | <update id="updateByPrimaryKeySelective1" parameterType="com.dy.pipIrrGlobal.voPr.IntakeUpdateLngLat"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | update pr_intake | 
|---|
|  |  |  | <set> | 
|---|
|  |  |  | <if test="lng != null"> | 
|---|
|  |  |  | lng = #{lng,jdbcType=DOUBLE}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="lat != null"> | 
|---|
|  |  |  | lat = #{lat,jdbcType=DOUBLE}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="operator != null"> | 
|---|
|  |  |  | `operator` = #{operator,jdbcType=BIGINT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="operateDt != null"> | 
|---|
|  |  |  | operateDt = #{operateDt,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </set> | 
|---|
|  |  |  | where id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | </update> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--获取未绑定到轮灌组的取水口列表--> | 
|---|
|  |  |  | <select id="getFreeIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntakeSimple"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | id AS intakeId, | 
|---|
|  |  |  | name AS intakeName | 
|---|
|  |  |  | FROM pr_intake inta | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | AND inta.deleted = 0 | 
|---|
|  |  |  | AND NOT EXISTS (SELECT 1 FROM ir_group_intake gi WHERE gi.intake_id = inta.id) | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != ''"> | 
|---|
|  |  |  | AND LOWER(inta.name) LIKE CONCAT('%', #{intakeName}, '%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--获取未绑定虚拟卡的取水口列表,给取水口绑虚拟卡使用--> | 
|---|
|  |  |  | <select id="getNotLinkVcIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoIntakeSimple"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | id AS intakeId, | 
|---|
|  |  |  | name AS intakeName | 
|---|
|  |  |  | FROM pr_intake inta | 
|---|
|  |  |  | WHERE NOT EXISTS ( | 
|---|
|  |  |  | SELECT 1 | 
|---|
|  |  |  | FROM pr_intake_vc iv | 
|---|
|  |  |  | WHERE iv.intake_id = inta.id | 
|---|
|  |  |  | ) AND inta.deleted = 0 | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 为wechat,根据指定取水口名称模糊(后端)查询水口记录数 --> | 
|---|
|  |  |  | <select id="getSomeIntakesCount4Wx" parameterType="java.util.Map" resultType="java.lang.Long"> | 
|---|
|  |  |  | SELECT COUNT(*) AS recordCount | 
|---|
|  |  |  | FROM pr_intake tb | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | tb.deleted = 0 | 
|---|
|  |  |  | <if test="intakeNum != null and intakeNum != ''"> | 
|---|
|  |  |  | AND tb.name LIKE CONCAT('%', #{intakeNum}) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 为wechat,根据指定取水口名称模糊(后端)查询水口记录 --> | 
|---|
|  |  |  | <select id="getSomeIntakes4Wx" parameterType="java.util.Map" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | inta.id AS intakeId, | 
|---|
|  |  |  | con.rtuAddr, | 
|---|
|  |  |  | inta.name AS intakeNum | 
|---|
|  |  |  | FROM pr_intake inta | 
|---|
|  |  |  | INNER JOIN pr_controller con ON con.intakeId = inta.id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | inta.deleted = 0 | 
|---|
|  |  |  | <if test="intakeNum != null and intakeNum != ''"> | 
|---|
|  |  |  | AND inta.name LIKE CONCAT('%', #{intakeNum}) | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | ORDER BY inta.id DESC | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </mapper> | 
|---|