(
SELECT
OBJID,
PARENT_OBJID,
(SELECT PROJECT_NO FROM ORDER_MGMT O WHERE O.ORDER_MGMT_OBJID = CRM.PARENT_OBJID) AS PROJECT_NO,
REPORT_MNG_NO,
CUSTOMER,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.CUSTOMER) AS CUSTOMER_NAME,
MAKEING_TEAM,
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = CRM.MAKEING_TEAM) AS MAKEING_TEAM_NAME,
CHECK_DATE,
TO_CHAR(CRM.CHECK_DATE,'YYYY-MM-DD') AS CHECK_DATE_TITLE,
SPAN_DRAWING,
SPAN_LEFT,
SPAN_LEFT_ERROR,
SPAN_LEFT_CHECK_RESULT,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SPAN_LEFT_CHECK_RESULT) AS SPAN_LEFT_CHECK_RESULT_NAME,
SPAN_RIGHT,
SPAN_RIGHT_ERROR,
SPAN_RIGHT_CHECK_RESULT,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SPAN_RIGHT_CHECK_RESULT) AS SPAN_RIGHT_CHECK_RESULT_NAME,
DIAGONAL_LEFT,
DIAGONAL_RIGHT,
DIAGONAL_CHECK_RESULT,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.DIAGONAL_CHECK_RESULT) AS DIAGONAL_CHECK_RESULT_NAME,
SPAN_CHECK_USER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.SPAN_CHECK_USER) AS SPAN_CHECK_USER_TITLE,
SADDLE_1,
SADDLE_2,
SADDLE_3,
SADDLE_4,
SADDLE_5,
SADDLE_6,
SADDLE_7,
SADDLE_8,
SADDLE_WHEEL,
SADDLE_WHEEL_BASE,
SADDLE_CHECK_RESULT,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.SADDLE_CHECK_RESULT) AS SADDLE_CHECK_RESULT_NAME,
SADDLE_CHECK_USER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.SADDLE_CHECK_USER) AS SADDLE_CHECK_USER_TITLE,
WELDING_PAINTING_CONTENTS,
WELDING_PAINTING_CHECK_RESULT,
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CRM.WELDING_PAINTING_CHECK_RESULT) AS WELDING_PAINTING_CHECK_RESULT_NAME,
WELDING_PAINTING_CHECK_USER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.WELDING_PAINTING_CHECK_USER) AS WELDING_PAINTING_CHECK_USER_TITLE,
REGDATE,
TO_CHAR(CRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
TO_CHAR(CRM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
EDITDATE,
STATUS,
CASE CRM.STATUS
WHEN 'create'
THEN '등록중'
WHEN 'approvalRequest'
THEN '결재중'
WHEN 'reject'
THEN '반려'
WHEN 'approvalComplete'
THEN '결재완료'
ELSE ''
END STATUS_TITLE,
WRITER,
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = CRM.WRITER) AS WRITER_TITLE,
A.APPR_STATUS,
A.ROUTE_OBJID,
A.APPROVAL_OBJID
FROM
CHECK_REPORT_MNG CRM
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 ('CHECK_REPORT_MNG')
) A
ON CRM.OBJID::numeric = A.TARGET_OBJID
)
INSERT INTO CHECK_REPORT_MNG(
OBJID,
PARENT_OBJID,
REPORT_MNG_NO,
CUSTOMER,
MAKEING_TEAM,
CHECK_DATE,
SPAN_DRAWING,
SPAN_LEFT,
SPAN_LEFT_ERROR,
SPAN_LEFT_CHECK_RESULT,
SPAN_RIGHT,
SPAN_RIGHT_ERROR,
SPAN_RIGHT_CHECK_RESULT,
DIAGONAL_LEFT,
DIAGONAL_RIGHT,
DIAGONAL_CHECK_RESULT,
SPAN_CHECK_USER,
SADDLE_1,
SADDLE_2,
SADDLE_3,
SADDLE_4,
SADDLE_5,
SADDLE_6,
SADDLE_7,
SADDLE_8,
SADDLE_WHEEL,
SADDLE_WHEEL_BASE,
SADDLE_CHECK_RESULT,
SADDLE_CHECK_USER,
WELDING_PAINTING_CONTENTS,
WELDING_PAINTING_CHECK_RESULT,
WELDING_PAINTING_CHECK_USER,
REGDATE,
EDITDATE,
STATUS,
WRITER
) values (
#{OBJID}::numeric,
#{PARENT_OBJID}::numeric,
TO_CHAR(NOW(),'YYYY')||'-'||LPAD((SELECT COALESCE(SUBSTRING(MAX(REPORT_MNG_NO),6,3),'0')::NUMERIC+1 FROM CHECK_REPORT_MNG)::TEXT, 3, '0'),
#{CUSTOMER},
#{MAKEING_TEAM},
#{CHECK_DATE}::TIMESTAMP,
#{SPAN_DRAWING},
#{SPAN_LEFT},
#{SPAN_LEFT_ERROR},
#{SPAN_LEFT_CHECK_RESULT},
#{SPAN_RIGHT},
#{SPAN_RIGHT_ERROR},
#{SPAN_RIGHT_CHECK_RESULT},
#{DIAGONAL_LEFT},
#{DIAGONAL_RIGHT},
#{DIAGONAL_CHECK_RESULT},
#{SPAN_CHECK_USER},
#{SADDLE_1},
#{SADDLE_2},
#{SADDLE_3},
#{SADDLE_4},
#{SADDLE_5},
#{SADDLE_6},
#{SADDLE_7},
#{SADDLE_8},
#{SADDLE_WHEEL},
#{SADDLE_WHEEL_BASE},
#{SADDLE_CHECK_RESULT},
#{SADDLE_CHECK_USER},
#{WELDING_PAINTING_CONTENTS},
#{WELDING_PAINTING_CHECK_RESULT},
#{WELDING_PAINTING_CHECK_USER},
NOW(),
NOW(),
'create',
#{WRITER}
) ON CONFLICT (OBJID) DO
UPDATE
SET
PARENT_OBJID = #{PARENT_OBJID}::numeric,
REPORT_MNG_NO = #{REPORT_MNG_NO},
CUSTOMER = #{CUSTOMER},
MAKEING_TEAM = #{MAKEING_TEAM},
CHECK_DATE = #{CHECK_DATE}::TIMESTAMP,
SPAN_DRAWING = #{SPAN_DRAWING},
SPAN_LEFT = #{SPAN_LEFT},
SPAN_LEFT_ERROR = #{SPAN_LEFT_ERROR},
SPAN_LEFT_CHECK_RESULT = #{SPAN_LEFT_CHECK_RESULT},
SPAN_RIGHT = #{SPAN_RIGHT},
SPAN_RIGHT_ERROR = #{SPAN_RIGHT_ERROR},
SPAN_RIGHT_CHECK_RESULT = #{SPAN_RIGHT_CHECK_RESULT},
DIAGONAL_LEFT = #{DIAGONAL_LEFT},
DIAGONAL_RIGHT = #{DIAGONAL_RIGHT},
DIAGONAL_CHECK_RESULT = #{DIAGONAL_CHECK_RESULT},
SPAN_CHECK_USER = #{SPAN_CHECK_USER},
SADDLE_1 = #{SADDLE_1},
SADDLE_2 = #{SADDLE_2},
SADDLE_3 = #{SADDLE_3},
SADDLE_4 = #{SADDLE_4},
SADDLE_5 = #{SADDLE_5},
SADDLE_6 = #{SADDLE_6},
SADDLE_7 = #{SADDLE_7},
SADDLE_8 = #{SADDLE_8},
SADDLE_WHEEL = #{SADDLE_WHEEL},
SADDLE_WHEEL_BASE = #{SADDLE_WHEEL_BASE},
SADDLE_CHECK_RESULT = #{SADDLE_CHECK_RESULT},
SADDLE_CHECK_USER = #{SADDLE_CHECK_USER},
WELDING_PAINTING_CONTENTS = #{WELDING_PAINTING_CONTENTS},
WELDING_PAINTING_CHECK_RESULT = #{WELDING_PAINTING_CHECK_RESULT},
WELDING_PAINTING_CHECK_USER = #{WELDING_PAINTING_CHECK_USER},
EDITDATE = NOW(),
STATUS = #{STATUS},
WRITER = #{WRITER}
DELETE FROM CHECK_REPORT_MNG WHERE OBJID = #{OBJID}::numeric