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}