- 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
590 lines
20 KiB
XML
590 lines
20 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="approval">
|
|
<!-- //approval 단건조회 -->
|
|
<select id="selectApprovalInfo" parameterType="map" resultType="map">
|
|
SELECT * FROM(
|
|
SELECT
|
|
(ROW_NUMBER() OVER(ORDER BY REGDATE DESC)) AS ROWNUM,
|
|
OBJID ,
|
|
TARGET_OBJID ,
|
|
TARGET_TYPE ,
|
|
APPROVAL_SEQ ,
|
|
TO_CHAR(REGDATE, 'YYYY-MM-DD HH24:MI:SS') AS REGDATE ,
|
|
REGDATE AS REGDATE_ORG,
|
|
STATUS
|
|
FROM
|
|
APPROVAL
|
|
WHERE 1 = 1
|
|
<if test="targetObjId != null and !''.equals(targetObjId)">
|
|
AND TARGET_OBJID = #{targetObjId}::numeric
|
|
</if>
|
|
|
|
|
|
<if test="search_type != null and !''.equals(search_type) and 'last'.equals(search_type)">
|
|
ORDER BY REGDATE DESC
|
|
</if>
|
|
|
|
)A WHERE 1=1 AND ROWNUM = '1'
|
|
</select>
|
|
|
|
<!-- //approval 등록 -->
|
|
<insert id="insertApprovalInfo" parameterType="map">
|
|
INSERT INTO APPROVAL(
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, TARGET_TYPE
|
|
, APPROVAL_SEQ
|
|
, SYSTEM_TYPE
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{objId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{targetType}
|
|
, (SELECT COALESCE(MAX(APPROVAL_SEQ::numeric)+ 1,1) from APPROVAL)
|
|
, #{systemType}
|
|
, now()
|
|
, 'inProcess'
|
|
)
|
|
</insert>
|
|
|
|
<!-- //approval의 status를 inProcess로 변경. -->
|
|
<update id="changeApprovalStatus" parameterType="map">
|
|
UPDATE APPROVAL SET STATUS = #{status} WHERE OBJID = #{approvalObjId}::numeric
|
|
</update>
|
|
<update id="changeApprovalStatusByTargetObjId" parameterType="map">
|
|
UPDATE APPROVAL SET STATUS = #{status} WHERE TARGET_OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //route 생성 -->
|
|
<insert id="createRouteInfo" parameterType="map">
|
|
INSERT INTO ROUTE (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, APPROVAL_OBJID
|
|
, ROUTE_SEQ
|
|
, APPROVAL_TITLE
|
|
, APPROVAL_DESC
|
|
, SYSTEM_TYPE
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{routeObjId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{approvalObjId}::numeric
|
|
, (SELECT COALESCE(MAX(ROUTE_SEQ::numeric)+ 1,1) from ROUTE)
|
|
, #{approvalTitle}
|
|
, #{approvalDescription}
|
|
, #{systemType}
|
|
, #{writer}
|
|
, now()
|
|
, 'inProcess'
|
|
)
|
|
</insert>
|
|
|
|
<!-- //APPROVAL_TARGET 생성 -->
|
|
<insert id="createApprovalTagetInfo" parameterType="map">
|
|
INSERT INTO APPROVAL_TARGET (
|
|
OBJID
|
|
, MASTER_TARGET_OBJID
|
|
, TARGET_OBJID
|
|
, APPROVAL_OBJID
|
|
, WRITER
|
|
, REGDATE
|
|
) VALUES (
|
|
#{objId}::numeric
|
|
, #{masterTargetObjId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{approvalObjId}::numeric
|
|
, #{writer}
|
|
, now()
|
|
)
|
|
</insert>
|
|
|
|
<!-- //inboxtask 생성 -->
|
|
<insert id="createInboxTaskInfo" parameterType="map">
|
|
INSERT INTO INBOXTASK(
|
|
OBJID
|
|
, SEQ
|
|
, APPROVAL_TYPE
|
|
, TARGET_OBJID
|
|
, APPROVAL_OBJID
|
|
, ROUTE_OBJID
|
|
, TARGET_USER_ID
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{inboxTaskObjId}::numeric
|
|
, #{seq}::numeric
|
|
, #{approvalType}
|
|
, #{targetObjId}::numeric
|
|
, #{approvalObjId}::numeric
|
|
, #{routeObjId}::numeric
|
|
, #{targetUserId}
|
|
, now()
|
|
, #{status}
|
|
)
|
|
</insert>
|
|
<!-- //결재함의 목록 조회 -->
|
|
<select id="selectApprovalList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT ROW_NUMBER() OVER(ORDER BY ROUTE_REGDATE_ORG DESC) AS RNUM, AA.*
|
|
, AK.TARGET_NAME
|
|
FROM (
|
|
SELECT A.OBJID AS APPROVAL_OBJID
|
|
, A.TARGET_OBJID
|
|
, A.TARGET_TYPE
|
|
, A.APPROVAL_SEQ
|
|
, REPLACE('APPROVAL-'||TO_CHAR(A.APPROVAL_SEQ::numeric, '0009'), ' ', '') AS APPROVAL_NO
|
|
, A.STATUS AS APPROVAL_STATUS
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS APPROVAL_REGDATE
|
|
, B.OBJID AS ROUTE_OBJID
|
|
, B.ROUTE_SEQ
|
|
, REPLACE('ROUTE-'||TO_CHAR(B.ROUTE_SEQ::numeric, '0009'), ' ', '') AS ROUTE_NO
|
|
, B.APPROVAL_TITLE
|
|
, B.APPROVAL_DESC
|
|
, B.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_USER_NAME
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS ROUTE_REGDATE
|
|
, B.REGDATE AS ROUTE_REGDATE_ORG
|
|
, B.STATUS
|
|
, INBOX.TARGET_USER_ID
|
|
<if test="connectUserId != null and !''.equals(connectUserId)">
|
|
, (SELECT COUNT(*) AS CNT FROM INBOXTASK WHERE 1=1 AND TARGET_USER_ID = #{connectUserId} AND (APPROVAL_OBJID = A.OBJID OR ROUTE_OBJID = B.OBJID) AND UPPER(STATUS) = 'READY') AS MY_APPROVAL
|
|
, (SELECT COUNT(*) AS CNT FROM INBOXTASK WHERE 1=1 AND TARGET_USER_ID = #{connectUserId} AND (APPROVAL_OBJID = A.OBJID OR ROUTE_OBJID = B.OBJID) AND UPPER(STATUS) = 'READY') AS MY_READY_APPROVAL
|
|
</if>
|
|
FROM APPROVAL A, ROUTE B
|
|
,INBOXTASK INBOX
|
|
WHERE 1=1
|
|
AND A.OBJID = B.APPROVAL_OBJID
|
|
AND A.SYSTEM_TYPE = #{systemType}
|
|
AND INBOX.APPROVAL_OBJID = A.OBJID
|
|
AND INBOX.ROUTE_OBJID = B.OBJID
|
|
AND UPPER(INBOX.STATUS) = 'READY'
|
|
AND B.STATUS ='inProcess'
|
|
<!-- AND UPPER(B.STATUS) = UPPER('inProcess') -->
|
|
) AA
|
|
LEFT OUTER JOIN APPROVAL_KIND AK
|
|
ON AA.TARGET_TYPE = AK.TARGET_TYPE
|
|
WHERE 1=1
|
|
<if test="connectUserId != null and !'plm_admin'.equals(connectUserId) and !'READY'.equals(header_approvalStatus)">
|
|
<!--
|
|
AND (MY_APPROVAL <![CDATA[ > ]]> 0 OR AA.WRITER = #{connectUserId})
|
|
-->
|
|
AND AA.TARGET_USER_ID = #{connectUserId}
|
|
</if>
|
|
<if test="search_approvalTitle != null and !''.equals(search_approvalTitle)">
|
|
AND UPPER(AA.APPROVAL_TITLE) LIKE '%${search_approvalTitle}%'
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND AA.ROUTE_REGDATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND AA.ROUTE_REGDATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_writerUserName != null and !''.equals(search_writerUserName)">
|
|
AND UPPER(AA.WRITER_USER_NAME) LIKE UPPER('%${search_writerUserName}%')
|
|
</if>
|
|
<if test="search_approvalStatus != null and !''.equals(search_approvalStatus)">
|
|
AND UPPER(AA.STATUS) = UPPER(#{search_approvalStatus})
|
|
</if>
|
|
<if test="'READY'.equals(header_approvalStatus)">
|
|
AND MY_READY_APPROVAL <![CDATA[ > ]]> 0
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</if>
|
|
</select>
|
|
<!-- //결재함의 목록 갯수 -->
|
|
<select id="selectApprovalListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT::FLOAT/20)::INTEGER AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT *
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.OBJID AS APPROVAL_OBJID
|
|
, A.TARGET_OBJID
|
|
, A.TARGET_TYPE
|
|
, A.APPROVAL_SEQ
|
|
, REPLACE('APPROVAL-'||TO_CHAR(A.APPROVAL_SEQ::numeric, '0009'), ' ', '') AS APPROVAL_NO
|
|
, A.STATUS AS APPROVAL_STATUS
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS APPROVAL_REGDATE
|
|
, B.OBJID AS ROUTE_OBJID
|
|
, B.ROUTE_SEQ
|
|
, REPLACE('ROUTE-'||TO_CHAR(B.ROUTE_SEQ::numeric, '0009'), ' ', '') AS ROUTE_NO
|
|
, B.APPROVAL_TITLE
|
|
, B.APPROVAL_DESC
|
|
, B.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_USER_NAME
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS ROUTE_REGDATE
|
|
, B.STATUS
|
|
, INBOX.TARGET_USER_ID
|
|
<if test="connectUserId != null and !''.equals(connectUserId)">
|
|
, (SELECT COUNT(*) AS CNT FROM INBOXTASK WHERE 1=1 AND TARGET_USER_ID = #{connectUserId} AND (APPROVAL_OBJID = A.OBJID OR ROUTE_OBJID = B.OBJID) AND UPPER(STATUS) = 'READY') AS MY_APPROVAL
|
|
, (SELECT COUNT(*) AS CNT FROM INBOXTASK WHERE 1=1 AND TARGET_USER_ID = #{connectUserId} AND (APPROVAL_OBJID = A.OBJID OR ROUTE_OBJID = B.OBJID) AND UPPER(STATUS) = 'READY') AS MY_READY_APPROVAL
|
|
</if>
|
|
|
|
FROM APPROVAL A, ROUTE B
|
|
,INBOXTASK INBOX
|
|
WHERE 1=1
|
|
AND A.OBJID = B.APPROVAL_OBJID
|
|
AND A.SYSTEM_TYPE = #{systemType}
|
|
AND INBOX.APPROVAL_OBJID = A.OBJID
|
|
AND INBOX.ROUTE_OBJID = B.OBJID
|
|
AND UPPER(INBOX.STATUS) = 'READY'
|
|
AND B.STATUS ='inProcess'
|
|
) AA
|
|
LEFT OUTER JOIN APPROVAL_KIND AK
|
|
ON AA.TARGET_TYPE = AK.TARGET_TYPE
|
|
WHERE 1=1
|
|
<if test="connectUserId != null and !'plm_admin'.equals(connectUserId) and !'READY'.equals(header_approvalStatus)">
|
|
<!--
|
|
AND (MY_APPROVAL <![CDATA[ > ]]> 0 OR AA.WRITER = #{connectUserId})
|
|
-->
|
|
AND AA.TARGET_USER_ID = #{connectUserId}
|
|
</if>
|
|
<if test="search_approvalTitle != null and !''.equals(search_approvalTitle)">
|
|
AND UPPER(AA.APPROVAL_TITLE) LIKE '%${search_approvalTitle}%'
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND AA.ROUTE_REGDATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND AA.ROUTE_REGDATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_writerUserName != null and !''.equals(search_writerUserName)">
|
|
AND UPPER(AA.WRITER_USER_NAME) LIKE UPPER('%${search_writerUserName}%')
|
|
</if>
|
|
<if test="search_approvalStatus != null and !''.equals(search_approvalStatus)">
|
|
AND UPPER(AA.STATUS) = UPPER(#{search_approvalStatus})
|
|
</if>
|
|
<if test="'READY'.equals(header_approvalStatus)">
|
|
AND MY_READY_APPROVAL <![CDATA[ > ]]> 0
|
|
</if>
|
|
) AA
|
|
) A
|
|
</select>
|
|
<!-- //Route 상세 -->
|
|
<select id="getRouteInfo" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS APPROVAL_OBJID
|
|
, B.OBJID AS ROUTE_OBJID
|
|
, A.TARGET_TYPE
|
|
, 'APPROVAL-'||LPAD(A.APPROVAL_SEQ::TEXT, 4, '0') AS APPROVAL_NO
|
|
, 'ROUTE-'||LPAD(B.ROUTE_SEQ::TEXT, 4, '0') AS ROUTE_NO
|
|
, B.TARGET_OBJID
|
|
, B.APPROVAL_TITLE
|
|
, B.APPROVAL_DESC
|
|
, B.WRITER
|
|
, (SELECT EMAIL FROM USER_INFO WHERE USER_ID = B.WRITER) AS EMAIL
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS WRITER_USER_NAME
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS ROUTE_REGDATE
|
|
, B.STATUS
|
|
FROM APPROVAL A, ROUTE B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.APPROVAL_OBJID
|
|
AND B.OBJID = #{routeObjId}::integer
|
|
</select>
|
|
<!-- //ROUTE 목록 -->
|
|
<select id="getRouteList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS APPROVAL_OBJID
|
|
, B.OBJID AS ROUTE_OBJID
|
|
, 'APPROVAL-'||LPAD(APPROVAL_SEQ::TEXT, 4, '0') AS APPROVAL_NO
|
|
, 'ROUTE-'||LPAD(ROUTE_SEQ::TEXT, 4, '0') AS ROUTE_NO
|
|
, B.STATUS
|
|
FROM APPROVAL A, ROUTE B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.APPROVAL_OBJID
|
|
AND A.OBJID = #{approvalObjId}::integer
|
|
ORDER BY B.REGDATE DESC
|
|
</select>
|
|
<!-- //route별 inboxtask 목록 -->
|
|
<select id="selectInboxtaskList" parameterType="map" resultType="map">
|
|
SELECT OBJID AS INBOXTASK_OBJID
|
|
, SEQ
|
|
, TARGET_USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = TARGET_USER_ID) AS DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TARGET_USER_ID) AS USER_NAME
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, TO_CHAR(PROC_DATE, 'YYYY-MM-DD') AS PROC_DATE
|
|
, STATUS
|
|
, COALESCE(RESULT_MESSAGE,'') AS RESULT_MESSAGE
|
|
, SIGN
|
|
, SIGN_WIDTH
|
|
, SIGN_HEIGHT
|
|
FROM INBOXTASK
|
|
WHERE 1=1
|
|
AND ROUTE_OBJID = #{routeObjId}::integer
|
|
AND APPROVAL_TYPE = #{approvalType}
|
|
ORDER BY SEQ
|
|
</select>
|
|
|
|
<!-- //inboxtask 담당자 결과처리 -->
|
|
<update id="setInboxtaskResult" parameterType="map">
|
|
UPDATE INBOXTASK
|
|
SET RESULT = #{result}, STATUS = #{status}, PROC_DATE = now(), RESULT_MESSAGE = #{resultMessage}
|
|
,SIGN = #{SIGN}
|
|
,SIGN_WIDTH = #{SIGN_WIDTH}
|
|
,SIGN_HEIGHT = #{SIGN_HEIGHT}
|
|
WHERE OBJID = #{inboxtaskObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //다음 차례의 결재자가 있는지 확인 -->
|
|
<select id="getNextApprovalObjId" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID AS INBOXTASK_OBJID
|
|
,TARGET_USER_ID
|
|
,TARGET_OBJID
|
|
,(SELECT O.EMAIL FROM USER_INFO O WHERE O.USER_ID = TARGET_USER_ID) AS EMAIL
|
|
FROM INBOXTASK
|
|
WHERE 1=1
|
|
AND UPPER(APPROVAL_TYPE) = 'NORMAL'
|
|
AND APPROVAL_OBJID = #{approvalObjId}::numeric
|
|
AND ROUTE_OBJID = #{routeObjId}::numeric
|
|
AND SEQ = #{nextSeq}
|
|
</select>
|
|
<!-- //다음 차례의 결재자상태를 ready로 변경 -->
|
|
<update id="setNextInboxtaskStatus" parameterType="string">
|
|
UPDATE INBOXTASK SET STATUS = 'ready', REGDATE = now() WHERE OBJID = #{nextInboxtaskObjId}::numeric
|
|
</update>
|
|
|
|
<!-- route별 inboxtask의 상태가 ready나 standby가 있는지 확인. (결재가 완료되었는지 확인하기 위함) -->
|
|
<select id="getNotCompleteInboxtaskCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM INBOXTASK
|
|
WHERE 1=1
|
|
AND ROUTE_OBJID = #{routeObjId}::numeric
|
|
AND STATUS IN ('ready', 'standby')
|
|
</select>
|
|
|
|
<!-- //route를 종결시킨다.(complete, reject) -->
|
|
<update id="completeRoute" parameterType="map">
|
|
UPDATE ROUTE SET STATUS = #{completeStatus} WHERE OBJID = #{routeObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //route를 상태 update(complete, reject, cancel) -->
|
|
<update id="updateRouteStatus" parameterType="map">
|
|
UPDATE ROUTE SET STATUS = #{status} WHERE OBJID = #{routeObjId}::numeric
|
|
</update>
|
|
<update id="updateRouteStatusByApprovalObjId" parameterType="map">
|
|
UPDATE ROUTE SET STATUS = #{status} WHERE APPROVAL_OBJID = #{approvalObjId}::numeric
|
|
</update>
|
|
<update id="updateRouteStatusByTargetObjId" parameterType="map">
|
|
UPDATE ROUTE SET STATUS = #{status} WHERE TARGET_OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //reject일 경우 해당 route의 상태값이 reject, complete인것을 제외한 값을 cancel로 변경한다. -->
|
|
<update id="cancelInboxtask" parameterType="map">
|
|
UPDATE INBOXTASK SET STATUS = 'cancel' WHERE STATUS NOT IN ('complete', 'reject') AND ROUTE_OBJID = #{routeObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //approval 종결 -->
|
|
<update id="completeApproval" parameterType="map">
|
|
UPDATE APPROVAL SET STATUS = 'complete', COMPLETE_DATE = now() WHERE OBJID = #{approvalObjId}::numeric
|
|
</update>
|
|
|
|
<!-- //targetType을 가져온다. -->
|
|
<select id="getTargetType" parameterType="map" resultType="map">
|
|
SELECT
|
|
TARGET_TYPE
|
|
, TARGET_OBJID
|
|
FROM APPROVAL
|
|
WHERE 1=1
|
|
AND OBJID = #{approvalObjId}::numeric
|
|
</select>
|
|
|
|
<!-- //eo의 상태를 변경한다. -->
|
|
<update id="changeEOStatus" parameterType="map">
|
|
UPDATE EO_INFO SET STATUS = #{status} WHERE OBJID = #{TARGET_OBJID}
|
|
</update>
|
|
|
|
<!-- EO의 차종에 해당하는 배포처의 목록을 가져온다. -->
|
|
<select id="getEODistributeMemberList" parameterType="map" resultType="map">
|
|
SELECT
|
|
MEMBER.OBJID
|
|
,(SELECT EMAIL FROM USER_INFO WHERE USER_ID = MEMBER.MEMBER_USER_ID) AS EMAIL
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = MEMBER.MEMBER_USER_ID) AS USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = MEMBER.MEMBER_USER_ID) AS DEPT_NAME
|
|
,MEMBER.MEMBER_SABUN
|
|
,MEMBER.MEMBER_USER_ID
|
|
,MEMBER.CAR_OBJID
|
|
,MEMBER.REGDATE
|
|
,MEMBER.STATUS
|
|
FROM CAR_DISTRIBUTE_MEMBER MEMBER
|
|
WHERE MEMBER.CAR_OBJID = (SELECT CAR_OBJID FROM EO_INFO WHERE OBJID = #{targetObjId})
|
|
</select>
|
|
|
|
<!-- //통합문제점 그룹의 상태를 변경한다. -->
|
|
<update id="changeProblemApprovalStatus" parameterType="map">
|
|
UPDATE PMS_PROBLEM_GROUP SET
|
|
APPROVAL_STATUS = #{status}
|
|
<if test="routeObjId != null and !''.equals(routeObjId)">
|
|
, CURRENT_ROUTE_OBJID = #{routeObjId}
|
|
</if>
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- 설계 체크리스트 상태를 변경한다. -->
|
|
<update id="changeDesignCheckListApprovalStatus" parameterType="map">
|
|
UPDATE PMS_DESIGN_CHK_LIST_BASE_INFO SET
|
|
APPROVAL_STATUS = #{status}
|
|
<if test="routeObjId != null and !''.equals(routeObjId)">
|
|
, CURRENT_ROUTE_OBJID = #{routeObjId}
|
|
</if>
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- 이슈 상태를 변경한다. -->
|
|
<update id="changeIssueMgmtApprovalStatus" parameterType="map">
|
|
UPDATE ISSUE_MGMT SET
|
|
WPST_CD = #{status}
|
|
,RET_DATE = SYSDATE
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- 발주관리 상태를 변경한다. -->
|
|
<update id="changeMaterApprovalStatus" parameterType="map">
|
|
UPDATE MATERIAL_MASTER_MGMT SET
|
|
STATUS_CD = #{status}
|
|
WHERE MATERIAL_MASTER_OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<!-- 중고관리 상태를 변경한다. -->
|
|
<update id="changeUsedMngApprovalStatus" parameterType="map">
|
|
UPDATE USED_MNG SET
|
|
STATUS = (SELECT CODE_ID FROM COMM_CODE WHERE PARENT_CODE_ID = #{statusCommCD} AND CODE_NAME = #{statusName})
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="changeCustomerMngApprovalStatus" parameterType="map">
|
|
UPDATE CUSTOMER_MNG SET
|
|
STATUS = (SELECT CODE_ID FROM COMM_CODE WHERE PARENT_CODE_ID = #{statusCommCD} AND CODE_NAME = #{statusName})
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="checkReportMngApprovalStatus" parameterType="map">
|
|
UPDATE CHECK_REPORT_MNG SET
|
|
STATUS = #{status}
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="eoMngApprovalStatus" parameterType="map">
|
|
UPDATE EO_MNG SET
|
|
<if test="'approvalComplete'.equals(status)">
|
|
DEPLOY_DATE = NOW(),
|
|
DEPLOY_WRITER = #{writer},
|
|
</if>
|
|
STATUS = #{status}
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="moldDevRequestApprovalStatus" parameterType="map">
|
|
UPDATE MOLD_DEV_REQUEST_INFO SET
|
|
STATUS = #{status}
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<update id="EcrMngApprovalStatus" parameterType="map">
|
|
UPDATE ECR_MNG
|
|
SET STATUS_CD = #{status}
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="ASMngApprovalStatus" parameterType="map">
|
|
UPDATE AS_MNG
|
|
SET STATUS_CD = #{status}
|
|
WHERE OBJID = #{targetObjId}::numeric
|
|
</update>
|
|
|
|
<update id="CSMApprovalStatus" parameterType="map">
|
|
UPDATE CUSTOMER_SERVICE_MGMT
|
|
SET STATUS = #{status}
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<update id="salesRequestApprovalStatus" parameterType="map">
|
|
UPDATE SALES_REQUEST_MASTER
|
|
SET STATUS = #{status}
|
|
WHERE OBJID::varchar = #{targetObjId}::varchar
|
|
</update>
|
|
|
|
<update id="purchaseOrderApprovalStatus" parameterType="map">
|
|
UPDATE PURCHASE_ORDER_MASTER
|
|
SET
|
|
STATUS = #{status}
|
|
<if test="'approvalComplete'.equals(status)">
|
|
,PURCHASE_DATE = TO_CHAR(NOW(),'YYYY-MM-DD')
|
|
</if>
|
|
WHERE ( OBJID::varchar = #{targetObjId}::varchar
|
|
OR MULTI_MASTER_OBJID::varchar = #{targetObjId}::varchar)
|
|
AND STATUS != 'cancel'
|
|
</update>
|
|
|
|
<!-- //발주 상태 가져온다. -->
|
|
<select id="getmaterstatus" parameterType="map" resultType="map">
|
|
SELECT STATUS_CD
|
|
FROM MATERIAL_MASTER_MGMT
|
|
WHERE MATERIAL_MASTER_OBJID = #{TARGET_OBJID}
|
|
</select>
|
|
|
|
<!-- //접속자의 결재건수를 가져온다. -->
|
|
<select id="getApprovalCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT
|
|
FROM
|
|
INBOXTASK INBOX,
|
|
APPROVAL APP,
|
|
ROUTE ROU
|
|
WHERE 1=1
|
|
AND TARGET_USER_ID = #{userId}
|
|
AND INBOX.APPROVAL_OBJID = APP.OBJID
|
|
AND INBOX.ROUTE_OBJID = ROU.OBJID
|
|
AND APP.SYSTEM_TYPE = #{systemType}
|
|
AND UPPER(INBOX.STATUS) = 'READY'
|
|
AND ROU.STATUS ='inProcess'
|
|
</select>
|
|
|
|
<select id="getApprovalLine" resultType="map" parameterType="map">
|
|
SELECT
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = T1.WRITER) AS WRITER,
|
|
TO_CHAR(T1.REGDATE, 'YYYY-MM-DD') AS REGDATE,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = T2.TARGET_USER_ID) AS TARGET_USER_NAME,
|
|
TO_CHAR(T2.PROC_DATE, 'YYYY-MM-DD') AS PROC_DATE,
|
|
T2.SEQ,
|
|
T2.STATUS
|
|
FROM
|
|
APPROVAL T,
|
|
ROUTE T1,
|
|
INBOXTASK T2
|
|
WHERE
|
|
T.OBJID = T1.APPROVAL_OBJID
|
|
<if test="objId != null and !''.equals(objId)">
|
|
AND T.TARGET_OBJID = #{objId}::integer
|
|
</if>
|
|
<if test="OBJID != null and !''.equals(OBJID)">
|
|
AND T.TARGET_OBJID = #{OBJID}::integer
|
|
</if>
|
|
AND T1.STATUS != 'reject'
|
|
AND T1.OBJID = T2.ROUTE_OBJID
|
|
ORDER BY
|
|
T1.REGDATE,
|
|
T2.SEQ ASC
|
|
</select>
|
|
|
|
</mapper> |