( 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}