smartGeoinfoOriginal/target/classes/egovframework/mapper/sgis/map/MapMainMapper.xml

568 lines
17 KiB
XML

<?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="sgis.map.mapper.MapMainMapper">
<!-- 시추공 개별 선택 -->
<select id="selectMapInfoList" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT BUS_COD
, BUS_PROCOD
, HOL_COD
, HOL_NAM
, HOL_LOCSD
, HOL_LOCSGG
, HOL_LOCEMD
, HOL_LOCDET
, HOL_COR
, HOL_X
, HOL_Y
, HOL_BORNAM
, HOL_PRONAM
, HOL_BORTYP
, HOL_STADAT
, HOL_ENDDAT
, HOL_ELE
, HOL_WATLEV
, HOL_DRIDEP
, HOL_CASDEP
, HOE_DIA
, HOL_BORMAC
, HOL_BORMET
, HOL_BORDIR
, HOL_SITPIC
, HOL_SITDES
, HOL_CORPIC
, HOL_CORDES
, INP_NAM
, INP_COMNAM
, INP_DATTIM
, NOTE
FROM "TBL_HEADER"
WHERE 1=1
]]>
<if test='businessCode != null and businessCode != ""'>
<![CDATA[
AND BUS_COD = #{businessCode}
]]>
</if>
<if test='holeCode != null and holeCode != ""'>
<![CDATA[
AND HOL_COD = #{holeCode}
]]>
</if>
<![CDATA[
ORDER BY HOL_COD
]]>
</select>
<select id="selectHoleCount" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT
COUNT(HOLE_CODE) AS CNT
FROM TBL_HEADER
]]>
<choose>
<when test="areaHcodeArray != null and areaHcodeArray != '' and areaHcodeArray != 'undefiend'">
<![CDATA[
where NVL(USE_YN,' ') <> 'N' AND HOLE_CODE IN
]]>
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
#{hole}
</foreach>
</when>
<otherwise>
<![CDATA[
WHERE NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
]]>
</otherwise>
</choose>
</select>
<select id="selectHoleList" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT
HOLE_CODE
FROM TBL_HEADER
]]>
<choose>
<when test="areaHcodeArray != null and areaHcodeArray != ''and areaHcodeArray != 'undefiend'">
<![CDATA[
where NVL(USE_YN,' ') <> 'N' AND HOLE_CODE IN
]]>
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
#{hole}
</foreach>
</when>
<otherwise>
<![CDATA[
WHERE NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
]]>
</otherwise>
</choose>
</select>
<select id="selectItems" parameterType="map" resultType="egovMap">
SELECT
HOLE_CODE,B.PROJECT_NAME,
(SELECT USCS_NAME FROM TBL_SCIENCE_LAYER_TB WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
A.HOLE_TOTAL_DEPTH DEPTH,A.HOLE_EL EL,A.HOLE_WL WL, A.HOLE_DATE_FROM SDATE, A.HOLE_DATE_TO EDATE
FROM
TBL_HEADER A, TBL_PROJECT_INFO B
WHERE
<![CDATA[
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
]]>
A.PROJECT_CODE = B.PROJECT_CODE
AND A.HOLE_CODE IN
<foreach collection="holeCode" item="hole" index="index" open="(" close=")" separator=",">
#{hole}
</foreach>
ORDER BY
HOLE_CODE
</select>
<select id="selectDistrict" parameterType="map" resultType="egovMap">
SELECT
'L_DIS' CODE, LD_ID CODE_VALUE, LD_DISTRICTCODE CODE_TEXT, 'L_DIS' PARENT_CODE, LD_ID PARENT_CODE_VALUE
FROM TBL_L_DISTRICT
</select>
<select id="selectDistrictSgg" parameterType="map" resultType="egovMap">
SELECT
'M_DIS' CODE, MD_ID CODE_VALUE, MD_DISTRICTCODE CODE_TEXT, 'L_DIS' PARENT_CODE, MD_LARGEDISTRICTID RARENT_CODE
FROM TBL_M_DISTRICT
WHERE MD_LARGEDISTRICTID = #{code}
ORDER BY CODE_TEXT
</select>
<select id="selectGrid1" parameterType="map" resultType="EgovMap">
SELECT SA.*
, (SELECT CRWD_ID FROM S3D_CROWD_ANAL OA WHERE OA.PROJECT_CODE = SA.PROJECT_CODE AND ROWNUM=1) AS CRWD_ID
, (SELECT SEPARATOR FROM S3D_CROWD_ANAL OA WHERE OA.PROJECT_CODE = SA.PROJECT_CODE AND ROWNUM=1) AS SEPARATOR
, 'fault_model' as FAULT_MODEL
, 'spt_model' as SPT_MODEL
, 'analysis_model' as ANALYSIS_MODEL
, 'layer_model' as LAYER_MODEL
, 'gw_model' as GW_MODEL
, 'no' as CAD
, 'no' as SHAPE
FROM (
SELECT
A.PROJECT_CODE
, replace(replace(A.PROJECT_NAME ,chr(10),' '),chr(13),' ') PROJECT_NAME
, COUNT(B.HOLE_CODE) HOLE_CNT
FROM
TBL_PROJECT_INFO A
, TBL_HEADER B
WHERE
<![CDATA[
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
]]>
A.PROJECT_CODE = B.PROJECT_CODE
<choose>
<when test="sido != '' and sido != null">
<![CDATA[
AND SUBSTR(A.PROJECT_START_SPOT, 1, 3) = #{sido}
]]>
</when>
<when test="gugun != '' and gugun != null">
<![CDATA[
AND SUBSTR(A.PROJECT_START_SPOT, 1, 6) = #{sido+gugun}
]]>
</when>
</choose>
GROUP
BY A.PROJECT_CODE, A.PROJECT_NAME
) SA
WHERE EXISTS (SELECT 1
FROM S3D_CROWD_ANAL S2A
WHERE S2A.PROJECT_CODE = SA.PROJECT_CODE)
</select>
<select id="selectOldItems" parameterType="map" resultType="EgovMap">
SELECT
C.S3D_DISTRICT_CODE,
C.S3D_DISTRICT_NAME,
C.S3D_SEQUENCE,
C.S3D_PREFIX,
B.S3D_DISTRICT_SUB_CODE,
B.S3D_DISTRICT_SUB_NAME,
A.S3D_REGION_NAME,
A.S3D_CODE,
A.S3D_MAP_IMAGE
FROM
S3D_MASTER A,
S3D_DISTRICT_SUB B,
S3D_DISTRICT C
WHERE
A.S3D_DISTRICT_SUB = B.S3D_DISTRICT_SUB_CODE
AND A.S3D_DISTRICT = C.S3D_DISTRICT_CODE
<if test="sido != null and sido != '' and sido != 'all'">
<![CDATA[
AND C.S3D_DISTRICT_CODE = #{sido}
]]>
</if>
<if test="gugun != null and gugun != '' and gugun != 'all'">
<![CDATA[
AND B.S3D_DISTRICT_SUB_CODE = #{gugun}
]]>
</if>
<if test="dong != null and dong != '' and dong != 'all'">
<![CDATA[
AND A.S3D_MAP_IMAGE LIKE #{dong} || '%'
]]>
</if>
ORDER BY
C.S3D_DISTRICT_CODE, C.S3D_SEQUENCE, B.S3D_DISTRICT_SUB_CODE, A.S3D_CODE
</select>
<select id="get3dSido" parameterType="map" resultType="egovMap">
select
s3d_district_code, s3d_district_name, s3d_sequence, s3d_prefix
from s3d_district
where
s3d_district_yn = '1'
</select>
<select id="get3dGugun" parameterType="map" resultType="egovMap">
select s3d_district, s3d_district_sub_name, s3d_district_sub_code from s3d_district_sub
where s3d_district = #{doCd}
</select>
<select id="get3dDong" parameterType="map" resultType="egovMap">
select
s3d_region, s3d_link_code, s3d_button_name, s3d_link_address, s3d_link_x, s3d_link_y
from
s3d_detail
where
s3d_district = #{sido} and
s3d_district_sub = #{gugun}
order by
s3d_link_code asc
</select>
<select id="get3dDetail" parameterType="map" resultType="egovMap">
select
DISTINCT de.s3d_region, de.s3d_link_code, ma.s3d_district, de.s3d_button_name
from
s3d_detail de, s3d_master ma
where
de.s3d_district = ma.s3d_district and
ma.s3d_map_image = #{adong1} and
de.s3d_region= #{aid}
order by
de.s3d_link_code asc
</select>
<select id="getGeneralData" parameterType="map" resultType="egovMap">
SELECT
(
COALESCE(t_project.project_code, '')
|| '|' || COALESCE(t_hole.hole_elevation, '') -- HOLE_ELV -> hole_elevation
|| '|' || COALESCE(t_hole.hole_drilling_depth, '') -- 시추심도
|| '|' || COALESCE(t_hole.hole_x, '')
|| '|' || COALESCE(t_hole.hole_y, '')
|| '|' || COALESCE(ST_Y(t_hole.hole_point)::text, '')
|| '|' || COALESCE(ST_X(t_hole.hole_point)::text, '')
|| '|' || COALESCE(t_business.business_name, '')
|| '|' || COALESCE(t_hole.hole_water_level, '') -- HOLE_WL -> hole_water_level
|| '|' || COALESCE(t_hole.hole_location_sd, '') || COALESCE(t_hole.hole_location_sgg, '') || COALESCE(t_hole.hole_location_emd, '') || COALESCE(t_hole.hole_location_detail, '')
) AS VLU
FROM
public.apptb_hole01 t_hole
LEFT JOIN
public.apptb_saup01 t_business ON t_hole.business_code = t_business.business_code
LEFT JOIN
public.apptb_proj01 t_project ON t_business.project_code = t_project.project_code
WHERE
t_hole.business_code = #{businessCode}
AND t_hole.hole_code = #{holeCode}
</select>
<select id="getLinkLayerData" parameterType="map" resultType="egovMap">
SELECT
a1.layer_depth_from AS "FROM",
a1.layer_depth_to AS "TO",
a1.layer_science_name AS "USCS",
COALESCE(a1.layer_eng_name, '') AS "NAME",
COALESCE(a1.layer_soil_color, '') AS "COLOR",
REPLACE(REPLACE(a1.layer_desc, CHR(10), ' '), CHR(13), ' ') AS "DESC"
FROM
public.apptb_layr01 a1
WHERE
a1.business_code = #{businessCode}
AND a1.hole_code = #{holeCode}
ORDER BY a1.layer_depth_from
</select>
<select id="getSPTData" parameterType="map" resultType="egovMap">
SELECT
depth_spt,
spt_n
FROM
public.apptb_spt01
WHERE
hole_code = #{holeCode}
AND
business_code = #{businessCode}
ORDER BY
depth_spt
</select>
<select id="getSampleData" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT
(t.CODE || '|' || t.DEPTH_FROM || '|' || t.DEPTH_TO || '|' || t.YN || '|' || t.SHAPE) AS VAL
FROM
(
SELECT
'0' AS CODE,
t1.rjoint_depth_from::numeric AS DEPTH_FROM,
t1.rjoint_depth_to::numeric AS DEPTH_TO,
'0' AS YN,
'0' AS SHAPE
FROM
public.apptb_josh01 t1
WHERE
t1.hole_code = #{holeCode}
AND t1.business_code = #{businessCode}
UNION ALL
SELECT
'0' AS CODE,
t2.depth_from::numeric AS DEPTH_FROM,
t2.depth_to::numeric AS DEPTH_TO,
'0' AS YN,
'0' AS SHAPE
FROM
public.apptb_polo01 t2
WHERE
t2.hole_code = #{holeCode}
AND t2.business_code = #{businessCode}
UNION ALL
SELECT
'0' AS CODE,
t3.rtri_depth_from::numeric AS DEPTH_FROM,
t3.rtri_depth_to::numeric AS DEPTH_TO,
'0' AS YN,
'0' AS SHAPE
FROM
public.apptb_rtri01 t3
WHERE
t3.hole_code = #{holeCode}
AND t3.business_code = #{businessCode}
UNION ALL
SELECT
'0' AS CODE,
t4.runi_depth_from::numeric AS DEPTH_FROM,
t4.runi_depth_to::numeric AS DEPTH_TO,
'0' AS YN,
'0' AS SHAPE
FROM
public.apptb_runi01 t4
WHERE
t4.hole_code = #{holeCode}
AND t4.business_code = #{businessCode}
UNION ALL
SELECT
t5.sample_code AS CODE,
t5.sample_depth_from::numeric AS DEPTH_FROM,
t5.sample_depth_to::numeric AS DEPTH_TO,
'0' AS YN,
t5.sample_shape AS SHAPE
FROM
public.apptb_smpl01 t5
WHERE
t5.hole_code = #{holeCode}
AND t5.business_code = #{businessCode}
AND (
(SELECT COUNT(*) FROM public.apptb_cons02 WHERE sample_code = t5.sample_code) > 0 OR
(SELECT COUNT(*) FROM public.apptb_stri01 WHERE sample_code = t5.sample_code) > 0 OR
(SELECT COUNT(*) FROM public.apptb_suni01 WHERE sample_code = t5.sample_code) > 0 OR
(SELECT COUNT(*) FROM public.apptb_clas01 WHERE sample_code = t5.sample_code) > 0 OR
(SELECT COUNT(*) FROM public.apptb_cbr01 WHERE sample_code = t5.sample_code) > 0
)
) AS t
WHERE
t.DEPTH_FROM IS NOT NULL
AND t.DEPTH_TO IS NOT NULL
]]>
</select>
<select id="selectInfoLastPage" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT CEIL(MAX(ROWNUM)/ 15 ) AS LASTPAGE
FROM (
SELECT HOLE_CODE,
B.PROJECT_NAME,
(SELECT USCS_NAME
FROM TBL_SCIENCE_LAYER_TB
WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
A.HOLE_TOTAL_DEPTH DEPTH,
A.HOLE_EL EL,
A.HOLE_WL WL,
A.HOLE_DATE_FROM SDATE,
A.HOLE_DATE_TO EDATE
FROM
TBL_HEADER A,
TBL_PROJECT_INFO B
WHERE
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
A.PROJECT_CODE = B.PROJECT_CODE
AND A.HOLE_CODE IN
]]>
<choose>
<when test="areaHcodeArray != null and areaHcodeArray != ''">
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
#{hole}
</foreach>
</when>
<otherwise>
<![CDATA[
(
SELECT TRIM(HOLE_CODE)
FROM TBL_HEADER A
WHERE NVL(A.USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
)
]]>
</otherwise>
</choose>
<![CDATA[
ORDER BY HOLE_CODE )
]]>
</select>
<select id="selectInfoItems" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT *
FROM (SELECT ROWNUM RNK,
Z.*
FROM (SELECT HOLE_CODE,
B.PROJECT_NAME,
B.PROJECT_CODE,
(SELECT USCS_NAME
FROM TBL_SCIENCE_LAYER_TB
WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
A.HOLE_TOTAL_DEPTH DEPTH,
A.HOLE_EL EL,
A.HOLE_WL WL,
A.HOLE_DATE_FROM SDATE,
A.HOLE_DATE_TO EDATE
FROM TBL_HEADER A,
TBL_PROJECT_INFO B
WHERE
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
A.PROJECT_CODE = B.PROJECT_CODE
AND A.HOLE_CODE IN
]]>
<choose>
<when test="areaHcodeArray != null and areaHcodeArray != ''">
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
#{hole}
</foreach>
</when>
<otherwise>
<![CDATA[
(
SELECT TRIM(HOLE_CODE)
FROM
TBL_HEADER A
WHERE
NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
)
]]>
</otherwise>
</choose>
<![CDATA[
ORDER BY HOLE_CODE ) Z )
WHERE RNK > #{firstRow} AND RNK <= #{lastRow}
]]>
</select>
<select id="selectWebDownloadLog" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT
(sysdate-min(ENDDATE)) as ENDDATE,
COUNT(*) AS CNT
FROM WEB_DOWNLOAD_LOG
WHERE USERID = #{userId}
AND DOWNYN IN ('W','N','R')
]]>
</select>
<select id="selectProjectList" parameterType="map" resultType="egovMap">
SELECT
*
FROM
TBL_PROJECT_INFO
WHERE
<![CDATA[
NVL(USE_YN,' ') <> 'N' AND
]]>
TRIM(PROJECT_CODE) IN
<foreach collection="projectList" item="project" index="index" open="(" close=")" separator=",">
#{project}
</foreach>
</select>
<select id="mapBoreholeLogHeader" parameterType="map" resultType="egovMap">
SELECT
ap.project_code,
hole.hole_code AS HOLE_CODE,
ap.project_name,
cc1.code_txt ||
CASE
WHEN cc2.code_txt IS NOT NULL THEN ' ' || cc2.code_txt
ELSE ''
END AS COMPANY,
hole.hole_name AS HOLE_NAME,
cc3.code_txt AS DISTRICT,
hole.hole_x AS HOLE_OR_X,
hole.hole_y AS HOLE_OR_Y,
hole.HOLE_ELEVATION AS HOLE_EL,
hole.HOLE_END_DATE AS HOLE_DATE_TO,
hole.HOLE_DRILLING_DEPTH AS HOLE_TOTAL_DEPTH,
hole.HOLE_CASING_DEPTH AS HOLE_CASING_DEPTH,
hole.HOLE_WATER_LEVEL AS hole_wl,
hole.HOLE_BORING_MACHINE AS HOLE_BORING_MACHINE,
hole.HOLE_BORING_METHOD AS HOLE_BORING_METHOD,
hole.HOLE_BORING_NAME AS HOLE_BORING_BY,
'N/A' AS HOLE_INSPECTED_BY,
REPLACE((epsg_code.code_txt || ' ' || epsg_code2.code_txt), '(BESSEL)','') AS COORDINATE_L,
(
SELECT
CASE
WHEN MAX(layer.LAYER_DEPTH_TO::NUMERIC) >= 34.6 THEN 3
WHEN MAX(layer.LAYER_DEPTH_TO::NUMERIC) >= 17.3 THEN 2
ELSE 1
END
FROM APPTB_LAYR01 layer
WHERE layer.business_code = hole.business_code -- 현재 행의 business_code 사용
AND layer.hole_code = hole.hole_code -- 현재 행의 hole_code 사용
) AS PAGE_NUM
FROM APPTB_HOLE01 hole
LEFT JOIN APPTB_SAUP01 business ON hole.business_code = business.business_code
LEFT JOIN APPTB_PROJ01 ap ON business.project_code = ap.project_code
LEFT JOIN comtb_code02 cc1 ON ap.project_ordering_code = cc1.code_val
LEFT JOIN comtb_code02 cc2 ON ap.project_affiliated_code = cc2.code_val
LEFT JOIN comtb_code02 cc3 ON ap.project_harbor_code = cc3.code_val
LEFT JOIN comtb_code02 epsg_code ON ap.PROJECT_EPSG_CODE = epsg_code.code_val
LEFT JOIN comtb_code02 epsg_code2 ON hole.hole_coordinate = epsg_code2.code_val
WHERE
hole.business_code = #{businessCode} AND
hole.hole_code = #{holeCode}
</select>
</mapper>