<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.dy.pipIrrGlobal.daoPr.PrIntakeMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrIntake">
|
<!--@mbg.generated-->
|
<!--@Table pr_intake-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="countyId" jdbcType="BIGINT" property="countyId" />
|
<result column="townId" jdbcType="BIGINT" property="townId" />
|
<result column="villageId" jdbcType="BIGINT" property="villageId" />
|
<result column="divideId" jdbcType="BIGINT" property="divideId" />
|
<result column="blockId" jdbcType="BIGINT" property="blockId" />
|
<result column="name" jdbcType="VARCHAR" property="name" />
|
<result column="lng" jdbcType="DOUBLE" property="lng" />
|
<result column="lat" jdbcType="DOUBLE" property="lat" />
|
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
|
<result column="operator" jdbcType="BIGINT" property="operator" />
|
<result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" />
|
<result column="deleted" jdbcType="TINYINT" property="deleted" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
<!--@mbg.generated-->
|
id, countyId, townId, villageId, divideId, blockId, `name`, lng, lat, remarks, `operator`,
|
operateDt, deleted
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List" />
|
from pr_intake
|
where id = #{id,jdbcType=BIGINT} and deleted = 0
|
</select>
|
|
<delete id="deleteLogicById" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
update pr_intake
|
set deleted = 1
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
|
<select id="selectAll" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List"/>
|
from pr_intake
|
where deleted != 1
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from pr_intake
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<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
|
)
|
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}
|
)
|
</insert>
|
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake">
|
<!--@mbg.generated-->
|
insert into pr_intake
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="countyId != null">
|
countyId,
|
</if>
|
<if test="townId != null">
|
townId,
|
</if>
|
<if test="villageId != null">
|
villageId,
|
</if>
|
<if test="divideId != null">
|
divideId,
|
</if>
|
<if test="blockId != null">
|
blockId,
|
</if>
|
<if test="name != null">
|
`name`,
|
</if>
|
<if test="lng != null">
|
lng,
|
</if>
|
<if test="lat != null">
|
lat,
|
</if>
|
<if test="remarks != null">
|
remarks,
|
</if>
|
<if test="operator != null">
|
`operator`,
|
</if>
|
<if test="operateDt != null">
|
operateDt,
|
</if>
|
<if test="deleted != null">
|
deleted,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
#{id,jdbcType=BIGINT},
|
</if>
|
<if test="countyId != null">
|
#{countyId,jdbcType=BIGINT},
|
</if>
|
<if test="townId != null">
|
#{townId,jdbcType=BIGINT},
|
</if>
|
<if test="villageId != null">
|
#{villageId,jdbcType=BIGINT},
|
</if>
|
<if test="divideId != null">
|
#{divideId,jdbcType=BIGINT},
|
</if>
|
<if test="blockId != null">
|
#{blockId,jdbcType=BIGINT},
|
</if>
|
<if test="name != null">
|
#{name,jdbcType=VARCHAR},
|
</if>
|
<if test="lng != null">
|
#{lng,jdbcType=DOUBLE},
|
</if>
|
<if test="lat != null">
|
#{lat,jdbcType=DOUBLE},
|
</if>
|
<if test="remarks != null">
|
#{remarks,jdbcType=VARCHAR},
|
</if>
|
<if test="operator != null">
|
#{operator,jdbcType=BIGINT},
|
</if>
|
<if test="operateDt != null">
|
#{operateDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
#{deleted,jdbcType=TINYINT},
|
</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake">
|
<!--@mbg.generated-->
|
update pr_intake
|
<set>
|
<if test="countyId != null">
|
countyId = #{countyId,jdbcType=BIGINT},
|
</if>
|
<if test="townId != null">
|
townId = #{townId,jdbcType=BIGINT},
|
</if>
|
<if test="villageId != null">
|
villageId = #{villageId,jdbcType=BIGINT},
|
</if>
|
<if test="divideId != null">
|
divideId = #{divideId,jdbcType=BIGINT},
|
</if>
|
<if test="blockId != null">
|
blockId = #{blockId,jdbcType=BIGINT},
|
</if>
|
<if test="name != null">
|
`name` = #{name,jdbcType=VARCHAR},
|
</if>
|
<if test="lng != null">
|
lng = #{lng,jdbcType=DOUBLE},
|
</if>
|
<if test="lat != null">
|
lat = #{lat,jdbcType=DOUBLE},
|
</if>
|
<if test="remarks != null">
|
remarks = #{remarks,jdbcType=VARCHAR},
|
</if>
|
<if test="operator != null">
|
`operator` = #{operator,jdbcType=BIGINT},
|
</if>
|
<if test="operateDt != null">
|
operateDt = #{operateDt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
deleted = #{deleted,jdbcType=TINYINT},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrIntake">
|
<!--@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}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
|
<!--根据指定条件获取取水口记录数-->
|
<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
|
<where>
|
ge.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 = "divideId != null and divideId !=''">
|
AND divi.id = #{divideId}
|
</if>
|
|
<if test = "blockId != null and blockId !=''">
|
AND blo.id = #{blockId}
|
</if>
|
|
<if test="isBinded == 0">
|
AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
|
</if>
|
<if test="isBinded == 1">
|
AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
|
</if>
|
<if test="isBinded == null">
|
|
</if>
|
<if test="address != null and address != ''">
|
AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
|
</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,
|
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
|
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
|
<where>
|
ge.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 = "divideId != null and divideId !=''">
|
AND divi.id = #{divideId}
|
</if>
|
|
<if test = "blockId != null and blockId !=''">
|
AND blo.id = #{blockId}
|
</if>
|
|
<if test="isBinded == 0">
|
AND ge.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
|
</if>
|
<if test="isBinded == 1">
|
AND ge.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
|
</if>
|
<if test="isBinded == null">
|
|
</if>
|
<if test="address != null and address != ''">
|
AND CONCAT(country.`name`, town.`name`, village.`name`) LIKE CONCAT('%', #{address}, '%')
|
</if>
|
</where>
|
ORDER BY ge.operateDt DESC
|
<if test="pageCurr != null and pageSize != null">
|
LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
|
</if>
|
</select>
|
|
<!--根据下级获取上一级地址-->
|
<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
|
where dis_vil.id = #{vaId,jdbcType=BIGINT}
|
</select>
|
|
<!--根据取水口编号获取未删除的取水口数量-->
|
<select id="getRecordCountOfIntake" resultType="java.lang.Integer">
|
SELECT COUNT(*) AS recordCount FROM pr_intake WHERE deleted = 0 AND id = ${intakeId}
|
</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
|
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
|
where dis_village.id = #{villageId,jdbcType=BIGINT}
|
</select>
|
|
<!--根据区域Id获取区域等级-->
|
<select id="getLevelByRegionId" parameterType="_long" resultType="java.lang.Integer">
|
select
|
region.level
|
from ba_district region
|
where region.id = #{regionId,jdbcType=BIGINT}
|
</select>
|
|
<!--获取未绑控制器的取水口列表-->
|
<select id="getNoBindingIntakes" resultType="java.util.HashMap">
|
SELECT
|
CAST(inta.id AS char)AS intakeId,
|
name AS intakeName
|
FROM pr_intake inta
|
WHERE id NOT IN(SELECT intakeId FROM pr_controller) AND deleted = 0
|
</select>
|
|
<!--获取取水口数量(在线和不在先)-->
|
<select id="getOnLineIntakesCount" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM pr_controller con
|
INNER JOIN pr_intake inta ON con.intakeId = inta.id
|
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
|
<where>
|
<if test="isOnLine != null">
|
rtus.isOnLine = #{isOnLine}
|
</if>
|
<if test="intakeNum != null and intakeNum != ''">
|
AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
|
</if>
|
</where>
|
</select>
|
|
<!--获取取水口列表(在线和不在先)-->
|
<select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
|
SELECT
|
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 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}
|
</if>
|
<if test="intakeNum != null and intakeNum != ''">
|
AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
|
</if>
|
</where>
|
<if test="pageCurr != null and pageSize != null">
|
LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
|
</if>
|
</select>
|
|
<!--根据操作员获取常用取水口-->
|
<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.rtuAddr
|
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
|
<where>
|
<if test="operator != null">
|
com.operator = #{operator}
|
</if>
|
</where>
|
</select>
|
</mapper>
|