From 7728d8f1900a984dde8721f1f06e00eecc5a67de Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 21 Feb 2025 09:18:13 +0800
Subject: [PATCH] 修改配置

---
 src/main/java/org/springblade/modules/yw/mapper/EmergencySpaceMapper.xml |  107 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 35 deletions(-)

diff --git a/src/main/java/org/springblade/modules/yw/mapper/EmergencySpaceMapper.xml b/src/main/java/org/springblade/modules/yw/mapper/EmergencySpaceMapper.xml
index ddab7b4..5670319 100644
--- a/src/main/java/org/springblade/modules/yw/mapper/EmergencySpaceMapper.xml
+++ b/src/main/java/org/springblade/modules/yw/mapper/EmergencySpaceMapper.xml
@@ -2,49 +2,86 @@
 <!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">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="emergencySpaceResultMap" type="org.springblade.modules.yw.entity.EmergencySpaceEntity">
-        <result column="id" property="id"/>
-        <result column="name" property="name"/>
-        <result column="type" property="type"/>
-        <result column="main_func" property="mainFunc"/>
-        <result column="lng" property="lng"/>
-        <result column="lat" property="lat"/>
-        <result column="pre_level" property="preLevel"/>
-        <result column="capacity" property="capacity"/>
-        <result column="remark" property="remark"/>
-        <result column="firm_id" property="firmId"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="is_deleted" property="isDeleted"/>
-    </resultMap>
-
     <!--自定义分页查询-->
-    <select id="selectEmergencySpacePage" resultMap="emergencySpaceResultMap">
-        select * from yw_emergency_space where is_deleted = 0
+    <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
-            case when type=1 then '应急池'
-            when type =2 then '阀门'
-            when type =3 then '公共管网'
-            when type =4 then '污水提升泵站'
-            when type =5 then '水库'
-            when type =6 then '应急泵'
-            when type =7 then '消防沙'
-            end as type,
-            count(*) as num
+            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
-            is_deleted = 0
-            AND type IS NOT NULL
-            AND firm_id IS NOT NULL
-            GROUP BY type
+        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>

--
Gitblit v1.9.3