- 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
223 lines
6.8 KiB
XML
223 lines
6.8 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="distribution">
|
|
|
|
<!-- 비정규배포 관리 목록 -->
|
|
<select id="getDistributionMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT ROWNUM RNUM
|
|
, OBJID
|
|
, RECEIVE_TYPE
|
|
, SUB_RECEIVE_TYPE
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = ID.CAR_OBJID) CAR_NAME
|
|
, TO_CHAR(RECEIVE_DATE,'YYYY-MM-DD') RECEIVE_DATE
|
|
, SUBJECT
|
|
, CONTENTS
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = ID.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = ID.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, TO_CHAR(RELEASE_DATE,'YYYY-MM-DD') RELEASE_DATE_TITLE
|
|
, STATUS
|
|
, WRITER
|
|
, DECODE(STATUS,'create','작성중','release','배포완료') AS STATUS_TITLE
|
|
FROM IRREGULAR_DISTRIBUTE ID
|
|
)
|
|
WHERE 1=1
|
|
<if test="search_subject != null and search_subject != ''">
|
|
AND SUBJECT LIKE '%'||#{search_subject}||'%'
|
|
</if>
|
|
<if test="search_receiveType != null and search_receiveType != ''">
|
|
AND RECEIVE_TYPE = #{search_receiveType}
|
|
</if>
|
|
<if test="search_subReceiveType != null and search_subReceiveType != ''">
|
|
AND SUB_RECEIVE_TYPE = #{search_subReceiveType}
|
|
</if>
|
|
<if test="search_carObjid != null and search_carObjid != ''">
|
|
AND CAR_OBJID = #{search_carObjid}
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(RECEIVE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(RECEIVE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
)
|
|
WHERE <![CDATA[ RNUM <= #{PAGE_END} ]]>
|
|
AND <![CDATA[ RNUM >= #{PAGE_START}]]>
|
|
</if>
|
|
ORDER BY RNUM
|
|
</select>
|
|
|
|
<!-- 비정규 배포의 목록count를 가져온다. -->
|
|
<select id="getDistributionMngListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM IRREGULAR_DISTRIBUTE
|
|
)
|
|
</select>
|
|
|
|
<!-- 비정규배포 등록/수정 -->
|
|
<update id="mergeDistribution" parameterType="map">
|
|
MERGE INTO IRREGULAR_DISTRIBUTE ID USING DUAL on (ID.OBJID = #{distributeObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET
|
|
ID.RECEIVE_TYPE = #{receiveType},
|
|
ID.SUB_RECEIVE_TYPE = #{subReceiveType},
|
|
ID.CAR_OBJID = #{search_carObjid},
|
|
ID.RECEIVE_DATE = #{receiveDate},
|
|
ID.SUBJECT = #{subject},
|
|
ID.CONTENTS = #{contents}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
ID.OBJID,
|
|
ID.RECEIVE_TYPE,
|
|
ID.SUB_RECEIVE_TYPE,
|
|
ID.CAR_OBJID,
|
|
ID.RECEIVE_DATE,
|
|
ID.SUBJECT,
|
|
ID.CONTENTS,
|
|
ID.WRITER,
|
|
ID.REGDATE,
|
|
ID.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{distributeObjid},
|
|
#{receiveType},
|
|
#{subReceiveType},
|
|
#{search_carObjid},
|
|
#{receiveDate},
|
|
#{subject},
|
|
#{contents},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 비정규 배포처 등록/수정 -->
|
|
<update id="mergeDistributionPoint" parameterType="map">
|
|
MERGE INTO IRREGULAR_DISTRIBUTE_POINT IDP USING DUAL on (IDP.OBJID = #{distributePointObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET
|
|
IDP.RECEIPT_DATE = SYSDATE
|
|
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
IDP.OBJID,
|
|
IDP.DISTRIBUTE_OBJID,
|
|
IDP.RECEIPT_USER_ID,
|
|
IDP.CAR_OBJID,
|
|
IDP.DISTRIBUTE_USER_ID,
|
|
IDP.DISTRIBUTE_DATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{distributePointObjid},
|
|
#{distributeObjid},
|
|
#{userId},
|
|
#{search_carObjid},
|
|
#{writer},
|
|
SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- 비정규배포 단건 조회 -->
|
|
<select id="getDistributionInfo" parameterType="map" resultType="map">
|
|
SELECT ROWNUM RNUM
|
|
, OBJID
|
|
, RECEIVE_TYPE
|
|
, SUB_RECEIVE_TYPE
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = ID.CAR_OBJID) CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = ID.CAR_OBJID) CAR_CODE
|
|
, TO_CHAR(RECEIVE_DATE,'YYYY-MM-DD') RECEIVE_DATE
|
|
, SUBJECT
|
|
, CONTENTS
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = ID.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = ID.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, WRITER
|
|
, DECODE(STATUS,'create','작성중','release','배포완료') AS STATUS_TITLE
|
|
FROM IRREGULAR_DISTRIBUTE ID
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 배포처의 상태를 변경한다. -->
|
|
<update id="changeDistributeStatus" parameterType="map">
|
|
UPDATE IRREGULAR_DISTRIBUTE SET STATUS = #{status}, RELEASE_DATE = SYSDATE WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 배포처에 해당하는 인원의 배포내용 확인여부를 merge 한다. -->
|
|
<update id="mergeDistributeConfirm" parameterType="map">
|
|
MERGE INTO IRREGULAR_DISTRIBUTE_POINT IDP USING DUAL ON (IDP.DISTRIBUTE_OBJID = #{objId} AND IDP.RECEIPT_USER_ID = #{userId})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
IDP.CAR_OBJID
|
|
,IDP.DISTRIBUTE_DATE
|
|
,IDP.DISTRIBUTE_OBJID
|
|
,IDP.DISTRIBUTE_USER_ID
|
|
,IDP.OBJID
|
|
,IDP.RECEIPT_DATE
|
|
,IDP.RECEIPT_USER_ID
|
|
)
|
|
VALUES
|
|
(
|
|
#{carObjId}
|
|
,TO_DATE(#{distributeDate})
|
|
,#{distributeObjid}
|
|
,#{distributeUserId}
|
|
,#{objId}
|
|
,SYSDATE
|
|
,#{userId}
|
|
)
|
|
|
|
</update>
|
|
|
|
<!-- 배포처에 해당하는 배포인원들의 확인여부 목록을 가져온다. -->
|
|
<select id="getDistributeMemberList" parameterType="map" resultType="map">
|
|
SELECT
|
|
IDP.OBJID
|
|
,ROWNUM RNUM
|
|
,IDP.CAR_OBJID
|
|
,IDP.DISTRIBUTE_DATE
|
|
,IDP.DISTRIBUTE_OBJID
|
|
,IDP.DISTRIBUTE_USER_ID
|
|
,IDP.RECEIPT_DATE
|
|
,TO_CHAR(IDP.RECEIPT_DATE,'YYYY-MM-DD') RECEIPT_DATE_TITLE
|
|
,IDP.RECEIPT_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = IDP.RECEIPT_USER_ID)USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = IDP.RECEIPT_USER_ID)DEPT_NAME
|
|
FROM IRREGULAR_DISTRIBUTE_POINT IDP
|
|
WHERE DISTRIBUTE_OBJID = #{objId}
|
|
</select>
|
|
|
|
</mapper>
|
|
|