MERGE INTO PMS_QUALITY_TEST_INFO USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET CAR_OBJID = #{carObjId} , PROD_OBJID = #{prodObjId} , TEST_TYPE_OBJID = #{testTypeObjId} , STEP1 = #{step1} , STEP2 = #{step2} WHEN NOT MATCHED THEN INSERT ( OBJID , CAR_OBJID , PROD_OBJID , TEST_TYPE_OBJID , STEP1 , STEP2 , WRITER , REGDATE , STATUS ) VALUES ( #{objId} , #{carObjId} , #{prodObjId} , #{testTypeObjId} , #{step1} , #{step2} , #{writer} , SYSDATE , 'create' ) MERGE INTO PMS_QUALITY_TEST_REL_PART_ATTR USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET SCORE = #{score} , RESULT = #{result} , TYPE1 = #{type1} , TYPE2 = #{type2} WHEN NOT MATCHED THEN INSERT ( OBJID , TARGET_OBJID , PART_NO , SCORE , RESULT , TYPE1 , TYPE2 , WRITER , REGDATE , STATUS ) VALUES ( #{objId} , #{targetObjId} , #{partNo} , #{score} , #{result} , #{type1} , #{type2} , #{writer} , SYSDATE , 'create' ) UPDATE PMS_QUALITY_TEST_INFO SET STATUS = 'complete' WHERE OBJID = #{targetObjId} INSERT INTO PMS_QUALITY_INSPECTION_TYPE ( OBJID , INSPECTION_TYPE_NAME , STATUS , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{INSPECTION_TYPE_NAME} , #{STATUS} , #{writer} , SYSDATE ) UPDATE PMS_QUALITY_INSPECTION_TYPE SET INSPECTION_TYPE_NAME = #{INSPECTION_TYPE_NAME} , STATUS = #{STATUS} WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_INSPECTION_TYPE WHERE OBJID = #{OBJID} INSERT INTO PMS_QUALITY_DEFECT_TYPE ( OBJID , DEFECT_TYPE_NAME , STATUS , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{DEFECT_TYPE_NAME} , #{STATUS} , #{writer} , SYSDATE ) UPDATE PMS_QUALITY_DEFECT_TYPE SET DEFECT_TYPE_NAME = #{DEFECT_TYPE_NAME} , STATUS = #{STATUS} WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_DEFECT_TYPE WHERE OBJID = #{OBJID} INSERT INTO PMS_QUALITY_DEFECT_REASON ( OBJID , DEFECT_TYPE_OBJID , DEFECT_REASON_NAME , STATUS , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{DEFECT_TYPE_OBJID} , #{DEFECT_REASON_NAME} , #{STATUS} , #{writer} , SYSDATE ) UPDATE PMS_QUALITY_DEFECT_REASON SET DEFECT_REASON_NAME = #{DEFECT_REASON_NAME} , STATUS = #{STATUS} WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_DEFECT_REASON WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_DEFECT_REASON WHERE DEFECT_TYPE_OBJID = #{OBJID} INSERT INTO QUALITY_INCOMING_INSPECTION ( OBJID , PURCHASE_ORDER_MASTER_OBJID , INSPECTOR_ID , INSPECTION_DATE , INSPECTION_RESULT , INSPECTION_MEMO , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{PURCHASE_ORDER_MASTER_OBJID} , #{INSPECTOR_ID} , TO_DATE(#{INSPECTION_DATE}, 'YYYY-MM-DD') , #{INSPECTION_RESULT} , #{INSPECTION_MEMO} , #{writer} , SYSDATE ) UPDATE QUALITY_INCOMING_INSPECTION SET INSPECTOR_ID = #{INSPECTOR_ID} , INSPECTION_DATE = TO_DATE(#{INSPECTION_DATE}, 'YYYY-MM-DD') , INSPECTION_RESULT = #{INSPECTION_RESULT} , INSPECTION_MEMO = #{INSPECTION_MEMO} WHERE OBJID = #{OBJID} INSERT INTO PROCESS_INSPECTION_MASTER ( OBJID , INSPECTION_DATE , INSPECTOR_ID , REMARK , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{INSPECTION_DATE} , #{INSPECTOR_ID} , #{REMARK} , #{WRITER} , NOW() ) UPDATE PROCESS_INSPECTION_MASTER SET INSPECTION_DATE = #{INSPECTION_DATE} , INSPECTOR_ID = #{INSPECTOR_ID} , REMARK = #{REMARK} , MOD_DATE = NOW() WHERE OBJID = #{OBJID} INSERT INTO PROCESS_INSPECTION_DETAIL ( OBJID , MASTER_OBJID , PROCESS_CD , PROJECT_OBJID , PART_OBJID , PART_NO , PART_NAME , INSPECTION_QTY , DEFECT_QTY , WORK_ENV_STATUS , MEASURING_DEVICE , DEPT_CD , USER_ID , INSPECTION_DATE , INSPECTOR_ID , REMARK , ACTION_STATUS , INSPECTION_RESULT , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{MASTER_OBJID} , #{PROCESS_CD} , #{PROJECT_OBJID} , #{PART_OBJID} , #{PART_NO} , #{PART_NAME} , NULLIF(#{INSPECTION_QTY}, '')::NUMERIC , NULLIF(#{DEFECT_QTY}, '')::NUMERIC , #{WORK_ENV_STATUS} , #{MEASURING_DEVICE} , #{DEPT_CD} , #{USER_ID} , #{INSPECTION_DATE} , #{INSPECTOR_ID} , #{REMARK} , #{ACTION_STATUS} , #{INSPECTION_RESULT} , #{WRITER} , NOW() ) ON CONFLICT (OBJID) DO UPDATE SET PROCESS_CD = #{PROCESS_CD} , PROJECT_OBJID = #{PROJECT_OBJID} , PART_OBJID = #{PART_OBJID} , PART_NO = #{PART_NO} , PART_NAME = #{PART_NAME} , INSPECTION_QTY = NULLIF(#{INSPECTION_QTY}, '')::NUMERIC , DEFECT_QTY = NULLIF(#{DEFECT_QTY}, '')::NUMERIC , WORK_ENV_STATUS = #{WORK_ENV_STATUS} , MEASURING_DEVICE = #{MEASURING_DEVICE} , DEPT_CD = #{DEPT_CD} , USER_ID = #{USER_ID} , INSPECTION_DATE = #{INSPECTION_DATE} , INSPECTOR_ID = #{INSPECTOR_ID} , REMARK = #{REMARK} , ACTION_STATUS = #{ACTION_STATUS} , INSPECTION_RESULT = #{INSPECTION_RESULT} , MOD_DATE = NOW() DELETE FROM PROCESS_INSPECTION_DETAIL WHERE MASTER_OBJID = #{MASTER_OBJID} INSERT INTO PMS_QUALITY_SEMI_PRODUCT_INSPECTION ( OBJID , PROJECT_NO , WORK_ORDER_NO , PART_NO , PART_NAME , RECEIPT_QTY , DISPOSITION_TYPE , REMARK , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{PROJECT_NO} , #{WORK_ORDER_NO} , #{PART_NO} , #{PART_NAME} , #{RECEIPT_QTY}::NUMERIC , #{DISPOSITION_TYPE} , #{REMARK} , #{WRITER} , NOW() ) UPDATE PMS_QUALITY_SEMI_PRODUCT_INSPECTION SET PROJECT_NO = #{PROJECT_NO} , WORK_ORDER_NO = #{WORK_ORDER_NO} , PART_NO = #{PART_NO} , PART_NAME = #{PART_NAME} , RECEIPT_QTY = #{RECEIPT_QTY}::NUMERIC , DISPOSITION_TYPE = #{DISPOSITION_TYPE} , REMARK = #{REMARK} , WRITER = #{WRITER} , REG_DATE = NOW() WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_SEMI_PRODUCT_INSPECTION WHERE INSPECTION_GROUP_ID = #{INSPECTION_GROUP_ID} INSERT INTO PMS_QUALITY_SEMI_PRODUCT_INSPECTION ( OBJID , MODEL_NAME , PRODUCT_TYPE , WORK_ORDER_NO , PART_NO , PART_NAME , RECEIPT_QTY , GOOD_QTY , DEFECT_QTY , DEFECT_TYPE , DEFECT_CAUSE , RESPONSIBLE_DEPT , PROCESS_STATUS , INSPECTION_DATE , INSPECTOR , DISPOSITION_TYPE , REMARK , WRITER , REG_DATE , DATA_TYPE , INSPECTION_GROUP_ID , IS_LOCKED ) VALUES ( #{OBJID} , #{MODEL_NAME} , #{PRODUCT_TYPE} , #{WORK_ORDER_NO} , #{PART_NO} , #{PART_NAME} , COALESCE(NULLIF(#{RECEIPT_QTY}, '')::NUMERIC, 0) , COALESCE(NULLIF(#{GOOD_QTY}, '')::NUMERIC, 0) , COALESCE(NULLIF(#{DEFECT_QTY}, '')::NUMERIC, 0) , #{DEFECT_TYPE} , #{DEFECT_CAUSE} , #{RESPONSIBLE_DEPT} , #{PROCESS_STATUS} , CASE WHEN #{INSPECTION_DATE} = '' THEN NULL ELSE #{INSPECTION_DATE}::DATE END , #{INSPECTOR} , #{DISPOSITION_TYPE} , #{REMARK} , #{WRITER} , NOW() , #{DATA_TYPE} , #{INSPECTION_GROUP_ID} , COALESCE(#{IS_LOCKED}, 'N') ) UPDATE PMS_QUALITY_SEMI_PRODUCT_INSPECTION SET MODEL_NAME = #{MODEL_NAME} , PRODUCT_TYPE = #{PRODUCT_TYPE} , WORK_ORDER_NO = #{WORK_ORDER_NO} , PART_NO = #{PART_NO} , PART_NAME = #{PART_NAME} , RECEIPT_QTY = COALESCE(NULLIF(#{RECEIPT_QTY}, '')::NUMERIC, 0) , GOOD_QTY = COALESCE(NULLIF(#{GOOD_QTY}, '')::NUMERIC, 0) , DEFECT_QTY = COALESCE(NULLIF(#{DEFECT_QTY}, '')::NUMERIC, 0) , DEFECT_TYPE = #{DEFECT_TYPE} , DEFECT_CAUSE = #{DEFECT_CAUSE} , RESPONSIBLE_DEPT = #{RESPONSIBLE_DEPT} , PROCESS_STATUS = #{PROCESS_STATUS} , INSPECTION_DATE = CASE WHEN #{INSPECTION_DATE} = '' THEN NULL ELSE #{INSPECTION_DATE}::DATE END , INSPECTOR = #{INSPECTOR} , DISPOSITION_TYPE = #{DISPOSITION_TYPE} , REMARK = #{REMARK} , IS_LOCKED = CASE WHEN IS_LOCKED = 'Y' THEN 'Y' ELSE COALESCE(#{IS_LOCKED}, 'N') END WHERE OBJID = #{OBJID} UPDATE PMS_QUALITY_SEMI_PRODUCT_INSPECTION SET IS_LOCKED = 'Y' WHERE OBJID = #{OBJID} UPDATE PMS_QUALITY_SEMI_PRODUCT_INSPECTION SET IS_LOCKED = 'N' WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_SEMI_PRODUCT_INSPECTION WHERE OBJID = #{OBJID} DELETE FROM PMS_QUALITY_SEMI_PRODUCT_INSPECTION WHERE INSPECTION_GROUP_ID = #{INSPECTION_GROUP_ID} AND OBJID NOT IN #{objId} DELETE FROM PMS_QUALITY_SEMI_PRODUCT_INSPECTION WHERE INSPECTION_GROUP_ID = #{INSPECTION_GROUP_ID} AND DATA_TYPE = #{DATA_TYPE} AND OBJID NOT IN #{objId} INSERT INTO CUSTOMER_CS ( OBJID , RECEIPT_NO , RECEIPT_DATE , QTY , CUSTOMER_OBJID , MODEL_NAME , PRODUCT_NO , PRODUCT_NAME , PART_NO , PART_NAME , PRODUCTION_DATE , SALES_DATE , SERIAL_NO , MANUFACTURER , COMPLAINT_CONTENT , BLAME_DECISION , STATUS , REMARK , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{RECEIPT_NO} , #{RECEIPT_DATE} , NULLIF(#{QTY}, '')::NUMERIC , #{CUSTOMER_OBJID} , #{MODEL_NAME} , #{PRODUCT_NO} , #{PRODUCT_NAME} , #{PART_NO} , #{PART_NAME} , #{PRODUCTION_DATE} , #{SALES_DATE} , #{SERIAL_NO} , #{MANUFACTURER} , #{COMPLAINT_CONTENT} , #{BLAME_DECISION} , #{STATUS} , #{REMARK} , #{WRITER} , NOW() ) UPDATE CUSTOMER_CS SET RECEIPT_DATE = #{RECEIPT_DATE} , QTY = NULLIF(#{QTY}, '')::NUMERIC , CUSTOMER_OBJID = #{CUSTOMER_OBJID} , MODEL_NAME = #{MODEL_NAME} , PRODUCT_NO = #{PRODUCT_NO} , PRODUCT_NAME = #{PRODUCT_NAME} , PART_NO = #{PART_NO} , PART_NAME = #{PART_NAME} , PRODUCTION_DATE = #{PRODUCTION_DATE} , SALES_DATE = #{SALES_DATE} , SERIAL_NO = #{SERIAL_NO} , MANUFACTURER = #{MANUFACTURER} , COMPLAINT_CONTENT = #{COMPLAINT_CONTENT} , MOD_DATE = NOW() WHERE OBJID = #{OBJID} UPDATE CUSTOMER_CS SET ACTION_CONTENT = #{ACTION_CONTENT} , BLAME_DECISION = #{BLAME_DECISION} , ACTION_DATE = #{ACTION_DATE} , ACTION_USER_ID = #{ACTION_USER_ID} , STATUS = #{STATUS} , REMARK = #{REMARK} , MOD_DATE = NOW() , ACTION_TYPE = #{ACTION_TYPE} WHERE OBJID = #{OBJID} INSERT INTO PMS_QUALITY_ECR ( OBJID , ECR_NO , REQUEST_DATE , REQUESTER_ID , PART_OBJID , PART_NO , PART_NAME , ISSUE_CONTENT , DUE_DATE , ACTION_DEPT , ACTION_MANAGER_ID , ATTACH_FILE_OBJID , REMARK , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{ECR_NO} , #{REQUEST_DATE} , #{REQUESTER_ID} , #{PART_OBJID} , #{PART_NO} , #{PART_NAME} , #{ISSUE_CONTENT} , #{DUE_DATE} , #{ACTION_DEPT} , #{ACTION_MANAGER_ID} , #{ATTACH_FILE_OBJID} , #{REMARK} , #{WRITER} , NOW() ) UPDATE PMS_QUALITY_ECR SET REQUEST_DATE = #{REQUEST_DATE} , REQUESTER_ID = #{REQUESTER_ID} , PART_OBJID = #{PART_OBJID} , PART_NO = #{PART_NO} , PART_NAME = #{PART_NAME} , ISSUE_CONTENT = #{ISSUE_CONTENT} , DUE_DATE = #{DUE_DATE} , ACTION_DEPT = #{ACTION_DEPT} , ACTION_MANAGER_ID = #{ACTION_MANAGER_ID} , REMARK = #{REMARK} , MODIFIER = #{WRITER} , MOD_DATE = NOW() WHERE OBJID = #{OBJID} UPDATE PMS_QUALITY_ECR SET ACTION_USER_ID = #{ACTION_USER_ID} , ACTION_CONTENT = #{ACTION_CONTENT} , COMPLETE_DATE = #{COMPLETE_DATE} , MODIFIER = #{MODIFIER} , MOD_DATE = NOW() WHERE OBJID = #{OBJID} UPDATE PMS_QUALITY_ECR SET ECR_DOC_FORM_NO = #{ECR_DOC_FORM_NO} , ECR_REV_NO = #{ECR_REV_NO} , ECR_REV_DATE = #{ECR_REV_DATE} , ECR_DOC_AUTHOR = #{ECR_DOC_AUTHOR} , ECR_DOC_SUMMARY = #{ECR_DOC_SUMMARY} , ECR_DOC_REASON = #{ECR_DOC_REASON} , MODIFIER = #{MODIFIER} , MOD_DATE = NOW() WHERE OBJID = #{OBJID} INSERT INTO INCOMING_INSPECTION_DETAIL ( OBJID , INVENTORY_IN_OBJID , PURCHASE_ORDER_MASTER_OBJID , REQUEST_DATE , REQUEST_USER_ID , INSPECTION_DATE , INSPECTOR_ID , INSPECTION_TYPE , INSPECTION_YN , DEFECT_TYPE , DEFECT_REASON , ACTION_STATUS , INSPECTION_QTY , DEFECT_QTY , INSPECTION_RESULT , ATTACH_FILE_OBJID , REMARK , WRITER , REG_DATE ) VALUES ( #{NEW_OBJID} , #{OBJID} , #{PURCHASE_ORDER_MASTER_OBJID} , #{REQUEST_DATE} , #{REQUEST_USER_ID} , #{INSPECTION_DATE} , #{INSPECTOR_ID} , #{INSPECTION_TYPE} , #{INSPECTION_YN} , #{DEFECT_TYPE} , #{DEFECT_REASON} , #{ACTION_STATUS} , #{INSPECTION_QTY} , #{DEFECT_QTY} , #{INSPECTION_RESULT} , #{ATTACH_FILE_OBJID} , #{REMARK} , #{WRITER} , NOW() ) ON CONFLICT (INVENTORY_IN_OBJID) DO UPDATE SET REQUEST_DATE = COALESCE(#{REQUEST_DATE}, INCOMING_INSPECTION_DETAIL.REQUEST_DATE) , REQUEST_USER_ID = COALESCE(#{REQUEST_USER_ID}, INCOMING_INSPECTION_DETAIL.REQUEST_USER_ID) , INSPECTION_DATE = COALESCE(#{INSPECTION_DATE}, INCOMING_INSPECTION_DETAIL.INSPECTION_DATE) , INSPECTOR_ID = COALESCE(#{INSPECTOR_ID}, INCOMING_INSPECTION_DETAIL.INSPECTOR_ID) , INSPECTION_TYPE = COALESCE(#{INSPECTION_TYPE}, INCOMING_INSPECTION_DETAIL.INSPECTION_TYPE) , INSPECTION_YN = COALESCE(#{INSPECTION_YN}, INCOMING_INSPECTION_DETAIL.INSPECTION_YN) , DEFECT_TYPE = COALESCE(#{DEFECT_TYPE}, INCOMING_INSPECTION_DETAIL.DEFECT_TYPE) , DEFECT_REASON = COALESCE(#{DEFECT_REASON}, INCOMING_INSPECTION_DETAIL.DEFECT_REASON) , ACTION_STATUS = COALESCE(#{ACTION_STATUS}, INCOMING_INSPECTION_DETAIL.ACTION_STATUS) , INSPECTION_QTY = COALESCE(#{INSPECTION_QTY}, INCOMING_INSPECTION_DETAIL.INSPECTION_QTY) , DEFECT_QTY = COALESCE(#{DEFECT_QTY}, INCOMING_INSPECTION_DETAIL.DEFECT_QTY) , INSPECTION_RESULT = COALESCE(#{INSPECTION_RESULT}, INCOMING_INSPECTION_DETAIL.INSPECTION_RESULT) , ATTACH_FILE_OBJID = COALESCE(#{ATTACH_FILE_OBJID}, INCOMING_INSPECTION_DETAIL.ATTACH_FILE_OBJID) , REMARK = COALESCE(#{REMARK}, INCOMING_INSPECTION_DETAIL.REMARK) , MODIFIER = #{WRITER} , MOD_DATE = NOW() INSERT INTO INCOMING_INSPECTION_DEFECT ( OBJID , INSPECTION_DETAIL_OBJID , INSPECTION_TYPE , INSPECTION_DATE , INSPECTOR_ID , DEFECT_TYPE , DEFECT_REASON , ACTION_STATUS , ACTION_RESULT , INSPECTION_QTY , DEFECT_QTY , INSPECTION_RESULT , REMARK , WRITER , REG_DATE ) VALUES ( #{OBJID} , #{INSPECTION_DETAIL_OBJID} , #{INSPECTION_TYPE} , #{INSPECTION_DATE}::DATE , #{INSPECTOR_ID} , #{DEFECT_TYPE} , #{DEFECT_REASON} , #{ACTION_STATUS} , #{ACTION_RESULT} , #{INSPECTION_QTY} , #{DEFECT_QTY} , #{INSPECTION_RESULT} , #{REMARK} , #{WRITER} , NOW() ) ON CONFLICT (OBJID) DO UPDATE SET INSPECTION_TYPE = #{INSPECTION_TYPE} , INSPECTION_DATE = #{INSPECTION_DATE}::DATE , INSPECTOR_ID = #{INSPECTOR_ID} , DEFECT_TYPE = #{DEFECT_TYPE} , DEFECT_REASON = #{DEFECT_REASON} , ACTION_STATUS = #{ACTION_STATUS} , ACTION_RESULT = #{ACTION_RESULT} , INSPECTION_QTY = #{INSPECTION_QTY} , DEFECT_QTY = #{DEFECT_QTY} , INSPECTION_RESULT = #{INSPECTION_RESULT} , REMARK = #{REMARK} , MODIFIER = #{WRITER} , MOD_DATE = NOW() DELETE FROM INCOMING_INSPECTION_DEFECT WHERE OBJID = #{OBJID} DELETE FROM INCOMING_INSPECTION_DEFECT WHERE INSPECTION_DETAIL_OBJID = #{INSPECTION_DETAIL_OBJID}