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}