(
SELECT
OBJID,
MNG_NUMBER,
MNG_TYPE,
PRODUCT_DIVISION,
PROJECT_OBJID,
(SELECT PROJECT_NO FROM ORDER_MGMT O WHERE O.ORDER_MGMT_OBJID = T.PROJECT_OBJID) AS PROJECT_NO,
RECEPTION_DATE,
TO_CHAR(T.RECEPTION_DATE,'YYYY-MM-DD') AS RECEPTION_DATE_TITLE,
EVENT_LOCATION,
ACTION_DATE,
TO_CHAR(T.ACTION_DATE,'YYYY-MM-DD') AS ACTION_DATE_TITLE,
CUSTOMER_NAME,
TITLE,
PERFORMER,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_TITLE,
ANALYSIS,
MEASURE,
MEASURE_TYPE,
MEASURE_AMOUNT,
REGDATE,
EDITDATE,
TO_CHAR(T.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
TO_CHAR(T.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
TO_CHAR(T.EDITDATE,'YYYY-MM-DD') AS EDITDATE_TITLE,
STATUS,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
CUSTOMER_MNG T
LEFT OUTER JOIN
(
SELECT
B.OBJID AS ROUTE_OBJID,
CASE B.STATUS
WHEN 'inProcess' THEN '결재중'
WHEN 'complete' THEN '결재완료'
WHEN 'reject' THEN '반려'
ELSE ''
END APPR_STATUS,
A.OBJID AS APPROVAL_OBJID,
A.TARGET_OBJID,
B.ROUTE_SEQ
FROM
APPROVAL A,
(
select
T1.*
from
(
select
TARGET_OBJID,
max(T.ROUTE_SEQ) as ROUTE_SEQ
from
ROUTE T
group by
T.TARGET_OBJID
) T,
ROUTE T1
where
T.TARGET_OBJID = T1.TARGET_OBJID
and T.ROUTE_SEQ = T1.ROUTE_SEQ
) B
WHERE
A.OBJID = B.APPROVAL_OBJID
AND TARGET_TYPE IN ('CUSTOMER_MNG')
) A
ON T.OBJID::numeric = A.TARGET_OBJID
)
INSERT INTO CUSTOMER_MNG
(
OBJID,
MNG_NUMBER,
MNG_TYPE,
PRODUCT_DIVISION,
PROJECT_OBJID,
RECEPTION_DATE,
EVENT_LOCATION,
ACTION_DATE,
CUSTOMER_NAME,
TITLE,
PERFORMER,
WRITER,
ANALYSIS,
MEASURE,
MEASURE_TYPE,
MEASURE_AMOUNT,
REGDATE,
STATUS
)
VALUES
(
#{OBJID}::numeric,
to_char(now(),'YYYY')||'-'||LPAD((select coalesce(substring(max(MNG_NUMBER),6,3),'0')::numeric+1 from CUSTOMER_MNG)::text, 3, '0'),
#{MNG_TYPE},
#{PRODUCT_DIVISION},
#{PROJECT_OBJID}::numeric,
#{RECEPTION_DATE}::TIMESTAMP,
#{EVENT_LOCATION},
#{ACTION_DATE}::TIMESTAMP,
#{CUSTOMER_NAME},
#{TITLE},
#{PERFORMER},
#{WRITER},
#{ANALYSIS},
#{MEASURE},
#{MEASURE_TYPE},
#{MEASURE_AMOUNT},
now(),
#{STATUS}
) ON CONFLICT (OBJID) DO
UPDATE
SET
MNG_NUMBER =#{MNG_NUMBER},
MNG_TYPE =#{MNG_TYPE},
PRODUCT_DIVISION =#{PRODUCT_DIVISION},
PROJECT_OBJID =#{PROJECT_OBJID}::numeric,
RECEPTION_DATE =#{RECEPTION_DATE}::TIMESTAMP,
EVENT_LOCATION =#{EVENT_LOCATION},
ACTION_DATE =#{ACTION_DATE}::TIMESTAMP,
CUSTOMER_NAME =#{CUSTOMER_NAME},
TITLE =#{TITLE},
PERFORMER =#{PERFORMER},
WRITER =#{WRITER},
ANALYSIS =#{ANALYSIS},
MEASURE =#{MEASURE},
MEASURE_TYPE =#{MEASURE_TYPE},
MEASURE_AMOUNT =#{MEASURE_AMOUNT},
EDITDATE =now(),
STATUS =#{STATUS}
DELETE FROM CUSTOMER_MNG WHERE OBJID = #{OBJID}::numeric