(
SELECT
OBJID,
CASE
WHEN E.CUSTOMER = '' THEN '0'
ELSE E.CUSTOMER
END CUSTOMER,
CASE
WHEN E.CAR_TYPE = '' THEN '0'
ELSE E.CAR_TYPE
END CAR_TYPE,
EO_TYPE,
CUSTOMER_DESIGN,
EO_NO,
EO_DATE,
TO_CHAR(E.EO_DATE,'YYYY-MM-DD') AS EO_DATE_TITLE,
URGENCY,
PURCHASE_RELEASE_DATE,
TO_CHAR(E.PURCHASE_RELEASE_DATE,'YYYY-MM-DD') AS PURCHASE_RELEASE_DATE_TITLE,
DEPLOY_DATE,
TO_CHAR(E.DEPLOY_DATE,'YYYY-MM-DD') AS DEPLOY_DATE_TITLE,
REG_DATE,
TO_CHAR(E.REG_DATE,'YYYY-MM-DD') AS REG_DATE_TITLE,
EDIT_DATE,
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
DEPLOY_WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.DEPLOY_WRITER) AS DEPLOY_WRITER_TITLE,
STATUS,
CASE STATUS
WHEN 'create' THEN '작성중'
WHEN 'deploy' THEN '배포완료'
WHEN 'approvalRequest' THEN '결재중'
WHEN 'approvalComplete' THEN '결재완료'
WHEN 'reject' THEN '반려'
ELSE ''
END STATUS_TITLE,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
EO_MNG E
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 ('EO_MNG')
) A
ON E.OBJID::numeric = A.TARGET_OBJID
)
(
SELECT
OBJID,
eo_no,
eo_gubun,
ecr_objid,
product_1,
product_2,
eo_kind,
title,
request_code,
period_code,
unit,
DEPLOY_DATE,
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE,
EDIT_DATE,
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
DEPLOY_WRITER,
DEPLOY_DEPT,
STATUS,
CASE STATUS
WHEN 'create' THEN '작성중'
WHEN 'deploy' THEN '배포완료'
WHEN 'approvalRequest' THEN '결재중'
WHEN 'approvalComplete' THEN '결재완료'
WHEN 'reject' THEN '반려'
ELSE ''
END STATUS_TITLE,
contents,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
EO_MNG E
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 ('EO_MNG')
) A
ON E.OBJID::numeric = A.TARGET_OBJID
)
UPDATE
REL_EO_PART
SET
memo = #{memo}
WHERE OBJID = #{rel_eo_objid}::NUMERIC
INSERT INTO EO_MNG
(
OBJID,
EO_NO,
EO_GUBUN,
ECR_OBJID,
PRODUCT_1,
PRODUCT_2,
EO_KIND,
TITLE,
REQUEST_CODE,
PERIOD_CODE,
STATUS,
REG_DATE,
EDIT_DATE,
WRITER,
UNIT,
CONTENTS,
DEPLOY_DEPT
) VALUES (
#{OBJID}::NUMERIC,
(SELECT 'EOC_' || TO_CHAR(NOW(),'yy')::VARCHAR || LPAD((SELECT nextval('seq_eo_no'))::VARCHAR ,3,'0')),
#{eo_gubun},
#{ecr_objid},
#{product_objid},
#{same_product_objid},
#{eo_kind},
#{title},
#{request_codeArr},
#{period_codeArr},
'create',
NOW(),
#{EDIT_DATE},
#{WRITER},
#{unit},
#{contents},
#{deploy_dept}
) ON
CONFLICT (OBJID) DO
UPDATE
SET
EO_GUBUN = #{eo_gubun},
ECR_OBJID = #{ecr_objid},
PRODUCT_1 = #{product_objid},
PRODUCT_2 = #{same_product_objid},
EO_KIND = #{eo_kind},
TITLE = #{title},
REQUEST_CODE = #{request_codeArr},
PERIOD_CODE = #{period_codeArr},
STATUS = #{STATUS},
EDIT_DATE = NOW(),
WRITER = #{WRITER},
DEPLOY_WRITER = #{DEPLOY_WRITER},
UNIT = #{unit},
CONTENTS = #{contents},
DEPLOY_DEPT =#{deploy_dept}
DELETE FROM REL_EO_PART WHERE PARENT_OBJID = #{OBJID}::NUMERIC
DELETE FROM REL_EO_PART WHERE PARENT_OBJID = #{PARENT_OBJID}::NUMERIC AND CHILD_OBJID = #{CHILD_OBJID}::NUMERIC
INSERT INTO REL_EO_PART
(
OBJID,
PARENT_OBJID,
CHILD_OBJID,
REG_DATE,
WRITER
) VALUES (
#{OBJID}::NUMERIC,
#{PARENT_OBJID}::NUMERIC,
#{CHILD_OBJID}::NUMERIC,
NOW(),
#{WRITER}
)
INSERT INTO REL_EO_PART
(
SELECT
trunc(random() * 10000000000 + 1)::NUMERIC,
#{PARENT_OBJID}::NUMERIC,
OBJID,
NOW(),
#{WRITER}
FROM part_mng AS t
WHERE T.OBJID IN
#{part}::NUMERIC
)
UPDATE
PART_MNG
SET
EO_TEMP = #{PARENT_OBJID}
WHERE OBJID IN
#{CHILD_OBJID}::NUMERIC
UPDATE
PART_MNG
SET
EO = #{PARENT_OBJID},
EDIT_DATE = NOW()
WHERE OBJID = #{CHILD_OBJID}::NUMERIC
UPDATE
PART_MNG
SET
EO_TEMP = NULL
WHERE OBJID = #{CHILD_OBJID}::NUMERIC
UPDATE
PART_MNG
SET
EO_TEMP = NULL,
EO = NULL
WHERE EO_TEMP = #{OBJID}
UPDATE
EO_MNG
SET
DEPLOY_DATE = NOW(),
EDIT_DATE = NOW(),
DEPLOY_WRITER = #{DEPLOY_WRITER},
STATUS = 'deploy'
WHERE OBJID = #{OBJID}::NUMERIC
DELETE FROM EO_MNG WHERE OBJID = #{OBJID}::NUMERIC
UPDATE
part_mng
SET
revision = '1'
WHERE OBJID = #{part_objid}::NUMERIC
UPDATE
part_mng
SET
revision = (revision::NUMERIC + 1::NUMERIC)::VARCHAR
WHERE OBJID = #{part_objid}::NUMERIC
UPDATE
eo_mng
SET
edit_date = now()
WHERE OBJID = #{targetObjId}::NUMERIC
UPDATE
part_mng
SET
eo = #{targetObjId}
WHERE eo_temp = #{targetObjId}