MERGE INTO ISSUE_MGMT USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET ISU_CD = #{isu_cd} ,PARENT_OBJID = #{parent_objid} ,PROJECT_NAME = #{project_no} ,TITLE = #{title} ,CONTENT = #{content} ,RESULT = #{resultContents} ,OCCU_CD = #{occu_cd} ,STEP_CD = #{step_cd} ,CASE_CD = #{case_cd} ,REQ_DATE = TO_DATE(#{req_date}, 'YYYY-MM-DD') ,SOL_USERID = #{sol_userid} ,CUR_USERID = #{cur_userid} ,CUR_COST = #{cur_cost} ,CUSTOMER_CD = #{customer_cd} ,WPST_CD = #{wpst_cd} ,APPR_WPST_CD = #{appr_wpst_cd} WHEN NOT MATCHED THEN INSERT ( OBJID /*OBJID*/ ,PARENT_OBJID /*프로젝트OBJID*/ ,ISSUE_NO /*이슈NO*/ ,ISU_CD /*이슈구분*/ ,PROJECT_NAME /*프로젝트 명*/ ,TITLE /*제목*/ ,CONTENT /*이슈내용*/ ,RESULT /*조치내용*/ ,OCCU_CD /*발생처*/ ,STEP_CD /*단계*/ ,CASE_CD /*유형*/ ,WRITER /*작성자*/ ,REG_DATE /*등록일*/ ,REQ_DATE /*조치요청일*/ ,SOL_USERID /*조치담당자*/ ,CUR_USERID /*현재처리자*/ ,CUR_COST /*발생비용*/ ,CUSTOMER_CD /*발생비용*/ ,WPST_CD ,APPR_WPST_CD )VALUES( #{objId} ,#{parent_objid} ,#{issue_no} ,#{isu_cd} ,#{project_no} ,#{title} ,#{content} ,#{resultContents} ,#{occu_cd} ,#{step_cd} ,#{case_cd} ,#{writer} ,SYSDATE ,TO_DATE(#{req_date}, 'YYYY-MM-DD') ,#{sol_userid} ,#{cur_userid} ,#{cur_cost} ,#{customer_cd} ,'WPS00700' ,#{appr_wpst_cd} ) UPDATE ISSUE_MGMT SET RET_DATE = SYSDATE WHERE OBJID = #{objId} UPDATE ISSUE_MGMT SET WPST_CD = #{status} , ISSUE_NO = #{issueNo} WHERE OBJID = #{objId} MERGE INTO PMS_ISSUE_INFO USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET REGION = #{region} , OEM_OBJID = #{oemObjId} , CAR_OBJID = #{carObjId} , PROD_GROUP_OBJID = #{prodGroupObjId} , PROD_OBJID = #{prodObjId} , SUBJECT = #{subject} , ISSUE_CONTENTS = #{issueContents} , ISSUE_RESULT_CONTENTS = #{issueResultContents} , PIC_DEPT = #{picDept} , COMPLETE_PLAN_DATE = TO_DATE(#{completePlanDate}, 'YYYY-MM-DD') , COMPLETE_DATE = TO_DATE(#{completeDate}, 'YYYY-MM-DD') WHEN NOT MATCHED THEN INSERT ( OBJID , REGION , OEM_OBJID , CAR_OBJID , PROD_GROUP_OBJID , PROD_OBJID , SUBJECT , ISSUE_CONTENTS , ISSUE_RESULT_CONTENTS , PIC_DEPT , COMPLETE_PLAN_DATE , COMPLETE_DATE , WRITER , REGDATE )VALUES( #{objId} , #{region} , #{oemObjId} , #{carObjId} , #{prodGroupObjId} , #{prodObjId} , #{subject} , #{issueContents} , #{issueResultContents} , #{picDept} , TO_DATE(#{completePlanDate}, 'YYYY-MM-DD') , TO_DATE(#{completeDate}, 'YYYY-MM-DD') , #{writer} , SYSDATE ) MERGE INTO PMS_PJT_REL_GATE_SCHEDULE USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET GATE1_FROM_DATE = TO_DATE(#{gate1FromMonth}, 'yyyy-mm') , GATE1_TO_DATE = TO_DATE(#{gate1ToMonth}, 'yyyy-mm') , GATE2_FROM_DATE = TO_DATE(#{gate2FromMonth}, 'yyyy-mm') , GATE2_TO_DATE = TO_DATE(#{gate2ToMonth}, 'yyyy-mm') , GATE3_FROM_DATE = TO_DATE(#{gate3FromMonth}, 'yyyy-mm') , GATE3_TO_DATE = TO_DATE(#{gate3ToMonth}, 'yyyy-mm') , GATE4_FROM_DATE = TO_DATE(#{gate4FromMonth}, 'yyyy-mm') , GATE4_TO_DATE = TO_DATE(#{gate4ToMonth}, 'yyyy-mm') WHEN NOT MATCHED THEN INSERT ( OBJID , TARGET_OBJID , GATE1_FROM_DATE , GATE1_TO_DATE , GATE2_FROM_DATE , GATE2_TO_DATE , GATE3_FROM_DATE , GATE3_TO_DATE , GATE4_FROM_DATE , GATE4_TO_DATE ) VALUES ( #{objId} , #{targetObjId} , TO_DATE(#{gate1FromMonth}, 'YYYY-MM') , TO_DATE(#{gate1ToMonth}, 'YYYY-MM') , TO_DATE(#{gate2FromMonth}, 'YYYY-MM') , TO_DATE(#{gate2ToMonth}, 'YYYY-MM') , TO_DATE(#{gate3FromMonth}, 'YYYY-MM') , TO_DATE(#{gate3ToMonth}, 'YYYY-MM') , TO_DATE(#{gate4FromMonth}, 'YYYY-MM') , TO_DATE(#{gate4ToMonth}, 'YYYY-MM') ) with upsert as ( UPDATE PMS_PJT_INFO SET FOREIGN_TYPE = #{foreignType}, OEM_OBJID = #{oemObjId}::numeric, CAR_OBJID = #{carObjId}::numeric, PROJECT_TYPE = #{projectType}, OEM_FACTORY = #{oemFactory}, LINE_INSTL_SITE_OBJID = #{lineInstlSite}::numeric, LINE_INSTL_SITE_AREA = #{lineInstlSiteArea}::numeric, YEARLY_AVG_PRODUCTION_CNT = #{avgProductionCnt}::numeric, TOTAL_PRODUCTION_CNT = #{totalProductionCnt}::numeric, DESCRIPTION = #{description}, CFT_USERID = #{cft_userid} where OBJID = #{objId}::numeric ) INSERT INTO PMS_PJT_INFO( OBJID ,FOREIGN_TYPE ,OEM_OBJID ,CAR_OBJID ,PROJECT_TYPE ,OEM_FACTORY ,LINE_INSTL_SITE_OBJID ,LINE_INSTL_SITE_AREA ,YEARLY_AVG_PRODUCTION_CNT ,TOTAL_PRODUCTION_CNT ,DESCRIPTION ,STATUS ,IS_DEL ,WRITER ,REGDATE ,CFT_USERID ) select #{objId}::numeric ,#{foreignType} ,#{oemObjId}::numeric ,#{carObjId}::numeric ,#{projectType} ,#{oemFactory} ,#{lineInstlSite}::numeric ,#{lineInstlSiteArea}::numeric ,#{avgProductionCnt}::numeric ,#{totalProductionCnt}::numeric ,#{description} ,#{status} ,#{isDel}::numeric ,#{writer} ,now() ,#{cft_userid} where not exists ( select * from PMS_PJT_INFO where OBJID = #{objId}::numeric ) UPDATE PMS_PJT_INFO SET STATUS = #{status} WHERE OBJID = #{objId} UPDATE PMS_WBS_TASK SET TASK_CHARGER_ID = #{userId} WHERE TARGET_OBJID = #{objId} AND TASK_STEP = #{taskStep} INSERT INTO pms_wbs_task ( objid ,target_objid ,parent_objid ,task_name ,proj_step ,wbs_code ,seq ,is_template_task ,task_type ,task_dept ,task_charger_id ,regdate ,status ,writer ,bigo ,step_name ,task_step ) VALUES ( #{taskObjId} ,#{projectObjId} ,#{taskParentObjId} ,#{taskName} ,#{gate} ,#{wbsCode} ,#{seq} ,'1' ,'task' ,(SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId})) ,#{taskChargerId} ,now() ,#{status} ,#{writer} ,#{bigo} ,#{stepName} ,#{taskStep} ) ON CONFLICT (target_objid,seq) DO UPDATE SET task_dept= (SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId})) ,task_charger_id=#{taskChargerId} UPDATE PMS_WBS_TASK SET TASK_CHARGER_ID = #{taskChargerId} , TASK_DEPT = (SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId})) WHERE OBJID = #{taskObjId} AND TARGET_OBJID = #{projectObjId} AND IS_TEMPLATE_TASK = 1 with upsert as ( UPDATE PMS_REL_PJT_PROD SET OBJID = #{objId}::numeric ,REGDATE = now() where TARGET_OBJID = #{targetObjId}::numeric AND SUB_OBJID = #{subObjId}::numeric ) INSERT INTO PMS_REL_PJT_PROD( OBJID ,TARGET_OBJID ,SUB_OBJID ,REGDATE ) select #{objId}::numeric ,#{targetObjId}::numeric ,#{subObjId}::numeric ,now() where not exists ( select * from PMS_REL_PJT_PROD where TARGET_OBJID = #{targetObjId}::numeric AND SUB_OBJID = #{subObjId}::numeric ) with upsert as ( UPDATE CAR_MILESTONE_MNG SET MILESTONE_DATE = #{milestoneDate} ,REGDATE = now() where CAR_OBJID = #{carObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric ) INSERT INTO CAR_MILESTONE_MNG( OBJID, CAR_OBJID, MILESTONE_OBJID, MILESTONE_DATE, WRITER, REGDATE ) select #{objId}::numeric, #{carObjId}::numeric, #{milestoneObjId}::numeric, #{milestoneDate}, #{writer}, now() where not exists ( select * from CAR_MILESTONE_MNG where CAR_OBJID = #{carObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric ) DELETE FROM PMS_REL_PJT_PROD WHERE TARGET_OBJID = #{targetObjId}::numeric AND SUB_OBJID NOT IN #{projectProduct}::numeric MERGE INTO PMS_PART_MASTER P USING DUAL ON (P.OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET P.OEM_OBJID = #{oemObjId} ,P.CAR_OBJID = #{carTypeObjId} ,P.PROD_GROUP_OBJID = #{productGroupObjId} ,P.PROD_OBJID = #{productObjId} ,P.TITLE = #{partMasterTitle} WHEN NOT MATCHED THEN INSERT ( P.OBJID ,P.OEM_OBJID ,P.CAR_OBJID ,P.PROD_GROUP_OBJID ,P.PROD_OBJID ,P.TITLE ,P.WRITER ,P.REGDATE )VALUES( #{objId} ,#{oemObjId} ,#{carTypeObjId} ,#{productGroupObjId} ,#{productObjId} ,#{partMasterTitle} ,#{writer} ,SYSDATE ) MERGE INTO PMS_PART_MASTER_CONNECT_PART P USING DUAL ON (P.TARGET_OBJID = #{targetObjId} AND P.PART_NO = #{partNo}) WHEN NOT MATCHED THEN INSERT ( P.OBJID, P.TARGET_OBJID, P.PART_NO, P.SEQ, P.WRITER, P.REGDATE )VALUES( #{objId}, #{targetObjId}, #{partNo}, (SELECT NVL(MAX(SEQ)+1,1) AS SEQ FROM PMS_PART_MASTER_CONNECT_PART WHERE TARGET_OBJID = #{targetObjId}), #{writer}, SYSDATE ) DELETE PMS_PART_MASTER_CONNECT_PART WHERE TARGET_OBJID = #{targetObjId} AND PART_NO = #{partNo} DELETE PMS_DEV_MASTER_REL_PART_INFO WHERE 1=1 AND TARGET_OBJID = #{objId} AND PART_NO = #{partNo} MERGE INTO PMS_PART_MASTER_CONNECT_PART P USING DUAL ON (P.TARGET_OBJID = #{targetObjId} AND P.PART_NO = #{partNo}) WHEN MATCHED THEN UPDATE SET SEQ = #{seq} MERGE INTO PMS_REL_WBS_TASK_FNC_TASK P USING DUAL ON (P.TARGET_OBJID = #{wbsTaskObjId} AND P.SUB_OBJID = #{fnTaskObjId} AND TASK_TYPE = #{taskType}) WHEN NOT MATCHED THEN INSERT ( OBJID, TARGET_OBJID, SUB_OBJID, TASK_TYPE, REGDATE, WRITER )VALUES( #{objId}, #{wbsTaskObjId}, #{fnTaskObjId}, #{taskType}, SYSDATE, #{writer} ) DELETE PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = #{targetObjId} AND SUB_OBJID = #{fnTaskObjId} INSERT INTO pms_wbs_task ( objid, target_objid, parent_objid, task_name, task_start_plan_date, task_end_plan_date, task_start_date, task_end_date, is_template_task, task_type, proj_step, regdate, update_date, status, writer, task_charger_id, task_dept ) VALUES ( #{objId}::integer, #{projectObjId}::integer, 0, #{taskName}, to_date(#{taskStartPlanDate},'yyyy-mm-dd'), to_date(#{taskEndPlanDate},'yyyy-mm-dd'), to_date(#{taskStartDate},'yyyy-mm-dd'), to_date(#{taskEndDate},'yyyy-mm-dd'), #{isTemplateTask}::integer, 'task', #{projStep}, now(), now(), #{status}, #{writer}, #{taskChargerId}, #{taskDeptCode} ) ON CONFLICT (objId) DO UPDATE SET task_name =#{taskName}, task_start_plan_date =to_date(#{taskStartPlanDate},'yyyy-mm-dd'), task_end_plan_date =to_date(#{taskEndPlanDate},'yyyy-mm-dd'), task_start_date =to_date(#{taskStartDate},'yyyy-mm-dd'), task_end_date =to_date(#{taskEndDate},'yyyy-mm-dd'), status =#{status}, task_charger_id =#{taskChargerId}, task_dept =#{taskDeptCode}, update_date =now() DELETE PMS_WBS_TASK TASK WHERE TASK.OBJID = #{taskObjId} DELETE PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = #{taskObjId} INSERT INTO PMS_WBS_TASK_CONFIRM ( OBJID, TARGET_OBJID, CONFIRM_TYPE, CONTENTS, RESULT, REGDATE, WRITER ) VALUES ( #{objId}, #{targetObjId}, #{userType}, #{contents}, #{result}, SYSDATE, #{writer} ) UPDATE PMS_WBS_TASK SET STATUS = #{status} ,TASK_END_DATE = SYSDATE WHERE OBJID = #{targetObjId} UPDATE PMS_WBS_TASK SET TASK_DEPT = #{deptCode} ,TASK_CHARGER_ID = null WHERE OBJID = #{taskObjId} UPDATE PMS_WBS_TASK SET TASK_CHARGER_ID = #{userId} WHERE OBJID = #{taskObjId} INSERT INTO project_mgmt (project_mgmt_objid ,order_mgmt_objid ,region_cd ,customer_cd ,order_cd ,project_title ,del_date ,plant_cd ,manager_pm ,reg_id ,reg_date ) VALUES ( #{project_mgmt_objid} ,#{objId} ,#{region_cd} ,#{customer_cd} ,#{order_cd} ,#{order_title} ,#{del_date} ,#{plant_cd} ,#{manager_pm} ,#{userId} ,now() ) ON CONFLICT (project_mgmt_objid) DO UPDATE SET region_cd=#{region_cd} ,customer_cd=#{customer_cd} ,order_cd=#{order_cd} ,project_title=#{order_title} ,del_date=#{del_date} ,plant_cd=#{plant_cd} ,manager_pm=#{manager_pm} INSERT INTO PROJECT_TASK_MGMT ( OBJID ,TARGET_OBJID ,ORDER_NO ,TASK_NAME ,WRITER ,START_PDATE ,END_PDATE ,END_DATE ,APPR_CD ,REG_DATE ,FILE_TYPE ) (select #{taskobjId}+T.ORDER_NO ,#{objId} ,T.ORDER_NO ,T.TASK_NAME ,'' ,'' ,'' ,'' ,'' ,sysdate ,T.FILE_TYPE from PROJECT_TASK_REFERENCE t ) MERGE INTO PROJECT_TASK_MGMT USING DUAL ON (OBJID = #{objId}) WHEN MATCHED THEN UPDATE SET TASK_NAME = #{task_name} ,ORDER_NO=#{order_no} ,WRITER = #{user_id} ,START_PDATE = #{start_pdate} ,END_PDATE=#{end_pdate} ,END_DATE=#{end_date} ,APPR_CD=#{appr_cd} ,FILE_TYPE = #{file_type} WHEN NOT MATCHED THEN INSERT ( OBJID ,TARGET_OBJID ,ORDER_NO ,TASK_NAME ,WRITER ,START_PDATE ,END_PDATE ,END_DATE ,APPR_CD ,REG_DATE ,FILE_TYPE ) VALUES ( #{objId} ,#{parentObjId} ,#{order_no} ,#{task_name} ,#{user_id} ,#{start_pdate} ,#{end_pdate} ,#{end_date} ,#{appr_cd} ,sysdate ,#{file_type} ) UPDATE PROJECT_MGMT T SET PROJECT_NO=#{project_no} ,MODEL_NAME=#{model_name} ,CNT=#{cnt} ,MANUFACTUR_COST1=#{manufactur_cost1} ,MANUFACTUR_COST2=#{manufactur_cost2} ,CONTRACT_AMOUNT=#{contract_amount} ,MANUFACTUR_SCOST=#{manufactur_scost} WHERE T.OBJID = #{objId} DELETE FROM PROJECT_TASK_MGMT WHERE OBJID IN #{objkey} UPDATE PMS_WBS_TASK SET STATUS = 'COMPLETE' WHERE OBJID = #{objId} DELETE FROM PROJECT_MGMT WHERE order_mgmt_objid = #{objId}::integer DELETE FROM PMS_WBS_TASK WHERE target_objid = (select project_mgmt_objid from project_mgmt as o where o.order_mgmt_objid=#{objId}::integer) UPDATE PMS_WBS_TASK SET STATUS = #{status} WHERE TARGET_OBJID = #{objId}::integer UPDATE PMS_WBS_TASK_INFO SET DEPT_CODE = #{DEPT_CODE}, MANAGER_USER_ID = #{MANAGER_USER_ID}, TASK_PERFORM_DAY = #{TASK_PERFORM_DAY}, PLAN_START_DATE = #{PLAN_START_DATE}, PLAN_END_DATE = #{PLAN_END_DATE}, RESULT_START_DATE = #{RESULT_START_DATE}, RESULT_END_DATE = #{RESULT_END_DATE}, EXPECTED_POINT = #{EXPECTED_POINT}, PM_CONFIRM_STATUS = #{PM_CONFIRM_STATUS}, REMARK = #{REMARK}, WRITER = #{WRITER}, UPDATE_DATE = NOW() WHERE OBJID = #{OBJID} AND TARGET_OBJID = #{TARGET_OBJID} with upsert as ( UPDATE PMS_INVEST_COST_MNG SET STATUS=#{addStatus} where OBJID = #{OBJID}::numeric ) INSERT INTO PMS_INVEST_COST_MNG( OBJID , SEQ , TITLE , DRAFTER , DUEDATE , AMOUNT , STATUS , TARGET_OBJID , REGDATE ) select #{OBJID}::numeric , #{addSeq} , #{addTitle} , #{addDrafter} , TO_DATE(#{addDueDate}, 'YYYY-MM-DD') , #{addAmount}::numeric , #{addStatus} , #{targetObjId}::numeric , now() where not exists ( select * from PMS_INVEST_COST_MNG where OBJID = #{OBJID}::numeric ) DELETE FROM PMS_INVEST_COST_MNG WHERE OBJID = #{objId}::numeric INSERT INTO PMS_WBS_TEMPLATE ( OBJID ,PRODUCT_OBJID ,TITLE ,CUSTOMER_PRODUCT ,WRITER ,REG_DATE ) VALUES ( #{objid} ,#{product} ,#{title} ,#{customer_product} ,#{writer} ,now() ) INSERT INTO PMS_WBS_TASK_STANDARD ( OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_SEQ ,USER_ID ,WRITER ,REG_DATE ,UNIT_NO ) VALUES ( #{objid} ,#{parent_objid} ,#{task_name} ,#{task_seq} ,#{user_id} ,#{writer} ,now() ,#{unit_no} ) ON CONFLICT (OBJID) DO UPDATE SET TASK_NAME = #{task_name} ,TASK_SEQ = #{task_seq} ,USER_ID = #{user_id} ,UNIT_NO = #{unit_no} DELETE FROM PMS_WBS_TASK_STANDARD WHERE OBJID IN #{objkey} UPDATE PMS_WBS_TEMPLATE SET CUSTOMER_PRODUCT = #{customer_product} WHERE OBJID = #{OBJID} DELETE FROM PMS_WBS_TEMPLATE WHERE OBJID IN #{objkey} DELETE FROM PMS_WBS_TASK_STANDARD WHERE PARENT_OBJID IN #{objkey} INSERT INTO PMS_WBS_TASK ( OBJID ,CONTRACT_OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_SEQ ,WRITER ,UNIT_NO ) VALUES ( #{objid} ,#{parent_objid} ,'' ,#{task_name} ,#{task_seq} ,#{writer} ,#{unit_no} ) ON CONFLICT (OBJID) DO UPDATE SET TASK_NAME = #{task_name} ,TASK_SEQ = #{task_seq} ,UNIT_NO = #{unit_no} DELETE FROM PMS_WBS_TASK WHERE OBJID IN #{objkey} DELETE FROM SETUP_WBS_TASK WHERE OBJID IN #{objkey} DELETE FROM INSPECTION_MGMT WHERE OBJID IN #{objkey} INSERT INTO SETUP_WBS_TASK ( OBJID ,CONTRACT_OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_SEQ ,WRITER ,REGDATE ) VALUES ( #{objid} ,#{CONTRACT_OBJID} ,#{PARENT_OBJID} ,#{task_name} ,#{task_seq} ,#{writer} ,NOW() ) ON CONFLICT (OBJID) DO UPDATE SET TASK_NAME = #{task_name} ,TASK_SEQ = #{task_seq} UPDATE SETUP_WBS_TASK SET TASK_SEQ = (COALESCE(TASK_SEQ,'0')::NUMERIC + 1) WHERE CONTRACT_OBJID = #{CONTRACT_OBJID} AND PARENT_OBJID = #{PARENT_OBJID} AND TASK_SEQ::NUMERIC >= #{task_seq}::NUMERIC INSERT INTO PMS_WBS_TASK ( OBJID ,CONTRACT_OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_SEQ ,DESIGN_USER_ID ,DESIGN_PLAN_START ,DESIGN_PLAN_END ,DESIGN_ACT_START ,DESIGN_ACT_END ,PURCHASE_USER_ID ,PURCHASE_PLAN_START ,PURCHASE_PLAN_END ,PURCHASE_ACT_START ,PURCHASE_ACT_END ,PRODUCE_USER_ID ,PRODUCE_PLAN_START ,PRODUCE_PLAN_END ,PRODUCE_ACT_START ,PRODUCE_ACT_END ,SELFINS_USER_ID ,SELFINS_PLAN_START ,SELFINS_PLAN_END ,SELFINS_ACT_START ,SELFINS_ACT_END ,FINALINS_USER_ID ,FINALINS_PLAN_START ,FINALINS_PLAN_END ,FINALINS_ACT_START ,FINALINS_ACT_END ,SHIP_USER_ID ,SHIP_PLAN_START ,SHIP_PLAN_END ,SHIP_ACT_START ,SHIP_ACT_END ,SETUP_USER_ID ,SETUP_PLAN_START ,SETUP_PLAN_END ,SETUP_ACT_START ,SETUP_ACT_END ,WRITER ,REG_DATE ,DESIGN_RATE ,PURCHASE_RATE ,PRODUCE_RATE ,SELFINS_RATE ,FINALINS_RATE ,SHIP_RATE ,SETUP_RATE ) VALUES ( #{OBJID } ,#{CONTRACT_OBJID } ,#{PARENT_OBJID } ,#{TASK_NAME } ,#{TASK_SEQ } ,#{DESIGN_USER_ID} ,#{DESIGN_PLAN_START} ,#{DESIGN_PLAN_END} ,#{DESIGN_ACT_START} ,#{DESIGN_ACT_END} ,#{PURCHASE_USER_ID} ,#{PURCHASE_PLAN_START} ,#{PURCHASE_PLAN_END} ,#{PURCHASE_ACT_START} ,#{PURCHASE_ACT_END} ,#{PRODUCE_USER_ID} ,#{PRODUCE_PLAN_START} ,#{PRODUCE_PLAN_END} ,#{PRODUCE_ACT_START} ,#{PRODUCE_ACT_END} ,#{SELFINS_USER_ID} ,#{SELFINS_PLAN_START} ,#{SELFINS_PLAN_END} ,#{SELFINS_ACT_START} ,#{SELFINS_ACT_END} ,#{FINALINS_USER_ID} ,#{FINALINS_PLAN_START} ,#{FINALINS_PLAN_END} ,#{FINALINS_ACT_START} ,#{FINALINS_ACT_END} ,#{SHIP_USER_ID} ,#{SHIP_PLAN_START} ,#{SHIP_PLAN_END} ,#{SHIP_ACT_START} ,#{SHIP_ACT_END} ,#{SETUP_USER_ID} ,#{SETUP_PLAN_START} ,#{SETUP_PLAN_END} ,#{SETUP_ACT_START} ,#{SETUP_ACT_END} ,#{WRITER } ,NOW() ,#{DESIGN_RATE } ,#{PURCHASE_RATE } ,#{PRODUCE_RATE } ,#{SELFINS_RATE } ,#{FINALINS_RATE } ,#{SHIP_RATE } ,#{SETUP_RATE } ) ON CONFLICT (OBJID) DO UPDATE SET DESIGN_USER_ID = #{DESIGN_USER_ID } ,DESIGN_PLAN_START = #{DESIGN_PLAN_START } ,DESIGN_PLAN_END = #{DESIGN_PLAN_END } ,DESIGN_ACT_START = #{DESIGN_ACT_START } ,DESIGN_ACT_END = #{DESIGN_ACT_END } ,TASK_NAME = #{TASK_NAME } ,PURCHASE_USER_ID = #{PURCHASE_USER_ID } ,PURCHASE_PLAN_START = #{PURCHASE_PLAN_START} ,PURCHASE_PLAN_END = #{PURCHASE_PLAN_END} ,PURCHASE_ACT_START = #{PURCHASE_ACT_START} ,PURCHASE_ACT_END = #{PURCHASE_ACT_END} ,MODIFIER = #{WRITER } ,UPDATE_DATE = NOW() ,DESIGN_RATE = #{DESIGN_RATE } ,PURCHASE_RATE = #{PURCHASE_RATE } INSERT INTO PMS_WBS_TASK ( OBJID ,CONTRACT_OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_SEQ ,DESIGN_USER_ID ,DESIGN_PLAN_START ,DESIGN_PLAN_END ,DESIGN_ACT_START ,DESIGN_ACT_END ,PURCHASE_USER_ID ,PURCHASE_PLAN_START ,PURCHASE_PLAN_END ,PURCHASE_ACT_START ,PURCHASE_ACT_END ,PRODUCE_USER_ID ,PRODUCE_PLAN_START ,PRODUCE_PLAN_END ,PRODUCE_ACT_START ,PRODUCE_ACT_END ,SELFINS_USER_ID ,SELFINS_PLAN_START ,SELFINS_PLAN_END ,SELFINS_ACT_START ,SELFINS_ACT_END ,FINALINS_USER_ID ,FINALINS_PLAN_START ,FINALINS_PLAN_END ,FINALINS_ACT_START ,FINALINS_ACT_END ,SHIP_USER_ID ,SHIP_PLAN_START ,SHIP_PLAN_END ,SHIP_ACT_START ,SHIP_ACT_END ,SETUP_USER_ID ,SETUP_PLAN_START ,SETUP_PLAN_END ,SETUP_ACT_START ,SETUP_ACT_END ,WRITER ,DESIGN_RATE ,PURCHASE_RATE ,PRODUCE_RATE ,SELFINS_RATE ,FINALINS_RATE ,SHIP_RATE ,SETUP_RATE ) VALUES ( #{OBJID } ,#{CONTRACT_OBJID } ,#{PARENT_OBJID } ,#{TASK_NAME } ,#{TASK_SEQ } ,#{DESIGN_USER_ID} ,#{DESIGN_PLAN_START} ,#{DESIGN_PLAN_END} ,#{DESIGN_ACT_START} ,#{DESIGN_ACT_END} ,#{PURCHASE_USER_ID} ,#{PURCHASE_PLAN_START} ,#{PURCHASE_PLAN_END} ,#{PURCHASE_ACT_START} ,#{PURCHASE_ACT_END} ,#{PRODUCE_USER_ID} ,#{PRODUCE_PLAN_START} ,#{PRODUCE_PLAN_END} ,#{PRODUCE_ACT_START} ,#{PRODUCE_ACT_END} ,#{SELFINS_USER_ID} ,#{SELFINS_PLAN_START} ,#{SELFINS_PLAN_END} ,#{SELFINS_ACT_START} ,#{SELFINS_ACT_END} ,#{FINALINS_USER_ID} ,#{FINALINS_PLAN_START} ,#{FINALINS_PLAN_END} ,#{FINALINS_ACT_START} ,#{FINALINS_ACT_END} ,#{SHIP_USER_ID} ,#{SHIP_PLAN_START} ,#{SHIP_PLAN_END} ,#{SHIP_ACT_START} ,#{SHIP_ACT_END} ,#{SETUP_USER_ID} ,#{SETUP_PLAN_START} ,#{SETUP_PLAN_END} ,#{SETUP_ACT_START} ,#{SETUP_ACT_END} ,#{WRITER } ,#{DESIGN_RATE } ,#{PURCHASE_RATE } ,#{PRODUCE_RATE } ,#{SELFINS_RATE } ,#{FINALINS_RATE } ,#{SHIP_RATE } ,#{SETUP_RATE } ) ON CONFLICT (OBJID) DO UPDATE SET PRODUCE_USER_ID = #{PRODUCE_USER_ID} ,PRODUCE_PLAN_START = #{PRODUCE_PLAN_START} ,PRODUCE_PLAN_END = #{PRODUCE_PLAN_END} ,TASK_NAME = #{TASK_NAME } ,WRITER = #{WRITER } ,PRODUCE_RATE = #{PRODUCE_RATE } UPDATE PMS_WBS_TASK SET PRODUCE_ACT_START = #{PRODUCE_ACT_START} ,PRODUCE_ACT_END = #{PRODUCE_ACT_END} ,PRODUCE_RATE = #{AS_RATE} WHERE OBJID = #{UNIT_CODE} INSERT INTO SETUP_WBS_TASK ( OBJID ,CONTRACT_OBJID ,PARENT_OBJID ,TASK_NAME ,TASK_CATEGORY ,SETUP_PLAN_START ,SETUP_PLAN_END ,SETUP_ACT_START ,SETUP_ACT_END ,EMPLOYEES_IN ,EMPLOYEES_OUT ,WRITER ,SETUP_RATE ) VALUES ( #{OBJID } ,#{CONTRACT_OBJID } ,#{PARENT_OBJID } ,#{TASK_NAME } ,#{TASK_CATEGORY } ,#{SETUP_PLAN_START} ,#{SETUP_PLAN_END} ,#{SETUP_ACT_START} ,#{SETUP_ACT_END} ,#{EMPLOYEES_IN } ,#{EMPLOYEES_OUT } ,#{WRITER } ,#{SETUP_RATE } ) ON CONFLICT (OBJID) DO UPDATE SET SETUP_PLAN_START = #{SETUP_PLAN_START} ,SETUP_PLAN_END = #{SETUP_PLAN_END} ,SETUP_ACT_START = #{SETUP_ACT_START} ,SETUP_ACT_END = #{SETUP_ACT_END} ,WRITER = #{WRITER } ,EMPLOYEES_IN = #{EMPLOYEES_IN } ,EMPLOYEES_OUT = #{EMPLOYEES_OUT } ,SETUP_RATE = #{SETUP_RATE } INSERT INTO PROJECT_MGMT ( OBJID ,CONTRACT_OBJID ,CATEGORY_CD ,CUSTOMER_OBJID ,PRODUCT ,CUSTOMER_PROJECT_NAME ,STATUS_CD ,DUE_DATE ,LOCATION ,SETUP ,FACILITY ,FACILITY_QTY ,FACILITY_TYPE ,FACILITY_DEPTH ,PRODUCTION_NO ,BUS_CAL_CD ,CATEGORY1_CD ,CHG_USER_ID ,PLAN_DATE ,COMPLETE_DATE ,RESULT_CD ,PROJECT_NO ,PM_USER_ID ,CONTRACT_PRICE ,CONTRACT_PRICE_CURRENCY ,CONTRACT_CURRENCY ,REGDATE ,WRITER ,CONTRACT_NO ,CUSTOMER_EQUIP_NAME ,REQ_DEL_DATE ,CONTRACT_DEL_DATE ,CONTRACT_COMPANY ,CONTRACT_DATE ,PO_NO ,MANUFACTURE_PLANT ,CONTRACT_RESULT ,PROJECT_NAME ,SPEC_USER_ID ,SPEC_PLAN_DATE ,SPEC_COMP_DATE ,SPEC_RESULT_CD ,EST_PLAN_DATE ,EST_USER_ID ,EST_COMP_DATE ,EST_RESULT_CD ,AREA_CD ,MECHANICAL_TYPE ,OVERHAUL_ORDER ,IS_TEMP ,PART_OBJID ,PART_NO ,PART_NAME ,QUANTITY ) ( SELECT #{OBJID} ,#{objId} ,CATEGORY_CD ,CUSTOMER_OBJID ,PRODUCT ,CUSTOMER_PROJECT_NAME ,STATUS_CD ,DUE_DATE ,LOCATION ,SETUP ,#{facility} ,#{facility_qty} ,FACILITY_TYPE ,#{facility_depth} ,PRODUCTION_NO ,BUS_CAL_CD ,CATEGORY1_CD ,CHG_USER_ID ,PLAN_DATE ,COMPLETE_DATE ,RESULT_CD ,( SELECT -- 주문유형 코드 (CATEGORY_CD를 영문 약어로 매핑) CASE CODE_NAME(CATEGORY_CD) WHEN '오버홀' THEN 'O' WHEN '개조' THEN 'M' WHEN '개발' THEN 'D' WHEN '견적' THEN 'Q' WHEN '수리' THEN 'R' WHEN '판매' THEN 'S' ELSE 'T' END || '-' || -- 제품구분 코드 (PRODUCT를 약어로 매핑) CASE CODE_NAME(PRODUCT) WHEN 'Machine' THEN 'MC' WHEN 'A/S' THEN 'AS' WHEN 'D/S' THEN 'DS' WHEN 'B/S' THEN 'BS' WHEN 'C/T' THEN 'CT' WHEN 'A/C' THEN 'AC' WHEN 'W/M' THEN 'WM' WHEN '기타' THEN '기타' ELSE REPLACE(CODE_NAME(PRODUCT), '/', '') END || '-' || -- 날짜 (YYMMDD) TO_CHAR(CURRENT_DATE, 'YYMMDD') || '-' || -- 순번 (001, 002, ...) LPAD( COALESCE( ( SELECT MAX(SUBSTRING(PROJECT_NO FROM '\d{3}$')::INTEGER) + 1 FROM PROJECT_MGMT WHERE PROJECT_NO LIKE CASE CODE_NAME(CATEGORY_CD) WHEN '오버홀' THEN 'O' WHEN '개조' THEN 'M' WHEN '개발' THEN 'D' WHEN '견적' THEN 'Q' WHEN '수리' THEN 'R' WHEN '판매' THEN 'S' ELSE 'T' END || '-' || CASE CODE_NAME(PRODUCT) WHEN 'Machine' THEN 'MC' WHEN 'A/S' THEN 'AS' WHEN 'D/S' THEN 'DS' WHEN 'B/S' THEN 'BS' WHEN 'C/T' THEN 'CT' WHEN 'A/C' THEN 'AC' WHEN 'W/M' THEN 'WM' WHEN '기타' THEN '기타' ELSE REPLACE(CODE_NAME(PRODUCT), '/', '') END || '-' || TO_CHAR(CURRENT_DATE, 'YYMMDD') || '-%' ), 1 )::TEXT, 3, '0' ) FROM CONTRACT_MGMT WHERE OBJID = #{objId} ) ,PM_USER_ID ,#{contract_price} ,#{contract_price_currency} ,#{contract_currency} ,now() ,WRITER ,CONTRACT_NO ,CUSTOMER_EQUIP_NAME ,REQ_DEL_DATE ,CONTRACT_DEL_DATE ,CONTRACT_COMPANY ,CONTRACT_DATE ,PO_NO ,MANUFACTURE_PLANT ,CONTRACT_RESULT ,#{project_name} ,SPEC_USER_ID ,SPEC_PLAN_DATE ,SPEC_COMP_DATE ,SPEC_RESULT_CD ,EST_PLAN_DATE ,EST_USER_ID ,EST_COMP_DATE ,EST_RESULT_CD ,AREA_CD ,MECHANICAL_TYPE ,#{overhaul_order} ,#{is_temp} ,#{part_objid} ,#{part_no} ,#{part_name} ,#{quantity} FROM CONTRACT_MGMT WHERE OBJID=#{objId} ) INSERT INTO PMS_WBS_TASK ( OBJID ,CONTRACT_OBJID ,TASK_NAME ,TASK_SEQ ,UNIT_NO ,WRITER ) (SELECT HASHTEXT(REPLACE(GEN_RANDOM_UUID()::VARCHAR,'-',''))::VARCHAR ,#{OBJID} ,T.TASK_NAME ,T.TASK_SEQ ,T.UNIT_NO ,#{writer} FROM PMS_WBS_TASK_STANDARD AS T LEFT JOIN PMS_WBS_TEMPLATE AS T1 ON T.PARENT_OBJID = T1.OBJID WHERE T1.PRODUCT_OBJID= (SELECT PRODUCT FROM CONTRACT_MGMT WHERE OBJID = #{contract_objid} AND T1.TITLE=#{customer_product} ) ) UPDATE PROJECT_MGMT SET FACILITY_QTY = #{facility_qty} ,PROJECT_NO = #{project_no} ,CONTRACT_PRICE = #{contract_price} ,CONTRACT_PRICE_CURRENCY = #{contract_price_currency} ,CONTRACT_CURRENCY = #{contract_currency} ,PROJECT_NAME = #{project_name} ,FACILITY = #{facility} ,FACILITY_DEPTH = #{facility_depth} ,CONTRACT_DEL_DATE = #{contract_del_date} WHERE OBJID = #{OBJID} UPDATE PROJECT_MGMT DUE_DATE = #{due_date}, CUSTOMER_PROJECT_NAME = #{customer_project_name}, LOCATION = #{location}, SETUP = #{setup}, FACILITY = #{facility}, FACILITY_TYPE = #{facility_type}, FACILITY_DEPTH = #{facility_depth}, CONTRACT_DATE = #{contract_date}, PO_NO = #{po_no}, PM_USER_ID = #{pm_user_id}, CONTRACT_CURRENCY = #{contract_currency}, CONTRACT_PRICE_CURRENCY = #{contract_price_currency}, CONTRACT_PRICE = #{contract_price}, PROJECT_NAME = #{project_name}, CONTRACT_DEL_DATE = #{contract_del_date}, REQ_DEL_DATE = #{req_del_date}, CONTRACT_COMPANY = #{contract_company}, MANUFACTURE_PLANT = #{manufacture_plant}, QUANTITY = #{quantity} WHERE CONTRACT_OBJID = #{objId} AND PART_OBJID = #{part_objid} DELETE FROM PROJECT_MGMT WHERE 1=1 DELETE FROM INSPECTION_MGMT WHERE PARENT_OBJID = #{parentObjId} INSERT INTO INSPECTION_MGMT ( OBJID ,PARENT_OBJID ,UNIT_CODE ,INTERNAL_INSPECTION_DATE ,INTERNAL_INSPECTION_RESULT ,INTERNAL_INSPECTION_ID ,REGDATE ,WRITER ) VALUES ( #{OBJID } ,#{PARENT_OBJID } ,#{UNIT_CODE } ,#{INTERNAL_INSPECTION_DATE } ,#{INTERNAL_INSPECTION_RESULT } ,#{INTERNAL_INSPECTION_ID } ,NOW() ,#{WRITER } ) ON CONFLICT (OBJID) DO UPDATE SET PARENT_OBJID = #{PARENT_OBJID } ,UNIT_CODE = #{UNIT_CODE } ,INTERNAL_INSPECTION_DATE = #{INTERNAL_INSPECTION_DATE } ,INTERNAL_INSPECTION_RESULT = #{INTERNAL_INSPECTION_RESULT } ,INTERNAL_INSPECTION_ID = #{INTERNAL_INSPECTION_ID } ,REGDATE = NOW() ,WRITER = #{WRITER }