<?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(20, 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>
|