You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
5.4 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="go.kr.project.baseData.cmpttnRt2.mapper.CmpttnRt2Mapper">
<!--
산정률2 목록 조회
- 검색 조건: 산정률2코드, 위반 사항(schTypeTxt)
- 정렬: 산정률2코드 오름차순
-->
<select id="selectList" parameterType="CmpttnRt2VO" resultType="CmpttnRt2VO">
SELECT a.CMPTTN_RT_2_CD /* 산정률2 코드 */
, a.VLTN_MTTR /* 위반 사항 */
, a.CMPTTN_RT_2 /* 산정률2 */
, a.USE_YN /* 사용 여부 */
, a.REG_DT /* 등록 일시 */
, a.RGTR /* 등록자 */
, a.MDFCN_DT /* 수정 일시 */
, a.MDFR /* 수정자 */
, ru.USER_NM AS RGTR_NM /* 등록자 명 */
, mu.USER_NM AS MDFR_NM /* 수정자 명 */
FROM tb_cmpttn_rt_2 a
LEFT JOIN tb_user ru ON a.RGTR = ru.USER_ID
LEFT JOIN tb_user mu ON a.MDFR = mu.USER_ID
WHERE 1=1
<if test='schTypeTxt != null and schTypeTxt != ""'>
<choose>
<when test='schType == "1"'>
and a.VLTN_MTTR like concat('%',#{schTypeTxt},'%') /* 검색 조건 - 위반 사항 */
</when>
<when test='schType == "2"'>
and a.CMPTTN_RT_2_CD = #{schTypeTxt} /* 검색 조건 - 산정률2 코드 */
</when>
</choose>
</if>
<if test='schUseYn != null and schUseYn != ""'>
and a.USE_YN = #{schUseYn} /* 검색 조건 - 사용 여부 */
</if>
ORDER BY a.CMPTTN_RT_2_CD asc /* 코드 오름차순 정렬 */
</select>
<!--
산정률2 목록 총 개수 조회
- 검색 조건: 산정률2코드, 위반 사항(schTypeTxt)
-->
<select id="selectListTotalCount" parameterType="CmpttnRt2VO" resultType="int">
SELECT count(*) /* 총 개수 조회 */
FROM tb_cmpttn_rt_2 a
where 1=1
<if test='schTypeTxt != null and schTypeTxt != ""'>
<choose>
<when test='schType == "1"'>
and a.VLTN_MTTR like concat('%',#{schTypeTxt},'%') /* 검색 조건 - 위반 사항 */
</when>
<when test='schType == "2"'>
and a.CMPTTN_RT_2_CD = #{schTypeTxt} /* 검색 조건 - 산정률2 코드 */
</when>
</choose>
</if>
<if test='schUseYn != null and schUseYn != ""'>
and a.USE_YN = #{schUseYn} /* 검색 조건 - 사용 여부 */
</if>
</select>
<!--
산정률2 단건 조회
- 조건: PK(코드)
- 팝업에서 수정 모드 시 사용
-->
<select id="selectOne" parameterType="CmpttnRt2VO" resultType="CmpttnRt2VO">
SELECT a.CMPTTN_RT_2_CD /* 산정률2 코드 */
, a.VLTN_MTTR /* 위반 사항 */
, a.CMPTTN_RT_2 /* 산정률2 */
, a.USE_YN /* 사용 여부 */
, a.REG_DT /* 등록 일시 */
, a.RGTR /* 등록자 */
, a.MDFCN_DT /* 수정 일시 */
, a.MDFR /* 수정자 */
, ru.USER_NM AS RGTR_NM /* 등록자 명 */
, mu.USER_NM AS MDFR_NM /* 수정자 명 */
FROM tb_cmpttn_rt_2 a
LEFT JOIN tb_user ru ON a.RGTR = ru.USER_ID
LEFT JOIN tb_user mu ON a.MDFR = mu.USER_ID
WHERE a.CMPTTN_RT_2_CD = #{cmpttnRt2Cd} /* 코드 검색 조건 */
</select>
<!--
산정률2 정보 등록
- PK: 산정률2코드
-->
<insert id="insert" parameterType="CmpttnRt2VO">
INSERT INTO tb_cmpttn_rt_2 (
CMPTTN_RT_2_CD /* 산정률2 코드 */
, VLTN_MTTR /* 위반 사항 */
, CMPTTN_RT_2 /* 산정률2 */
, USE_YN /* 사용 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
) VALUES (
#{cmpttnRt2Cd} /* 산정률2 코드 */
, #{vltnMttr} /* 위반 사항 */
, #{cmpttnRt2} /* 산정률2 */
, #{useYn} /* 사용 여부 */
, NOW() /* 등록 일시 - 현재 날짜 자동 설정 */
, #{rgtr} /* 등록자 - 세션 사용자 ID */
)
</insert>
<!--
산정률2 정보 수정
- 조건: PK(코드)
- 수정 대상: 위반 사항, 산정률2, 사용 여부, 수정일시, 수정자
-->
<update id="update" parameterType="CmpttnRt2VO">
UPDATE tb_cmpttn_rt_2
SET VLTN_MTTR = #{vltnMttr} /* 위반 사항 */
, CMPTTN_RT_2 = #{cmpttnRt2} /* 산정률2 */
, USE_YN = #{useYn} /* 사용 여부 */
, MDFCN_DT = NOW() /* 수정 일시 */
, MDFR = #{mdfr} /* 수정자 */
WHERE CMPTTN_RT_2_CD = #{cmpttnRt2Cd} /* 산정률2 코드 */
</update>
<!--
PK(코드) 중복 체크
- 등록 시 동일한 PK가 존재하는지 확인
- 반환값: 0이면 중복 없음, 1이상이면 중복 존재
-->
<select id="selectDuplicateCheck" parameterType="CmpttnRt2VO" resultType="int">
select count(*) /* 중복 건수 조회 */
from tb_cmpttn_rt_2
where CMPTTN_RT_2_CD = #{cmpttnRt2Cd} /* 산정률2 코드 */
</select>
</mapper>