<?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="org.springblade.modules.yw.mapper.EmergencySpaceMapper">
|
|
<!--自定义分页查询-->
|
<select id="selectEmergencySpacePage" resultType="org.springblade.modules.yw.vo.EmergencySpaceVO">
|
select
|
yes.id,yes.name,yes.full_name,yes.type,yes.main_func,yes.lng,yes.lat,yes.pre_level,
|
yes.capacity,yes.remark,yes.firm_id,yes.image_url,ST_AsGeoJSON(yes.geom) as geom,yes.ele,
|
ifnull(yfi.name,'安义工业园') as firmName,
|
bdb.dict_value as emergencySpaceType
|
from yw_emergency_space yes
|
left join blade_dict_biz bdb on bdb.dict_key = yes.type and bdb.code = 'emergency_space_type'
|
left join yw_firm_info yfi on yfi.id = yes.firm_id and yfi.is_deleted = 0
|
where yes.is_deleted = 0
|
<if test="emergencySpace.name!=null and emergencySpace.name!=''">
|
and yes.name like concat('%',#{emergencySpace.name},'%')
|
</if>
|
<if test="emergencySpace.firmId!=null">
|
and yes.firm_id = #{emergencySpace.firmId}
|
</if>
|
<if test="emergencySpace.type!=null">
|
and yes.type = #{emergencySpace.type}
|
</if>
|
<if test="emergencySpace.preLevel!=null">
|
and yes.pre_level = #{emergencySpace.preLevel}
|
</if>
|
<if test="emergencySpace.category!=null">
|
and yes.category = #{emergencySpace.category}
|
</if>
|
</select>
|
|
<!--获取应急空间统计数据-->
|
<select id="getStatisticData" resultType="java.util.Map">
|
SELECT
|
BDB.dict_value AS type,
|
count(*) AS num
|
FROM
|
yw_emergency_space yes
|
LEFT JOIN blade_dict_biz BDB ON BDB.dict_key = yes.type AND BDB.CODE = 'emergency_space_type'
|
WHERE
|
yes.is_deleted = 0 AND yes.type IS NOT NULL
|
GROUP BY yes.type
|
</select>
|
|
<!--获取应急池容量-->
|
<select id="getEmePool" resultType="java.lang.String">
|
SELECT
|
sum( capacity ) AS num
|
FROM
|
yw_emergency_space
|
WHERE type = 1 AND is_deleted = 0
|
</select>
|
|
<!--通过空间分析点位,找到离风险源最近的防控点 风险源找1,1找2,2找3-->
|
<select id="spatialAnalysisPoint" resultType="org.springblade.modules.yw.vo.EmergencySpaceVO">
|
SELECT
|
*,
|
ST_Distance_Sphere (
|
ST_GeomFromText(concat("POINT(",lng," ",lat,")")),
|
ST_GeomFromText (concat("POINT(",#{emergencySpace.lng}," ",#{emergencySpace.lat},")"))
|
) AS distance
|
FROM
|
yw_emergency_space
|
where lng is not null
|
<if test="emergencySpace.preLevel!=null">
|
and pre_level = #{emergencySpace.preLevel}
|
</if>
|
<if test="emergencySpace.firmId!=null">
|
and firm_id = #{emergencySpace.firmId}
|
</if>
|
ORDER BY distance
|
LIMIT 1
|
</select>
|
|
<!--查找距离当前点最近的线-->
|
<select id="spatialAnalysisPointToLines" resultType="org.springblade.modules.yw.vo.EmergencySpaceVO">
|
SELECT
|
2 as preLevel,
|
ST_AsText(geom) as geom,
|
ST_Distance(ST_GeomFromText(concat("POINT(",#{emergencySpace.lng}," ",#{emergencySpace.lat},")")), geom) AS distance
|
FROM yw_geom_info
|
ORDER BY distance ASC
|
LIMIT 1
|
</select>
|
|
</mapper>
|