<?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="cbdoro.mods.facilityInfo.ae020.mapper.Ae020Mapper">

    <resultMap id="Ae020FeaVoMap" type="Ae020FeaVO">
        <result column="UID"                property="uid"              />  <!-- 시점 -->
        <result column="ROAD_NO"            property="roadNo"           />  <!-- 노선번호 -->
        <result column="SECT"               property="sect"             />  <!-- 구간번호 -->
        <result column="DOCODE"             property="docode"           />  <!-- 구조물코드 -->
        <result column="DONAME"             property="doname"           />  <!-- 터널명칭 -->
        <result column="FA_TYPE"            property="faType"           />  <!-- 시설물종별 -->
        <result column="STR_LEVEL"          property="strLevel"         />  <!-- 상태등급 -->
        <result column="RE_DIA"             property="reDia"            />  <!-- 진단결과 -->
        <result column="ST_DAY"             property="stDay"            />  <!-- 착공년월일 -->
        <result column="END_DAY"            property="endDay"           />  <!-- 준공년월일 -->
        <result column="AW_FA"              property="awFa"             />  <!-- 환기설비 -->
        <result column="DOAWAKEN"           property="doawaken"         />  <!-- 환기방식 -->
        <result column="DOAREA"             property="doarea"           />  <!-- 소재지 -->
        <result column="HIT_U"              property="hitU"             />  <!-- 높이_상행 -->
        <result column="HIT_D"              property="hitD"             />  <!-- 높이_하행 -->
        <result column="PH_U"               property="phU"              />  <!-- 통행제한높이_상행 -->
        <result column="PH_D"               property="phD"              />  <!-- 통행제한높이_하행 -->
        <result column="LEN_U"              property="lenU"             />  <!-- 연장_상행 -->
        <result column="LEN_D"              property="lenD"             />  <!-- 연장_하행 -->
        <result column="DOMSTYLE"           property="domstyle"         />  <!-- 배수시설종류 -->
        <result column="WID_AU"             property="widAu"            />  <!-- 폭원_전체_상행 -->
        <result column="WID_AD"             property="widAd"            />  <!-- 폭원_전체_하행 -->
        <result column="WID_CU"             property="widCu"            />  <!-- 폭원_차도_상행 -->
        <result column="WID_CD"             property="widCd"            />  <!-- 폭원_차도_하행 -->
        <result column="WID_WU"             property="widWu"            />  <!-- 폭원_보도_상행 -->
        <result column="WID_WD"             property="widWd"            />  <!-- 폭원_보도_하행 -->
        <result column="SH_U"               property="shU"              />  <!-- 형상_상행 -->
        <result column="SH_D"               property="shD"              />  <!-- 형상_하행 -->
        <result column="LANE_U"             property="laneU"            />  <!-- 차로수_상행 -->
        <result column="LANE_D"             property="laneD"            />  <!-- 차로수_하행 -->
        <result column="MET_U"              property="metU"             />  <!-- 공법_상행 -->
        <result column="MET_D"              property="metD"             />  <!-- 공법_하행 -->
        <result column="FL_THICK"           property="flThick"          />  <!-- 바닥_두께 -->
        <result column="FL_MET"             property="flMet"            />  <!-- 바닥_재질 -->
        <result column="CE_THICK"           property="ceThick"          />  <!-- 천정_두께 -->
        <result column="CE_MET"             property="ceMet"            />  <!-- 천청_재질 -->
        <result column="VER_S"              property="verS"             />  <!-- 종단경사 -->
        <result column="CUR_R"              property="curR"             />  <!-- 곡선반경 -->
        <result column="PV_TYPE"            property="pvType"           />  <!-- 방재시설_종류 -->
        <result column="PV_EA"              property="pvEa"             />  <!-- 방재시설_수량 -->
        <result column="DOCBWDT"            property="docbwdt"          />  <!-- 측벽_두께 -->
        <result column="DOCBGIFT"           property="docbgift"         />  <!-- 측벽_재질 -->
        <result column="DOGWDT"             property="dogwdt"           />  <!-- 구조 -->
        <result column="DOGGIFT"            property="doggift"          />  <!-- 구조 -->
        <result column="DOJMLIST"           property="dojmlist"         />  <!-- 조명_종류 -->
        <result column="DOJMNUM"            property="dojmnum"          />  <!-- 조명_수량 -->
        <result column="DOJMSPC"            property="dojmspc"          />  <!-- 조명_간격 -->
        <result column="DOJMLIGHT"          property="dojmlight"        />  <!-- 조명_밝기 -->
        <result column="ET_TYPE"            property="etType"           />  <!-- 소화설비_종류 -->
        <result column="ET_EA"              property="etEa"             />  <!-- 소화설비_수량 -->
        <result column="RADIO"              property="radio"            />  <!-- 라디오방송설비 -->
        <result column="PH_EA"              property="phEa"             />  <!-- 비상전화수량 -->
        <result column="AL_FA"              property="alFa"             />  <!-- 경보설비 -->
        <result column="ETC_FA"             property="etcFa"            />  <!-- 기타설비 -->
        <result column="CAR_FA"             property="carFa"            />  <!-- 차량대비설비 -->
        <result column="BO_FA"              property="boFa"             />  <!-- 무정전시스템 -->
        <result column="PERIOD"             property="period"           />  <!-- 공사기간 -->
        <result column="CONSTHALL"          property="consthall"        />  <!-- 시행청 -->
        <result column="DOMANAGER"          property="domanager"        />  <!-- 시공자 -->
        <result column="DESIGNER"           property="designer"         />  <!-- 설계자 -->
        <result column="SUPERVISOR"         property="supervisor"       />  <!-- 감리자 -->
        <result column="TOTAL_CITY"         property="totalCity"        />  <!-- 총사업비 -->
        <result column="DGN_CITY"           property="dgnCity"          />  <!-- 설계비 -->
        <result column="WORK_CITY"          property="workCity"         />  <!-- 공사비 -->
        <result column="SU_CITY"            property="suCity"           />  <!-- 감리비 -->
        <result column="DOSTA1"             property="dosta1"           />  <!-- 시점 -->
        <result column="DOSTA2"             property="dosta2"           />  <!-- 종점 -->
        <result column="RI_CODE"            property="riCode"           />  <!-- 법정코드 -->
        <result column="REM"                property="rem"              />  <!-- 비고 -->
        <!--추가-->
        <result column="LOC_NAM"            property="locNam"           />  <!-- 로케이션 명 -->
    </resultMap>

    <resultMap id="Ae020GeoVoAddMap" type="Ae020GeoVo" extends="Ae020FeaVoMap">
        <result column="UID"                property="uid"              />  <!-- 시점 -->
        <result column="XMIN"               property="xmin"             />  <!-- X축 최소 -->
        <result column="XMAX"               property="xmax"             />  <!-- X축 최대 -->
        <result column="YMIN"               property="ymin"             />  <!-- Y축 최소 -->
        <result column="YMAX"               property="ymax"             />  <!-- Y축 최대 -->
        <result column="SHAPETYPE"          property="shapetype"        />  <!-- 도형타입 -->
        <result column="GEOMETRY"           property="geometry"         />  <!-- 기하학 -->
    </resultMap>

    <sql id="selectColumns">
        ${alias}UID
        , ${alias}ROAD_NO
        , ${alias}SECT
        , ${alias}DOCODE
        , ${alias}DONAME
        , ${alias}FA_TYPE
        , ${alias}STR_LEVEL
        , ${alias}RE_DIA
        , ${alias}ST_DAY
        , ${alias}END_DAY
        , ${alias}AW_FA
        , ${alias}DOAWAKEN
        , ${alias}DOAREA
        , ${alias}HIT_U
        , ${alias}HIT_D
        , ${alias}PH_U
        , ${alias}PH_D
        , ${alias}LEN_U
        , ${alias}LEN_D
        , ${alias}DOMSTYLE
        , ${alias}WID_AU
        , ${alias}WID_AD
        , ${alias}WID_CU
        , ${alias}WID_CD
        , ${alias}WID_WU
        , ${alias}WID_WD
        , ${alias}SH_U
        , ${alias}SH_D
        , ${alias}LANE_U
        , ${alias}LANE_D
        , ${alias}MET_U
        , ${alias}MET_D
        , ${alias}FL_THICK
        , ${alias}FL_MET
        , ${alias}CE_THICK
        , ${alias}CE_MET
        , ${alias}VER_S
        , ${alias}CUR_R
        , ${alias}PV_TYPE
        , ${alias}PV_EA
        , ${alias}DOCBWDT
        , ${alias}DOCBGIFT
        , ${alias}DOGWDT
        , ${alias}DOGGIFT
        , ${alias}DOJMLIST
        , ${alias}DOJMNUM
        , ${alias}DOJMSPC
        , ${alias}DOJMLIGHT
        , ${alias}ET_TYPE
        , ${alias}ET_EA
        , ${alias}RADIO
        , ${alias}PH_EA
        , ${alias}AL_FA
        , ${alias}ETC_FA
        , ${alias}CAR_FA
        , ${alias}BO_FA
        , ${alias}PERIOD
        , ${alias}CONSTHALL
        , ${alias}DOMANAGER
        , ${alias}DESIGNER
        , ${alias}SUPERVISOR
        , ${alias}TOTAL_CITY
        , ${alias}DGN_CITY
        , ${alias}WORK_CITY
        , ${alias}SU_CITY
        , ${alias}DOSTA1
        , ${alias}DOSTA2
        , ${alias}RI_CODE
        , ${alias}REM
    </sql>

    <!-- 컬럼 -->
    <sql id="columns">
        UID
        , ROAD_NO
        , SECT
        , DOCODE
        , DONAME
        , FA_TYPE
        , STR_LEVEL
        , RE_DIA
        , ST_DAY
        , END_DAY
        , AW_FA
        , DOAWAKEN
        , DOAREA
        , HIT_U
        , HIT_D
        , PH_U
        , PH_D
        , LEN_U
        , LEN_D
        , DOMSTYLE
        , WID_AU
        , WID_AD
        , WID_CU
        , WID_CD
        , WID_WU
        , WID_WD
        , SH_U
        , SH_D
        , LANE_U
        , LANE_D
        , MET_U
        , MET_D
        , FL_THICK
        , FL_MET
        , CE_THICK
        , CE_MET
        , VER_S
        , CUR_R
        , PV_TYPE
        , PV_EA
        , DOCBWDT
        , DOCBGIFT
        , DOGWDT
        , DOGGIFT
        , DOJMLIST
        , DOJMNUM
        , DOJMSPC
        , DOJMLIGHT
        , ET_TYPE
        , ET_EA
        , RADIO
        , PH_EA
        , AL_FA
        , ETC_FA
        , CAR_FA
        , BO_FA
        , PERIOD
        , CONSTHALL
        , DOMANAGER
        , DESIGNER
        , SUPERVISOR
        , TOTAL_CITY
        , DGN_CITY
        , WORK_CITY
        , SU_CITY
        , DOSTA1
        , DOSTA2
        , RI_CODE
        , REM
    </sql>

    <!-- 값 -->
    <sql id="values">
        #{uid}
        , #{roadNo}
        , #{sect}
        , #{docode}
        , #{doname}
        , #{faType}
        , #{strLevel}
        , #{reDia}
        , #{stDay}
        , #{endDay}
        , #{awFa}
        , #{doawaken}
        , #{doarea}
        , #{hitU}
        , #{hitD}
        , #{phU}
        , #{phD}
        , #{lenU}
        , #{lenD}
        , #{domstyle}
        , #{widAu}
        , #{widAd}
        , #{widCu}
        , #{widCd}
        , #{widWu}
        , #{widWd}
        , #{shU}
        , #{shD}
        , #{laneU}
        , #{laneD}
        , #{metU}
        , #{metD}
        , #{flThick}
        , #{flMet}
        , #{ceThick}
        , #{ceMet}
        , #{verS}
        , #{curR}
        , #{pvType}
        , #{pvEa}
        , #{docbwdt}
        , #{docbgift}
        , #{dogwdt}
        , #{doggift}
        , #{dojmlist}
        , #{dojmnum}
        , #{dojmspc}
        , #{dojmlight}
        , #{etType}
        , #{etEa}
        , #{radio}
        , #{phEa}
        , #{alFa}
        , #{etcFa}
        , #{carFa}
        , #{boFa}
        , #{period}
        , #{consthall}
        , #{domanager}
        , #{designer}
        , #{supervisor}
        , #{totalCity}
        , #{dgnCity}
        , #{workCity}
        , #{suCity}
        , #{dosta1}
        , #{dosta2}
        , #{riCode}
        , #{rem}
    </sql>

    <!-- 업데이트 값 -->
    <sql id="updateField">
        <trim prefixOverrides=",">
            <if test="uid != null">
                , UID            = #{uid}
            </if>
            <if test="roadNo != null">
                , ROAD_NO       = #{roadNo}
            </if>
            <if test="sect != null">
                , SECT          = #{sect}
            </if>
            <if test="docode != null">
                , DOCODE        = #{docode}
            </if>
            <if test="doname != null">
                , DONAME        = #{doname}
            </if>
            <if test="faType != null">
                , FA_TYPE       = #{faType}
            </if>
            <if test="strLevel != null">
                , STR_LEVEL     = #{strLevel}
            </if>
            <if test="reDia != null">
                , RE_DIA        = #{reDia}
            </if>
            <if test="stDay != null">
                , ST_DAY        = #{stDay}
            </if>
            <if test="endDay != null">
                , END_DAY       = #{endDay}
            </if>
            <if test="awFa != null">
                , AW_FA         = #{awFa}
            </if>
            <if test="doawaken != null">
                , DOAWAKEN      = #{doawaken}
            </if>
            <if test="doarea != null">
                , DOAREA        = #{doarea}
            </if>
            <if test="hitU != null">
                , HIT_U         = #{hitU}
            </if>
            <if test="hitD != null">
                , HIT_D         = #{hitD}
            </if>
            <if test="phU != null">
                , PH_U          = #{phU}
            </if>
            <if test="phD != null">
                , PH_D          = #{phD}
            </if>
            <if test="lenU != null">
                , LEN_U         = #{lenU}
            </if>
            <if test="lenD != null">
                , LEN_D         = #{lenD}
            </if>
            <if test="domstyle != null">
                , DOMSTYLE      = #{domstyle}
            </if>
            <if test="widAu != null">
                , WID_AU        = #{widAu}
            </if>
            <if test="widAd != null">
                , WID_AD        = #{widAd}
            </if>
            <if test="widCu != null">
                , WID_CU        = #{widCu}
            </if>
            <if test="widCd != null">
                , WID_CD        = #{widCd}
            </if>
            <if test="widWu != null">
                , WID_WU        = #{widWu}
            </if>
            <if test="widWd != null">
                , WID_WD        = #{widWd}
            </if>
            <if test="shU != null">
                , SH_U          = #{shU}
            </if>
            <if test="shD != null">
                , SH_D          = #{shD}
            </if>
            <if test="laneU != null">
                , LANE_U        = #{laneU}
            </if>
            <if test="laneD != null">
                , LANE_D        = #{laneD}
            </if>
            <if test="metU != null">
                , MET_U         = #{metU}
            </if>
            <if test="metD != null">
                , MET_D         = #{metD}
            </if>
            <if test="flThick != null">
                , FL_THICK      = #{flThick}
            </if>
            <if test="flMet != null">
                , FL_MET        = #{flMet}
            </if>
            <if test="ceThick != null">
                , CE_THICK      = #{ceThick}
            </if>
            <if test="ceMet != null">
                , CE_MET        = #{ceMet}
            </if>
            <if test="verS != null">
                , VER_S         = #{verS}
            </if>
            <if test="curR != null">
                , CUR_R         = #{curR}
            </if>
            <if test="pvType != null">
                , PV_TYPE       = #{pvType}
            </if>
            <if test="pvEa != null">
                , PV_EA         = #{pvEa}
            </if>
            <if test="docbwdt != null">
                , DOCBWDT       = #{docbwdt}
            </if>
            <if test="docbgift != null">
                , DOCBGIFT      = #{docbgift}
            </if>
            <if test="dogwdt != null">
                , DOGWDT        = #{dogwdt}
            </if>
            <if test="doggift != null">
                , DOGGIFT       = #{doggift}
            </if>
            <if test="dojmlist != null">
                , DOJMLIST      = #{dojmlist}
            </if>
            <if test="dojmnum != null">
                , DOJMNUM       = #{dojmnum}
            </if>
            <if test="dojmspc != null">
                , DOJMSPC       = #{dojmspc}
            </if>
            <if test="dojmlight != null">
                , DOJMLIGHT     = #{dojmlight}
            </if>
            <if test="etType != null">
                , ET_TYPE       = #{etType}
            </if>
            <if test="etEa != null">
                , ET_EA         = #{etEa}
            </if>
            <if test="radio != null">
                , RADIO         = #{radio}
            </if>
            <if test="phEa != null">
                , PH_EA         = #{phEa}
            </if>
            <if test="alFa != null">
                , AL_FA         = #{alFa}
            </if>
            <if test="etcFa != null">
                , ETC_FA        = #{etcFa}
            </if>
            <if test="carFa != null">
                , CAR_FA        = #{carFa}
            </if>
            <if test="boFa != null">
                , BO_FA         = #{boFa}
            </if>
            <if test="period != null">
                , PERIOD        = #{period}
            </if>
            <if test="consthall != null">
                , CONSTHALL     = #{consthall}
            </if>
            <if test="domanager != null">
                , DOMANAGER     = #{domanager}
            </if>
            <if test="designer != null">
                , DESIGNER      = #{designer}
            </if>
            <if test="supervisor != null">
                , SUPERVISOR    = #{supervisor}
            </if>
            <if test="totalCity != null">
                , TOTAL_CITY    = #{totalCity}
            </if>
            <if test="dgnCity != null">
                , DGN_CITY      = #{dgnCity}
            </if>
            <if test="workCity != null">
                , WORK_CITY     = #{workCity}
            </if>
            <if test="suCity != null">
                , SU_CITY       = #{suCity}
            </if>
            <if test="dosta1 != null">
                , DOSTA1        = #{dosta1}
            </if>
            <if test="docode != null">
                , DOSTA2        = #{dosta2}
            </if>
            <if test="riCode != null">
                , RI_CODE       = #{riCode}
            </if>
            <if test="rem != null">
                , REM           = #{rem}
            </if>
        </trim>
    </sql>

    <sql id="defaultWhere">
        <trim prefix="AND" prefixOverrides="AND">
            <if  test="'' != roadNo and null != roadNo">
                AND AF.ROAD_NO  LIKE CONCAT('%', #{roadNo}, '%')
            </if>
            <if test="'' != sect and null != sect">
                AND AF.SECT     LIKE CONCAT('%', #{sect}, '%')
            </if>
        </trim>
    </sql>

    <!-- 시설 : 터널 정보 조회 -->
    <select id="selectGetList" resultMap="Ae020GeoVoAddMap">
        SELECT  <include refid="selectColumns">
        <property name="alias" value="AF." />
    </include>
        ,       (SELECT LOC_NAM FROM BML_DNRI_AS_FEA WHERE RI_CD = AF.RI_CODE) AS LOC_NAM
        ,       AG.XMIN
        ,       AG.XMAX
        ,       AG.YMIN
        ,       AG.YMAX
        ,       AG.SHAPETYPE
        FROM    AE020_FEA AS AF
        ,       AE020_GEO AS AG
        WHERE   AF.UID = AG.UID
        <include refid="defaultWhere" />
        ORDER BY AF.DOSTA1 ASC
    </select>

    <!-- 터널 정보 조회 -->
    <select id="selectGetInfo" parameterType="ae020FeaVO" resultType="ae020FeaVO">
        SELECT  <include refid="columns"/>
        FROM    AE020_FEA
         WHERE   DOCODE   = #{docode}
    </select>

    <!-- 터널 수정 -->
    <update id="updateFacilityInfo">
        UPDATE AE020_FEA
        SET    <include refid="updateField" />
        WHERE   UID   = #{uid}
    </update>
</mapper>