( SELECT RM.OBJID, RM.PART_OBJID, PM.PART_NO, (CASE WHEN PM.PART_NAME IS NULL THEN RM.PART_NAME ELSE PM.PART_NAME END) AS PART_NAME, (CASE WHEN PM.SPEC IS NULL THEN RM.SPEC ELSE PM.SPEC END) AS SPEC, (CASE WHEN PM.MATERIAL IS NULL THEN RM.MATERIAL ELSE PM.MATERIAL END) AS MATERIAL, (CASE WHEN PM.UNIT IS NULL THEN RM.UNIT ELSE (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = PM.UNIT) END) AS UNIT, (CASE WHEN PM.WEIGHT IS NULL THEN RM.WEIGHT ELSE PM.WEIGHT END) AS WEIGHT, RM.THICKNESS , RM.WIDTH , RM.HEIGHT , RM.OUT_DIAMETER, RM.IN_DIAMETER , RM.LENGTH , RP.UNIT_PRICE, RP.PERSON_PRICE, RP.AGENCY_PRICE, RP.REMARK, RP.PRICE_REGDATE_TITLE, REGDATE, TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE, RM.WRITER, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE, (SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE 1 = 1 AND F.TARGET_OBJID = RM.OBJID AND F.DOC_TYPE = 'RESOURCE_MASTER_MNG_FILE' AND UPPER(F.STATUS) = 'ACTIVE') AS FILE_CNT, CASE WHEN CAD.SAVED_FILE_NAME IS NOT NULL THEN 1 ELSE 0 END AS CU01_CNT, CASE WHEN DRAWING.SAVED_FILE_NAME IS NOT NULL THEN 1 ELSE 0 END AS CU02_CNT, CASE WHEN PDF.SAVED_FILE_NAME IS NOT NULL THEN 1 ELSE 0 END AS CU03_CNT, AF.SAVED_FILE_NAME, AF.REAL_FILE_NAME, REPLACE(AF.FILE_PATH, '\', '\\') AS FILE_PATH FROM RESOURCE_MNG RM LEFT OUTER JOIN ( SELECT PARENT_OBJID, UNIT_PRICE, PERSON_PRICE, AGENCY_PRICE, REMARK, TO_CHAR(RP.APPLY_DATE,'YYYY-MM-DD') AS PRICE_REGDATE_TITLE, ROW_NUMBER() OVER(PARTITION BY PARENT_OBJID ORDER BY REGDATE DESC) AS RNUM FROM RESOURCE_PRICE RP ) RP ON RM.OBJID = RP.PARENT_OBJID AND RP.RNUM = 1 LEFT OUTER JOIN PART_MNG AS PM ON RM.PART_OBJID = PM.OBJID::VARCHAR LEFT OUTER JOIN ( SELECT TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, FILE_PATH, DOC_TYPE FROM ATTACH_FILE_INFO WHERE 1 = 1 AND DOC_TYPE IN ('3D_CAD') AND STATUS = 'Active' ) CAD ON PM.OBJID::varchar = CAD.TARGET_OBJID::varchar LEFT OUTER JOIN ( SELECT TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, FILE_PATH, DOC_TYPE FROM ATTACH_FILE_INFO WHERE 1 = 1 AND DOC_TYPE IN ('2D_DRAWING_CAD') AND STATUS = 'Active' ) DRAWING ON PM.OBJID::varchar = DRAWING.TARGET_OBJID::varchar LEFT OUTER JOIN ( SELECT TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, FILE_PATH, DOC_TYPE FROM ATTACH_FILE_INFO WHERE 1 = 1 AND DOC_TYPE IN ('2D_PDF_CAD') AND STATUS = 'Active' ) PDF ON PM.OBJID::varchar = PDF.TARGET_OBJID::varchar LEFT OUTER JOIN ( SELECT TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, FILE_PATH, DOC_TYPE FROM ATTACH_FILE_INFO WHERE 1 = 1 AND DOC_TYPE IN ('PART_SHAPE_IMG') AND STATUS = 'Active' ) AF ON PM.OBJID::varchar = AF.TARGET_OBJID::varchar ) ( SELECT OBJID, PARENT_OBJID, UNIT_PRICE, PERSON_PRICE, AGENCY_PRICE, REMARK, REGDATE, TO_CHAR(RP.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE, TO_CHAR(RP.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE, TO_CHAR(RP.APPLY_DATE,'YYYY-MM-DD') AS APPLY_DATE_TITLE, WRITER, (SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RP.WRITER) AS WRITER_TITLE FROM RESOURCE_PRICE RP ) INSERT INTO RESOURCE_MNG ( OBJID, PART_OBJID, PART_NAME, SPEC, MATERIAL, UNIT, WEIGHT, REGDATE, WRITER ,THICKNESS ,WIDTH ,HEIGHT ,OUT_DIAMETER ,IN_DIAMETER ,LENGTH ) VALUES ( #{OBJID}::numeric, (CASE WHEN #{part_objid} = '' THEN '0' ELSE #{part_objid} END), #{part_name}, #{spec}, #{material}, #{unit}, #{weight}, NOW(), #{WRITER} ,#{THICKNESS } ,#{WIDTH } ,#{HEIGHT } ,#{OUT_DIAMETER } ,#{IN_DIAMETER } ,#{LENGTH } ) ON CONFLICT (OBJID) DO UPDATE SET PART_NAME = #{part_name}, SPEC = #{spec}, MATERIAL = #{material}, UNIT = #{unit}, WEIGHT = #{weight}, WRITER = #{WRITER} ,THICKNESS = #{THICKNESS } ,WIDTH = #{WIDTH } ,HEIGHT = #{HEIGHT } ,OUT_DIAMETER = #{OUT_DIAMETER } ,IN_DIAMETER = #{IN_DIAMETER } ,LENGTH = #{LENGTH } INSERT INTO RESOURCE_PRICE ( OBJID ,PARENT_OBJID ,UNIT_PRICE ,PERSON_PRICE ,AGENCY_PRICE ,REMARK ,APPLY_DATE ,REGDATE ,WRITER ) VALUES ( #{OBJID}::numeric ,#{PARENT_OBJID}::numeric ,#{UNIT_PRICE} ,#{PERSON_PRICE} ,#{AGENCY_PRICE} ,#{REMARK} ,#{APPLY_DATE}::TIMESTAMP ,NOW() ,NOW() ,#{WRITER} ) DELETE FROM RESOURCE_MNG WHERE OBJID = #{OBJID}::numeric DELETE FROM RESOURCE_PRICE WHERE PARENT_OBJID = #{OBJID}::numeric