月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-06-02 dc0d4a7907f3affdbc116288cac24ad4ba05f319
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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.lf.server.mapper.show.PipelineMapper">
    <select id="selectPipelines" resultType="com.lf.server.entity.show.PipelineEntity">
        select gid, pipename, segname, ST_AsText(ST_LineMerge(geom)) "wkt"
        from bs.m_pipesegment
        <where>
            pipename is not null and not ST_IsEmpty(geom)
            <if test="name != null">
                and (upper(pipename) like #{name} or upper(segname) like #{name})
            </if>
        </where>
        order by pipename, segname;
    </select>
 
    <select id="selectSegNames" resultType="com.lf.server.entity.show.PipelineEntity">
        select gid, pipename, segname from bs.m_pipesegment order by pipename, segname;
    </select>
 
    <select id="selectPipeAnalysis" resultType="com.lf.server.entity.show.PipelineEntity">
        select row_number() over() as gid, a.name as acrossName, b.segname as segName, b.remarks, b.pipename as pipeName,
            cast( st_length( st_geographyfromtext( st_astext( st_intersection(ST_MakeValid(a.geom), ST_MakeValid(b.geom) ) ) ) ) as decimal(12, 2) ) AS acrossLength,
            st_astext( st_intersection( ST_MakeValid(a.geom), ST_MakeValid(b.geom) ) ) as wkt
        from ${tab} as a, (select segname, remarks, pipename, geom from bs.m_pipesegment where gid = #{gid} ) as b
        where ST_Intersects(a.geom, b.geom)
    </select>
</mapper>