| | |
| | | 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 |
| | | 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.id = #{id,jdbcType=BIGINT} |
| | | AND ge.deleted = 0 |
| | | AND divi.deleted = 0 |
| | | AND blo.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--> |
| | |
| | | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> |
| | | <!--@mbg.generated--> |
| | | insert into pr_intake (id, countyId, townId, |
| | | villageId, divideId, blockId, |
| | | `name`, lng, lat, remarks, |
| | | `operator`, operateDt, deleted) |
| | | villageId, divideId, blockId, |
| | | `name`, lng, lat, remarks, |
| | | `operator`, operateDt, deleted) |
| | | values (#{id,jdbcType=BIGINT}, #{countyId,jdbcType=BIGINT}, #{townId,jdbcType=BIGINT}, |
| | | #{villageId,jdbcType=BIGINT}, #{divideId,jdbcType=BIGINT}, #{blockId,jdbcType=BIGINT}, |
| | | #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remarks,jdbcType=VARCHAR}, |
| | | #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}) |
| | | #{villageId,jdbcType=BIGINT}, #{divideId,jdbcType=BIGINT}, #{blockId,jdbcType=BIGINT}, |
| | | #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remarks,jdbcType=VARCHAR}, |
| | | #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}) |
| | | </insert> |
| | | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake"> |
| | | <!--@mbg.generated--> |
| | |
| | | <!--@mbg.generated--> |
| | | update pr_intake |
| | | set countyId = #{countyId,jdbcType=BIGINT}, |
| | | townId = #{townId,jdbcType=BIGINT}, |
| | | villageId = #{villageId,jdbcType=BIGINT}, |
| | | divideId = #{divideId,jdbcType=BIGINT}, |
| | | blockId = #{blockId,jdbcType=BIGINT}, |
| | | `name` = #{name,jdbcType=VARCHAR}, |
| | | lng = #{lng,jdbcType=DOUBLE}, |
| | | lat = #{lat,jdbcType=DOUBLE}, |
| | | remarks = #{remarks,jdbcType=VARCHAR}, |
| | | `operator` = #{operator,jdbcType=BIGINT}, |
| | | operateDt = #{operateDt,jdbcType=TIMESTAMP}, |
| | | deleted = #{deleted,jdbcType=TINYINT} |
| | | townId = #{townId,jdbcType=BIGINT}, |
| | | villageId = #{villageId,jdbcType=BIGINT}, |
| | | divideId = #{divideId,jdbcType=BIGINT}, |
| | | blockId = #{blockId,jdbcType=BIGINT}, |
| | | `name` = #{name,jdbcType=VARCHAR}, |
| | | lng = #{lng,jdbcType=DOUBLE}, |
| | | lat = #{lat,jdbcType=DOUBLE}, |
| | | remarks = #{remarks,jdbcType=VARCHAR}, |
| | | `operator` = #{operator,jdbcType=BIGINT}, |
| | | operateDt = #{operateDt,jdbcType=TIMESTAMP}, |
| | | deleted = #{deleted,jdbcType=TINYINT} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | |
| | |
| | | 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, |
| | | ge.`name` AS intakeName, |
| | | CAST(divi.id AS char) AS divideId, |
| | | divi.`name` AS divideName, |
| | | CAST(blo.id AS char) AS blockId, |
| | | 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, |
| | | 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 |
| | | 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, |
| | | CAST(blo.id AS char) AS blockId, |
| | | blo.`name` AS blockName, |
| | | CAST(cont.id AS char) AS controllerId, |
| | | cont.rtuAddr AS rtuAddr, |
| | | cont.protocol AS protocol, |
| | | cont.findDt AS findDt, |
| | | bindNumTb.num AS bindNumber, |
| | | ge.lng, |
| | | ge.lat, |
| | | ge.remarks, |
| | | ge.operator, |
| | | ge.operateDt As operateDt, |
| | | 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 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 |
| | | 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 (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 |
| | |
| | | <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long"> |
| | | select dis_tow.* |
| | | from ba_district dis_vil |
| | | inner join |
| | | ba_district dis_tow |
| | | on dis_vil.supperId = dis_tow.id |
| | | inner join |
| | | ba_district dis_tow |
| | | on dis_vil.supperId = dis_tow.id |
| | | where dis_vil.id = #{vaId,jdbcType=BIGINT} |
| | | </select> |
| | | |
| | |
| | | SELECT COUNT(*) AS recordCount |
| | | FROM pr_intake |
| | | WHERE deleted = 0 |
| | | AND id = #{intakeId} |
| | | 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="getAddressByVillageId" parameterType="_long" resultType="java.lang.String"> |
| | | select CONCAT(dis_province.`name`, dis_city.`name`, dis_county.`name`, dis_town.`name`, |
| | | dis_village.`name`) AS address |
| | | dis_village.`name`) AS address |
| | | from ba_district dis_village |
| | | inner join ba_district dis_town on dis_village.supperId = dis_town.id |
| | | inner join ba_district dis_county on dis_town.supperId = dis_county.id |
| | | inner join ba_district dis_city on dis_county.supperId = dis_city.id |
| | | inner join ba_district dis_province on dis_city.supperId = dis_province.id |
| | | inner join ba_district dis_town on dis_village.supperId = dis_town.id |
| | | inner join ba_district dis_county on dis_town.supperId = dis_county.id |
| | | inner join ba_district dis_city on dis_county.supperId = dis_city.id |
| | | inner join ba_district dis_province on dis_city.supperId = dis_province.id |
| | | where dis_village.id = #{villageId,jdbcType=BIGINT} |
| | | </select> |
| | | |
| | |
| | | <select id="getOnLineIntakesCount" resultType="java.lang.Long"> |
| | | SELECT COUNT(*) AS recordCount |
| | | 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 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 |
| | | 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"> |
| | |
| | | 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 onLineMap != '[]' and isOnLine != null"> |
| | | <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}, |
| | |
| | | </if> |
| | | WHERE con.intakeId is not null |
| | | <if test="isOnLine != null and isOnLine == false"> |
| | | <if test="onLineMap != null and onLineMap !='' and onLineMap != '[]'"> |
| | | AND rtus.isOnLine = false OR rtus.rtuAddr IS NULL |
| | | </if> |
| | | <choose> |
| | | <when test="onLineMap != null and onLineMap !=''"> |
| | | AND (rtus.isOnLine = false OR rtus.rtuAddr IS NULL) |
| | | </when> |
| | | <otherwise> |
| | | AND rtus.rtuAddr IS NULL |
| | | </otherwise> |
| | | </choose> |
| | | </if> |
| | | <if test="isOnLine != null and isOnLine == true"> |
| | | <if test="onLineMap != null and onLineMap !='' and onLineMap != '[]'"> |
| | | AND rtus.isOnLine = true |
| | | </if> |
| | | AND rtus.isOnLine = true |
| | | </if> |
| | | <if test="intakeNum != null and intakeNum != ''"> |
| | | AND inta.name = #{intakeNum} |
| | |
| | | inta.name AS intakeNum, |
| | | inta.lng, |
| | | inta.lat, |
| | | IFNULL(hou.instant_amount, 0) AS instantAmount, |
| | | IFNULL(hou.total_amount, 0) AS totalAmount, |
| | | alarm.alarm |
| | | <if test="onLineMap != null and onLineMap !='' and isOnLine != null"> |
| | | rtus.isOnLine, |
| | | </if> |
| | | 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) |
| | | ) alarm ON alarm.intakeId = inta.id |
| | | <if test="onLineMap != null and onLineMap !='' and onLineMap != '[]' and isOnLine != null"> |
| | | <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}, |
| | |
| | | </if> |
| | | WHERE con.intakeId is not null |
| | | <if test="isOnLine != null and isOnLine == false"> |
| | | <if test="onLineMap != null and onLineMap !='' and onLineMap != '[]'"> |
| | | AND rtus.isOnLine = false OR rtus.rtuAddr IS NULL |
| | | </if> |
| | | <choose> |
| | | <when test="onLineMap != null and onLineMap !=''"> |
| | | AND (rtus.isOnLine = false OR rtus.rtuAddr IS NULL) |
| | | </when> |
| | | <otherwise> |
| | | AND rtus.rtuAddr IS NULL |
| | | </otherwise> |
| | | </choose> |
| | | </if> |
| | | <if test="isOnLine != null and isOnLine == true"> |
| | | <if test="onLineMap != null and onLineMap !='' and onLineMap != '[]'"> |
| | | AND rtus.isOnLine = true |
| | | </if> |
| | | AND rtus.isOnLine = true |
| | | </if> |
| | | <if test="intakeNum != null and intakeNum != ''"> |
| | | AND inta.name = #{intakeNum} |
| | |
| | | </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' |
| | | ) |
| | | 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,扫码开阀使用--> |
| | |
| | | SELECT id AS intakeId |
| | | FROM pr_intake |
| | | WHERE id != #{id} |
| | | and `name` = #{intakeName} |
| | | 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> |