- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
589 lines
16 KiB
XML
589 lines
16 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="board">
|
|
|
|
<!-- 게시판 목록을 페이징 처리하여 가져온다. -->
|
|
<select id="getBoardPagingList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
(
|
|
SELECT
|
|
TBL.*
|
|
,(ROW_NUMBER() OVER()) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SYSTEM_TYPE
|
|
,CASE SYSTEM_TYPE
|
|
WHEN 'pdm' THEN 'PDM'
|
|
WHEN 'pms' THEN 'PMS'
|
|
WHEN 'viewer' THEN 'Viewer'
|
|
ELSE SYSTEM_TYPE
|
|
END SYSTEM_TYPE_TITLE
|
|
,CASE BOARD_TYPE
|
|
WHEN 'notice' THEN '공지사항'
|
|
WHEN 'qna' THEN 'QnA'
|
|
ELSE BOARD_TYPE
|
|
END BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,PLAN_DATE
|
|
,ACT_DATE
|
|
,TO_CHAR(RES_REGDATE,'YYYY-MM-DD') AS RES_REGDATE_TITLE
|
|
,RES_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_DEPT_NAME
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_DEPT_NAME
|
|
,REQ_REGDATE
|
|
,TO_CHAR(REQ_REGDATE,'YYYY-MM-DD') AS REQ_REGDATE_TITLE
|
|
,CASE RES_WRITER
|
|
WHEN null THEN 'N'
|
|
WHEN '' THEN 'N'
|
|
ELSE ''
|
|
END COMPLETE_FLAG
|
|
,CASE
|
|
WHEN REQ_WRITER = #{userId} THEN 'Y'
|
|
ELSE 'N'
|
|
END REQ_WRITER_FLAG
|
|
,QNA_NO
|
|
,RES_STATE
|
|
FROM BOARD B
|
|
WHERE 1=1
|
|
<if test=" search_systemType != '' and search_systemType != null">
|
|
AND UPPER(SYSTEM_TYPE) = UPPER(#{search_systemType})
|
|
</if>
|
|
<if test=" search_boardType != '' and search_boardType != null">
|
|
AND UPPER(BOARD_TYPE) = UPPER(#{search_boardType})
|
|
</if>
|
|
<if test=" search_category != '' and search_category != null">
|
|
AND CATEGORY = #{search_reqcategory}
|
|
</if>
|
|
<if test=" search_reqcategory != '' and search_reqcategory != null">
|
|
AND REQ_CATEGORY = #{search_reqcategory}
|
|
</if>
|
|
<if test=" search_rescategory != '' and search_rescategory != null">
|
|
AND RES_CATEGORY = #{search_rescategory}
|
|
</if>
|
|
<if test=" search_resstate != '' and search_resstate != null">
|
|
AND RES_STATE = #{search_resstate}
|
|
</if>
|
|
<if test=" search_status != '' and search_status != null">
|
|
<if test=" 'reg'.equals(search_status) ">
|
|
AND (ACT_DATE is null or ACT_DATE = '')
|
|
</if>
|
|
<if test=" 'complete'.equals(search_status) ">
|
|
AND (ACT_DATE is not null and ACT_DATE != '')
|
|
</if>
|
|
</if>
|
|
<if test=" search_title != '' and search_title != null">
|
|
AND TITLE LIKE '%${search_title}%'
|
|
</if>
|
|
<if test=" search_reqDateFrom != '' and search_reqDateFrom != null">
|
|
<![CDATA[ AND REQ_REGDATE >= TO_DATE(#{search_reqDateFrom},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_reqDateTo != '' and search_reqDateTo != null">
|
|
<![CDATA[ AND REQ_REGDATE <= TO_DATE(#{search_reqDateTo},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_important != '' and search_important != null">
|
|
AND UPPER(IMPORTANT) = UPPER(#{search_important})
|
|
</if>
|
|
ORDER BY QNA_NO::integer DESC
|
|
) TBL WHERE 1=1
|
|
) T WHERE 1=1
|
|
|
|
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getpopupList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID AS OBJID
|
|
FROM
|
|
(
|
|
SELECT
|
|
B.*,
|
|
(ROW_NUMBER() OVER(ORDER BY REQ_REGDATE DESC)) RNUM
|
|
FROM BOARD B
|
|
WHERE BOARD_TYPE='notice'
|
|
|
|
) A
|
|
WHERE A.RNUM = 1
|
|
</select>
|
|
|
|
<!-- 게시판 상세 내용을 가져온다. -->
|
|
<select id="getBoardDetailInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
(ROW_NUMBER() OVER()) AS RNUM
|
|
,OBJID
|
|
,SYSTEM_TYPE
|
|
,CASE SYSTEM_TYPE
|
|
WHEN 'pdm' THEN 'PDM'
|
|
WHEN 'pms' THEN 'PMS'
|
|
WHEN 'viewer' THEN 'VIEWER'
|
|
ELSE ''
|
|
END SYSTEM_TYPE_TITLE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,TO_CHAR(RES_REGDATE,'YYYY-MM-DD') AS RES_REGDATE_TITLE
|
|
,RES_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_DEPT_NAME
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_DEPT_NAME
|
|
,REQ_REGDATE
|
|
,TO_CHAR(REQ_REGDATE,'YYYY-MM-DD') AS REQ_REGDATE_TITLE
|
|
,PLAN_DATE
|
|
,ACT_DATE
|
|
,QNA_NO
|
|
,RES_STATE
|
|
FROM BOARD
|
|
WHERE 1=1
|
|
|
|
<if test=" objId != '' and objId != null">
|
|
AND OBJID = #{objId}
|
|
</if>
|
|
<if test=" search_systemType != '' and search_systemType != null">
|
|
AND UPPER(SYSTEM_TYPE) = #{search_systemType}
|
|
</if>
|
|
<if test=" search_boardType != '' and search_boardType != null">
|
|
AND UPPER(BOARD_TYPE) = #{search_boardType}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 게시판 댓글을 가져온다. -->
|
|
<select id="getBoardCommentsInfo" parameterType="map" resultType="map">
|
|
select
|
|
c.*
|
|
,(ROW_NUMBER() OVER()) AS RNUM
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = C.user_id) AS U_NAME
|
|
,(SELECT count(1) FROM attach_file_info afi WHERE afi.target_objid::varchar = c.objid::varchar) AS FILE_CNT
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_Y_M_D
|
|
from
|
|
comments c
|
|
where 1 = 1
|
|
and POST_OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 게시판 댓글을 가져온다. -->
|
|
<select id="getBoardCommentsInfoMap" parameterType="map" resultType="map">
|
|
select
|
|
c.*,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = C.user_id) AS U_NAME
|
|
from
|
|
comments c
|
|
where 1 = 1
|
|
and POST_OBJID = #{postObjId}
|
|
and OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 게시판의 개수를 가져온다. -->
|
|
<select id="getBoardListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
(ROW_NUMBER() OVER()) AS RNUM
|
|
,OBJID
|
|
,SYSTEM_TYPE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,TO_CHAR(RES_REGDATE,'YYYY-MM-DD') AS RES_REGDATE_TITLE
|
|
,RES_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_DEPT_NAME
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_DEPT_NAME
|
|
,REQ_REGDATE
|
|
,TO_CHAR(REQ_REGDATE,'YYYY-MM-DD') AS REQ_REGDATE_TITLE
|
|
,QNA_NO
|
|
FROM BOARD
|
|
WHERE 1=1
|
|
<if test=" search_systemType != '' and search_systemType != null">
|
|
AND UPPER(SYSTEM_TYPE) = UPPER(#{search_systemType})
|
|
</if>
|
|
<if test=" search_boardType != '' and search_boardType != null">
|
|
AND UPPER(BOARD_TYPE) = UPPER(#{search_boardType})
|
|
</if>
|
|
<if test=" search_category != '' and search_category != null">
|
|
AND CATEGORY = #{search_reqcategory}
|
|
</if>
|
|
<if test=" search_reqcategory != '' and search_reqcategory != null">
|
|
AND REQ_CATEGORY = #{search_reqcategory}
|
|
</if>
|
|
<if test=" search_rescategory != '' and search_rescategory != null">
|
|
AND RES_CATEGORY = #{search_rescategory}
|
|
</if>
|
|
<if test=" search_resstate != '' and search_resstate != null">
|
|
AND RES_STATE = #{search_resstate}
|
|
</if>
|
|
<if test=" search_status != '' and search_status != null">
|
|
<if test=" 'reg'.equals(search_status) ">
|
|
AND (ACT_DATE is null or ACT_DATE = '')
|
|
</if>
|
|
<if test=" 'complete'.equals(search_status) ">
|
|
AND (ACT_DATE is not null and ACT_DATE != '')
|
|
</if>
|
|
</if>
|
|
<if test=" search_title != '' and search_title != null">
|
|
AND TITLE LIKE '%${search_title}%'
|
|
</if>
|
|
<if test=" search_reqDateFrom != '' and search_reqDateFrom != null">
|
|
<![CDATA[ AND TO_DATE(REQ_REGDATE,'YYYY-MM-DD') >= TO_DATE(#{search_reqDateFrom},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_reqDateTo != '' and search_reqDateTo != null">
|
|
<![CDATA[ AND TO_DATE(REQ_REGDATE,'YYYY-MM-DD') <= TO_DATE(#{search_reqDateTo},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_important != '' and search_important != null">
|
|
AND UPPER(IMPORTANT) = UPPER(#{search_important})
|
|
</if>
|
|
ORDER BY QNA_NO DESC
|
|
) A WHERE 1=1
|
|
) A
|
|
</select>
|
|
|
|
<!-- 게시판 내용을 저장한다. -->
|
|
<update id="mergeBoardInfo" parameterType="map">
|
|
INSERT INTO BOARD
|
|
(
|
|
OBJID
|
|
,SYSTEM_TYPE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,RES_WRITER
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,REQ_REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{systemType}
|
|
,#{boardType}
|
|
,#{category}
|
|
,#{reqCategory}
|
|
,#{resCategory}
|
|
,#{reqContents}
|
|
,#{resContents}
|
|
,#{title}
|
|
,now()
|
|
,#{resWriter}
|
|
,#{important}
|
|
,#{reqWriter}
|
|
,now()
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SYSTEM_TYPE = #{systemType},
|
|
BOARD_TYPE = #{boardType},
|
|
CATEGORY = #{category},
|
|
REQ_CATEGORY = #{reqCategory},
|
|
RES_CATEGORY = #{resCategory},
|
|
REQ_CONTENTS = #{reqContents},
|
|
RES_CONTENTS = #{resContents},
|
|
TITLE = #{title},
|
|
RES_REGDATE = now(),
|
|
RES_WRITER = #{resWriter},
|
|
IMPORTANT = #{important},
|
|
REQ_WRITER = #{reqWriter},
|
|
REQ_REGDATE = now()
|
|
</update>
|
|
|
|
<!-- 게시판 팝업을 통해 내용을 삭제한다. -->
|
|
<delete id="deleteBoardInfo" parameterType="map">
|
|
DELETE FROM BOARD WHERE OBJID = #{objId}
|
|
</delete>
|
|
|
|
<!-- 게시판 리스트를 체크를 통해 삭제한다. -->
|
|
<delete id="deleteBoardListInfo" parameterType="map">
|
|
DELETE FROM BOARD WHERE OBJID = #{OBJECID}
|
|
</delete>
|
|
|
|
<!-- 게시물 댓글을 저장한다. -->
|
|
<update id="mergeBoardContentsInfo" parameterType="map">
|
|
INSERT INTO COMMENTS
|
|
(
|
|
USER_NAME,
|
|
USER_ID,
|
|
CONTENTS,
|
|
COMMENT_OBJID,
|
|
COMMENT_PARENTS,
|
|
POST_OBJID,
|
|
COMMENT_LAYER,
|
|
OBJID,
|
|
CHECK_VIEW,
|
|
REGDATE
|
|
)VALUES(
|
|
#{userName}
|
|
,#{WRITER}
|
|
,#{CONTENTS}
|
|
,#{OBJID}
|
|
,#{COMMENT_PARENTS}
|
|
,#{POST_OBJID}
|
|
,#{COMMENT_LAYER}
|
|
,#{OBJID}
|
|
,'true'
|
|
,now()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
USER_NAME = #{userName} ,
|
|
CONTENTS = #{CONTENTS} ,
|
|
COMMENT_OBJID = #{OBJID} ,
|
|
COMMENT_PARENTS = #{COMMENT_PARENTS} ,
|
|
POST_OBJID = #{POST_OBJID} ,
|
|
COMMENT_LAYER = #{COMMENT_LAYER} ,
|
|
CHECK_VIEW = 'true' ,
|
|
REGDATE = NOW()
|
|
</update>
|
|
|
|
<!-- 게시물 댓글을 삭제한다. -->
|
|
<delete id="deleteBoardContentsInfo" parameterType="map">
|
|
DELETE FROM COMMENTS WHERE COMMENT_OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- 게시판 내용을 저장한다. -->
|
|
<update id="mergeReqBoardInfo" parameterType="map">
|
|
<!-- oracle
|
|
INSERT INTO BOARD T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
T.SYSTEM_TYPE = #{systemType},
|
|
T.BOARD_TYPE = #{boardType},
|
|
T.CATEGORY = #{category},
|
|
T.REQ_CATEGORY = #{reqCategory},
|
|
T.REQ_CONTENTS = #{reqContents},
|
|
T.TITLE = #{title}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID
|
|
,T.SYSTEM_TYPE
|
|
,T.BOARD_TYPE
|
|
,T.CATEGORY
|
|
,T.REQ_CATEGORY
|
|
,T.REQ_CONTENTS
|
|
,T.TITLE
|
|
,T.REQ_WRITER
|
|
,T.REQ_REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{systemType}
|
|
,#{boardType}
|
|
,#{category}
|
|
,#{reqCategory}
|
|
,#{reqContents}
|
|
,#{title}
|
|
,#{reqWriter}
|
|
,SYSDATE
|
|
)
|
|
-->
|
|
INSERT INTO BOARD
|
|
(
|
|
OBJID
|
|
,SYSTEM_TYPE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,REQ_CONTENTS
|
|
,TITLE
|
|
,REQ_WRITER
|
|
,REQ_REGDATE
|
|
,QNA_NO
|
|
,RES_STATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{systemType}
|
|
,#{boardType}
|
|
,#{category}
|
|
,#{reqCategory}
|
|
,#{reqContents}
|
|
,#{title}
|
|
,#{reqWriter}
|
|
,now()
|
|
,(SELECT NEXTVAL('qna_seq'))
|
|
,'접수'
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SYSTEM_TYPE = #{systemType},
|
|
BOARD_TYPE = #{boardType},
|
|
CATEGORY = #{category},
|
|
REQ_CATEGORY = #{reqCategory},
|
|
RES_CATEGORY = #{resCategory},
|
|
REQ_CONTENTS = #{reqContents},
|
|
RES_CONTENTS = #{resContents},
|
|
TITLE = #{title},
|
|
RES_REGDATE = now(),
|
|
RES_WRITER = #{resWriter},
|
|
IMPORTANT = #{important},
|
|
RES_STATE = #{resstate}
|
|
</update>
|
|
<!-- 게시판 내용을 저장한다. -->
|
|
<update id="mergeResBoardInfo" parameterType="map">
|
|
<!-- oracle
|
|
MERGE INTO BOARD T USING DUAL ON ( T.OBJID = #{objId})
|
|
-->
|
|
|
|
<!-- postgresql 15
|
|
MERGE INTO BOARD T
|
|
USING (SELECT #{objId} AS OBJID) AS T1
|
|
ON T.OBJID = T1.OBJID
|
|
WHEN MATCHED THEN
|
|
-->
|
|
|
|
INSERT INTO BOARD
|
|
(
|
|
OBJID
|
|
,SYSTEM_TYPE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,RES_WRITER
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,REQ_REGDATE
|
|
,RES_STATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{systemType}
|
|
,#{boardType}
|
|
,#{category}
|
|
,#{reqCategory}
|
|
,#{resCategory}
|
|
,#{reqContents}
|
|
,#{resContents}
|
|
,#{title}
|
|
,now()
|
|
,#{resWriter}
|
|
,#{important}
|
|
,#{reqWriter}
|
|
,now()
|
|
,#{resstate}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
PLAN_DATE = #{PLAN_DATE},
|
|
ACT_DATE = #{ACT_DATE},
|
|
RES_CATEGORY = #{resCategory},
|
|
RES_CONTENTS = #{resContents},
|
|
RES_REGDATE = now(),
|
|
RES_WRITER = #{resWriter},
|
|
RES_STATE = #{resstate}
|
|
</update>
|
|
|
|
<delete id="deleteReqBoardInfo" parameterType="map">
|
|
DELETE FROM BOARD WHERE OBJID = #{objId}
|
|
</delete>
|
|
|
|
|
|
<!-- Main 페이지에서 보여줄 게시판 목록을 가져온다. -->
|
|
<select id="getMainBoardList" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT
|
|
ROWNUM RNUM
|
|
,OBJID
|
|
,SYSTEM_TYPE
|
|
,BOARD_TYPE
|
|
,CATEGORY
|
|
,REQ_CATEGORY
|
|
,RES_CATEGORY
|
|
,REQ_CONTENTS
|
|
,RES_CONTENTS
|
|
,TITLE
|
|
,RES_REGDATE
|
|
,TO_CHAR(RES_REGDATE,'YYYY-MM-DD') AS RES_REGDATE_TITLE
|
|
,RES_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = RES_WRITER) AS RES_DEPT_NAME
|
|
,IMPORTANT
|
|
,REQ_WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REQ_WRITER) AS REQ_DEPT_NAME
|
|
,REQ_REGDATE
|
|
,TO_CHAR(REQ_REGDATE,'YYYY-MM-DD') AS REQ_REGDATE_TITLE
|
|
,DECODE(RES_WRITER,null,'N','','N') AS COMPLETE_FLAG
|
|
,DECODE(REQ_WRITER,#{userId},'Y') AS REQ_WRITER_FLAG
|
|
FROM BOARD
|
|
WHERE 1=1
|
|
<if test=" search_systemType != '' and search_systemType != null">
|
|
AND UPPER(SYSTEM_TYPE) = UPPER(#{search_systemType})
|
|
</if>
|
|
<if test=" search_boardType != '' and search_boardType != null">
|
|
AND UPPER(BOARD_TYPE) = UPPER(#{search_boardType})
|
|
</if>
|
|
<if test=" search_title != '' and search_title != null">
|
|
AND TITLE LIKE '%${search_title}%'
|
|
</if>
|
|
<if test=" search_reqDateFrom != '' and search_reqDateFrom != null">
|
|
<![CDATA[ AND REQ_REGDATE >= TO_DATE(#{search_reqDateFrom},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_reqDateTo != '' and search_reqDateTo != null">
|
|
<![CDATA[ AND REQ_REGDATE <= TO_DATE(#{search_reqDateTo},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test=" search_important != '' and search_important != null">
|
|
AND UPPER(IMPORTANT) = UPPER(#{search_important})
|
|
</if>
|
|
ORDER BY IMPORTANT,REQ_REGDATE DESC
|
|
)<![CDATA[WHERE RNUM <= #{viewCount}]]>
|
|
|
|
</select>
|
|
|
|
|
|
</mapper> |