ERP-node/src/com/pms/mapper/ProductionMng.xml

1924 lines
68 KiB
XML
Raw Normal View History

2025-08-21 09:41:46 +09:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Production">
<!-- 설비조립계획 목록을 가져온다. -->
<select id="getProductionDataList" parameterType="map" resultType="map">
SELECT *
FROM
(SELECT A.*,ROW_NUMBER() OVER (ORDER BY PROJECT_NO,DEL_DATE DESC) AS RNUM
FROM
(
<!-- SELECT
T.ASSEMBLY_PLAN_OBJID::varchar
,T.PROJECT_MGMT_OBJID::varchar
,T.PROJECT_NO
,(
SELECT A.PONUM
FROM ORDER_MGMT AS A, PROJECT_MGMT AS B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND B.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) AS PONUM
,(
SELECT A.ORDER_MGMT_OBJID
FROM ORDER_MGMT AS A, PROJECT_MGMT AS B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND B.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) AS ORDER_MGMT_OBJID
,T.REGION_CD
,CODE_NAME(T.REGION_CD) AS REGION_NAME
,T.CUSTOMER_CD
,CODE_NAME(T.CUSTOMER_CD) AS CUSTOMER_NAME
,T.ORDER_TITLE
,TO_CHAR(TO_DATE(T.DEL_DATE,'yyyymmdd'),'yyyy-mm-dd') AS DEL_DATE
,T.PRODUCTION_PM
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T.PRODUCTION_PM) AS PRODUCTION_PM_NAME
,TO_CHAR(TO_DATE(T.FIR_REG_DATE,'yyyymmdd'),'yyyy-mm-dd') AS FIR_REG_DATE
, CASE WHEN T.CHG_DATE=''
THEN NULL
ELSE TO_CHAR(TO_DATE(T.CHG_DATE,'yyyymmdd'),'yyyy-mm-dd')
END AS CHG_DATE
,T.CHG_CNT
,T.REG_ID
,T.REG_DATE
,(
SELECT
CODE_NAME(A.PROJECT_DIVISION)
FROM ORDER_MGMT AS A, PROJECT_MGMT AS B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND B.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) AS PROJECT_DIVISION_NAME
,(
SELECT
A.PROJECT_DERIVATION_NO
FROM ORDER_MGMT AS A, PROJECT_MGMT AS B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND B.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) AS PROJECT_DERIVATION_NO
,(
SELECT
CODE_NAME(A.PROJECT_MEAN)
FROM ORDER_MGMT AS A, PROJECT_MGMT AS B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND B.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) AS PROJECT_MEAN_NAME
,((
SELECT COALESCE(sum(H.per_in_count::INTEGER),0) FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) + (
SELECT COALESCE(sum(H.per_in_over_count::INTEGER),0) FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
)) as PER_IN_COUNT
,(
SELECT
sum(H.per_out_count::INTEGER) +sum(H.PER_OVER_COUNT::INTEGER)
+sum(H.per_out_count1::INTEGER) + sum(H.PER_OVER_COUNT1::INTEGER)
+sum(H.per_out_count2::INTEGER) + sum(H.PER_OVER_COUNT2::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT
,(
SELECT
sum(H.per_out_count3::INTEGER) +sum(H.PER_OVER_COUNT3::INTEGER)
+sum(H.per_out_count4::INTEGER) + sum(H.PER_OVER_COUNT4::INTEGER)
+sum(H.per_out_count5::INTEGER) + sum(H.PER_OVER_COUNT5::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT1
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT1::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT1
,(
SELECT
sum(H.per_out_count2::INTEGER) + sum(H.PER_OVER_COUNT2::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT2
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT2::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT2
,(
SELECT
sum(H.per_out_count3::INTEGER) + sum(H.PER_OVER_COUNT3::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT3
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT3::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT3
,(
SELECT
sum(H.per_out_count4::INTEGER) + sum(H.PER_OVER_COUNT4::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT4
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT4::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT4
,(
SELECT
sum(H.per_out_count5::INTEGER) + sum(H.PER_OVER_COUNT5::INTEGER)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OUT_COUNT5
,(
SELECT
COALESCE(sum(H.PER_OVER_COUNT5::INTEGER),0)
FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = T.PROJECT_MGMT_OBJID
) as PER_OVER_COUNT5
FROM FACILITY_ASSEMBLY_PLAN AS T -->
SELECT
T1.ORDER_MGMT_OBJID::varchar
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.REGION_CD) AS REGION_NAME
,T1.REGION_CD
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.CUSTOMER_CD) AS CUSTOMER_NAME
,T1.CUSTOMER_CD
,T1.ORDER_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.ORDER_CD) AS ORDER_NAME
,T1.ORDER_CD
,OUTC_CD1
,OUTC_CD2
,OUTC_CD3
,OUTC_CD4
,OUTC_CD5
,COALESCE((SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.OUTC_CD6),T1.OUTC_CD6) AS OUTC_CD6
,OUTI_CD1
,OUTI_CD2
,OUTI_CD3
,OUTI_CD4
,OUTI_CD5
,OUTI_CD6
,OUTC_VALUE1
,OUTC_VALUE2
,OUTC_VALUE3
,OUTC_VALUE4
,OUTC_VALUE5
,OUTC_VALUE6
,TO_CHAR(TO_DATE(START_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS START_DATE
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.MANAGER_PM) AS MANAGER_PM_NAME
,(SELECT DEPT_NAME FROM dept_info O WHERE O.DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO O1 WHERE O1.USER_ID = T1.MANAGER_PM)) AS MANAGER_PM_DEPT
,TO_CHAR(TO_DATE(T1.DEL_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS DEL_DATE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.PLANT_CD) AS PLANT_NAME
,T1.PLANT_CD
,TO_CHAR(TO_DATE(T1.REQ_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS REQ_DATE
,T1.REASON
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.RESULT_CD) AS RESULT_NAME
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.PROJECT_DIVISION) AS PROJECT_DIVISION_NAME
,T1.PROJECT_DIVISION
,T1.RESULT_CD
,T1.ORDER_PRICE
,T1.ORDER_PRICE_D
,T1.EX_MATERIAL_COST
,T1.EX_LABOR_COST
,T1.EX_EXPENSE_COST
,T1.EX_MATERIAL_COST_W
,T1.EX_LABOR_COST_W
,T1.EX_EXPENSE_COST_W
,T1.DESIGN_PM
,T1.PRODUCTION_PM
,T1.ELECTRO_PM
,T1.SE_PM
,T1.PURCHASE_PM
,T1.MANAGER_PM
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.REG_ID) AS REG_NAME
,TO_CHAR(T1.REG_DATE,'YYYY-MM-DD') AS REG_DATE
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.assembly_plan_objid AND DOC_TYPE='01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.assembly_plan_objid AND DOC_TYPE='02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
,(SELECT COUNT(1) FROM ORDER_MGMT_EXAMPLE WHERE ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID) AS EX_CNT
,PONUM
,T.assembly_plan_objid::varchar
,t2.project_mgmt_objid::varchar
,(SELECT COUNT(1) FROM production_issue o5 WHERE o5.assembly_plan_objid = T.assembly_plan_objid) AS ISSUE_CNT
,(SELECT COUNT(1) FROM production_task o6 WHERE o6.assembly_plan_objid = T.assembly_plan_objid) AS TASK_CNT
,T1.PROJECT_NO
,round(CAST((SELECT
COUNT(1)
from production_task o6
WHERE o6.assembly_plan_objid=T.assembly_plan_objid AND o6.status_cd='0001550')
--WHERE o6.assembly_plan_objid=T.assembly_plan_objid AND CASE WHEN o6.status_cd='' THEN '0001550' ELSE o6.status_cd END = '0001550')
/ (SELECT COUNT(1) FROM production_task o6 WHERE o6.assembly_plan_objid = T.assembly_plan_objid)::FLOAT *100 AS NUMERIC),1) AS rate
FROM facility_assembly_plan T ,order_mgmt T1,project_mgmt t2
WHERE T.project_mgmt_objid = t2.project_mgmt_objid
AND T1.order_mgmt_objid = t2.order_mgmt_objid
<if test="Year !=null and Year != '' ">
<!-- AND TO_CHAR(TO_DATE(DEL_DATE,'YYYY-MM-DD'),'YYYY') = #{Year} -->
AND SUBSTR(T1.PROJECT_NO,0,5) = #{Year}
</if>
<if test="projectNo != null and !''.equals(projectNo)">
AND UPPER(T1.PROJECT_NO) LIKE UPPER('%${projectNo}%')
</if>
<if test="order_cd != null and !''.equals(order_cd)">
AND T1.ORDER_CD = #{order_cd}
</if>
<if test="outc_cd5 != null and !''.equals(outc_cd5)">
AND UPPER(T1.OUTC_CD5) LIKE UPPER('%${outc_cd5}%')
</if>
<if test="customer_cd != null and !''.equals(customer_cd)">
AND T1.CUSTOMER_CD = #{customer_cd}
</if>
<if test="project_division != null and !''.equals(project_division)">
AND T1.PROJECT_DIVISION = #{project_division}
</if>
<if test="plant_cd != null and !''.equals(plant_cd)">
AND T1.PLANT_CD = #{plant_cd}
</if>
<if test="outc_cd6 != null and !''.equals(outc_cd6)">
AND T1.OUTC_CD6 = #{outc_cd6}
</if>
<if test="manager_pm != null and !''.equals(manager_pm)">
AND T1.MANAGER_PM = #{manager_pm}
</if>
<!-- ORDER BY TO_CHAR(TO_DATE(SUBSTR(PROJECT_NO,0,4),'yyyy'),'yyyy'),DEL_DATE DESC -->
) AS A
WHERE 1=1
) AS T1 WHERE 1=1
<if test="PAGE_END != null and PAGE_END != ''">
<![CDATA[ AND T1.RNUM <= #{PAGE_END}::integer ]]>
</if>
<if test="PAGE_START != null and PAGE_START != ''">
<![CDATA[ AND T1.RNUM >= #{PAGE_START}::integer ]]>
</if>
</select>
<!-- 설비조립계획 count를 가져온다. -->
<select id="getProductionDataListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer MAX_PAGE_SIZE,
TOTAL_CNT::integer
FROM
( SELECT
COUNT(1)::float TOTAL_CNT
FROM
(
SELECT
T1.ORDER_MGMT_OBJID
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.REGION_CD) AS REGION_NAME
,T1.REGION_CD
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.CUSTOMER_CD) AS CUSTOMER_NAME
,T1.CUSTOMER_CD
,T1.ORDER_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.ORDER_CD) AS ORDER_NAME
,T1.ORDER_CD
,OUTC_CD1
,OUTC_CD2
,OUTC_CD3
,OUTC_CD4
,OUTC_CD5
,COALESCE((SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.OUTC_CD6),T1.OUTC_CD6) AS OUTC_CD6
,OUTI_CD1
,OUTI_CD2
,OUTI_CD3
,OUTI_CD4
,OUTI_CD5
,OUTI_CD6
,OUTC_VALUE1
,OUTC_VALUE2
,OUTC_VALUE3
,OUTC_VALUE4
,OUTC_VALUE5
,OUTC_VALUE6
,TO_CHAR(TO_DATE(START_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS START_DATE
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.MANAGER_PM) AS MANAGER_PM_NAME
,(SELECT DEPT_NAME FROM dept_info O WHERE O.DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO O1 WHERE O1.USER_ID = T1.MANAGER_PM)) AS MANAGER_PM_DEPT
,TO_CHAR(TO_DATE(T1.DEL_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS DEL_DATE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.PLANT_CD) AS PLANT_NAME
,T1.PLANT_CD
,TO_CHAR(TO_DATE(T1.REQ_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS REQ_DATE
,T1.REASON
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.RESULT_CD) AS RESULT_NAME
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.PROJECT_DIVISION) AS PROJECT_DIVISION_NAME
,T1.PROJECT_DIVISION
,T1.RESULT_CD
,T1.PROJECT_NO
,T1.ORDER_PRICE
,T1.ORDER_PRICE_D
,T1.EX_MATERIAL_COST
,T1.EX_LABOR_COST
,T1.EX_EXPENSE_COST
,T1.EX_MATERIAL_COST_W
,T1.EX_LABOR_COST_W
,T1.EX_EXPENSE_COST_W
,T1.DESIGN_PM
,T1.PRODUCTION_PM
,T1.ELECTRO_PM
,T1.SE_PM
,T1.PURCHASE_PM
,T1.MANAGER_PM
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.REG_ID) AS REG_NAME
,TO_CHAR(T1.REG_DATE,'YYYY-MM-DD') AS REG_DATE
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.assembly_plan_objid AND DOC_TYPE='01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,(SELECT COUNT(1) FROM ORDER_MGMT_EXAMPLE WHERE ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID) AS EX_CNT
,PONUM
,T.assembly_plan_objid
,t2.project_mgmt_objid
,(SELECT COUNT(1) FROM production_issue o5 WHERE o5.assembly_plan_objid = T.assembly_plan_objid) AS ISSUE_CNT
,(SELECT COUNT(1) FROM production_task o6 WHERE o6.assembly_plan_objid = T.assembly_plan_objid) AS TASK_CNT
FROM facility_assembly_plan T ,order_mgmt T1,project_mgmt t2
WHERE T.project_mgmt_objid = t2.project_mgmt_objid
AND T1.order_mgmt_objid = t2.order_mgmt_objid
) AS T
WHERE 1=1
<if test="Year !=null and Year != '' ">
<!-- AND TO_CHAR(TO_DATE(DEL_DATE,'YYYY-MM-DD'),'YYYY') = #{Year} -->
AND SUBSTR(PROJECT_NO,0,5) = #{Year}
</if>
<if test="projectNo != null and !''.equals(projectNo)">
AND UPPER(PROJECT_NO) LIKE UPPER('%${projectNo}%')
</if>
<if test="order_cd != null and !''.equals(order_cd)">
AND ORDER_CD = #{order_cd}
</if>
<if test="outc_cd5 != null and !''.equals(outc_cd5)">
AND UPPER(OUTC_CD5) LIKE UPPER('%${outc_cd5}%')
</if>
<if test="customer_cd != null and !''.equals(customer_cd)">
AND CUSTOMER_CD = #{customer_cd}
</if>
<if test="project_division != null and !''.equals(project_division)">
AND PROJECT_DIVISION = #{project_division}
</if>
<if test="plant_cd != null and !''.equals(plant_cd)">
AND PLANT_CD = #{plant_cd}
</if>
<if test="outc_cd6 != null and !''.equals(outc_cd6)">
AND outc_cd6 = #{outc_cd6}
</if>
<if test="manager_pm != null and !''.equals(manager_pm)">
AND MANAGER_PM = #{manager_pm}
</if>
) AS T1
</select>
<!-- 설비조립계획 최초저장 -->
<update id="mergeProductionData" parameterType="map">
INSERT INTO
facility_assembly_plan
(assembly_plan_objid
,project_mgmt_objid
,project_no
,region_cd
,customer_cd
,order_title
,del_date
,production_pm
,reg_id
,reg_date
,fir_reg_date
)
VALUES (
#{assembly_plan_objid}
,#{project_mgmt_objid}
,#{project_no}
,#{region_cd}
,#{customer_cd}
,#{order_title}
,#{del_date}
,#{production_pm}
,#{userId}
,now()
,(select to_char(now(),'yyyymmdd'))
) ON
CONFLICT (assembly_plan_objid) DO
UPDATE
SET region_cd=#{region_cd}
,customer_cd=#{customer_cd}
,order_title=#{order_title}
,del_date=#{del_date}
,production_pm=#{production_pm}
,project_no=#{project_no}
</update>
<!-- 설비조립계획 최초저장 -->
<update id="updateProductionData" parameterType="map">
UPDATE FACILITY_ASSEMBLY_PLAN T
SET CHG_DATE=TO_CHAR(SYSDATE,'YYYYMMDD')
,CHG_CNT= NVL((SELECT MAX(CHG_CNT) +1 FROM FACILITY_ASSEMBLY_PLAN WHERE PROJECT_MGMT_OBJID = #{project_mgmt_objid}), '1')
WHERE T.PROJECT_MGMT_OBJID = #{project_mgmt_objid}
</update>
<!--일정 전개는 생산부문의 "설비조립(L/L)에서 설치시운전" 까지 일정을 가지고 온다. -->
<!-- <select id="getCalendarList" parameterType="map" resultType="map">
<![CDATA[
SELECT TO_CHAR(TO_DATE(T.START_DATE,'YYYYMMDD') + ROWNUM - 1,'YYYYMMDD') AS WBS_DATE FROM (SELECT (SELECT TO_CHAR(TO_DATE(T.TASK_START_PLAN_DATE,'YY-MM-DD')+ROWNUM -1,'YYYYMMDD') STARTDATE FROM PMS_WBS_TASK T
WHERE T.TARGET_OBJID = #{project_mgmt_objid}
AND T.TASK_NAME='설비조립(L/L)') AS START_DATE ,(SELECT TO_CHAR(TO_DATE(O.TASK_END_PLAN_DATE,'YY-MM-DD'),'YYYYMMDD') DT FROM PMS_WBS_TASK O
WHERE O.TARGET_OBJID = #{project_mgmt_objid}
AND O.TASK_NAME='설치 및 시운전') AS END_DATE FROM DUAL) T
CONNECT BY LEVEL <= TO_DATE(T.END_DATE,'YYYYMMDD') - TO_DATE(T.START_DATE,'YYYYMMDD') + 1
]]>
</select> -->
<!--일정 전개는 생산부문의 "설비조립(L/L)에서 설치시운전" 까지 일정을 가지고 온다. -->
<select id="getCalendarList" parameterType="map" resultType="map">
<![CDATA[
SELECT
'total' as wbs_date
,'total' as input_date
,SUM(CASE WHEN H.PLAN_IN_COUNT = ''
THEN 0
ELSE H.PLAN_IN_COUNT::integer
END)::varchar AS PLAN_IN_COUNT
,SUM(CASE WHEN H.PLAN_OUT_COUNT = ''
THEN 0
ELSE H.PLAN_OUT_COUNT::integer
END)::varchar AS PLAN_OUT_COUNT
,SUM(CASE WHEN H.PLAN_OUT_COUNT1 = ''
THEN 0
ELSE H.PLAN_OUT_COUNT1::integer
END)::varchar AS PLAN_OUT_COUNT1
,SUM(CASE WHEN H.PER_IN_COUNT = ''
THEN 0
ELSE H.PER_IN_COUNT::integer
END)::varchar AS PER_IN_COUNT
,SUM(CASE WHEN H.PER_IN_OVER_COUNT = ''
THEN 0
ELSE H.PER_IN_OVER_COUNT::integer
END)::varchar AS PER_IN_OVER_COUNT
,SUM(CASE WHEN H.PER_OUT_COUNT = ''
THEN 0
ELSE H.PER_OUT_COUNT::integer
END)::varchar AS PER_OUT_COUNT
,SUM(CASE WHEN H.PER_OVER_COUNT = ''
THEN 0
ELSE H.PER_OVER_COUNT::integer
END)::varchar AS PER_OVER_COUNT
,SUM(CASE WHEN H.PER_OUT_COUNT1 = ''
THEN 0
ELSE H.PER_OUT_COUNT1::integer
END)::varchar AS PER_OUT_COUNT1
,SUM(CASE WHEN H.PER_OVER_COUNT1 = ''
THEN 0
ELSE H.PER_OVER_COUNT1::integer
END)::varchar AS PER_OVER_COUNT1
,SUM(CASE WHEN H.PER_OUT_COUNT2 = ''
THEN 0
ELSE H.PER_OUT_COUNT2::integer
END)::varchar AS PER_OUT_COUNT2
,SUM(CASE WHEN H.PER_OVER_COUNT2 = ''
THEN 0
ELSE H.PER_OVER_COUNT2::integer
END)::varchar AS PER_OVER_COUNT2
,SUM(CASE WHEN H.PER_OUT_COUNT3 = ''
THEN 0
ELSE H.PER_OUT_COUNT3::integer
END)::varchar AS PER_OUT_COUNT3
,SUM(CASE WHEN H.PER_OVER_COUNT3 = ''
THEN 0
ELSE H.PER_OVER_COUNT3::integer
END)::varchar AS PER_OVER_COUNT3
,SUM(CASE WHEN H.PER_OUT_COUNT4 = ''
THEN 0
ELSE H.PER_OUT_COUNT4::integer
END)::varchar AS PER_OUT_COUNT4
,SUM(CASE WHEN H.PER_OVER_COUNT4 = ''
THEN 0
ELSE H.PER_OVER_COUNT4::integer
END)::varchar AS PER_OVER_COUNT4
,SUM(CASE WHEN H.PER_OUT_COUNT5 = ''
THEN 0
ELSE H.PER_OUT_COUNT5::integer
END)::varchar AS PER_OUT_COUNT5
,SUM(CASE WHEN H.PER_OVER_COUNT5 = ''
THEN 0
ELSE H.PER_OVER_COUNT5::integer
END)::varchar AS PER_OVER_COUNT5
FROM
(
SELECT
to_char(generate_series((SELECT TO_DATE(MIN(TO_CHAR(T.TASK_START_PLAN_DATE,'yyyymmdd')),'yyyymmdd') AS STARTDATE
FROM PMS_WBS_TASK AS T
WHERE T.TARGET_OBJID = #{project_mgmt_objid}::integer
AND T.SEQ IN('7','8','9','10','11','12','13')
)::timestamp,(SELECT TO_DATE(MAX(TO_CHAR(T.TASK_END_PLAN_DATE,'yyyymmdd')),'yyyymmdd') AS STARTDATE
FROM PMS_WBS_TASK AS T
WHERE T.TARGET_OBJID = #{project_mgmt_objid}::integer
AND T.SEQ IN('7','8','9','10','11','12','13')
)::timestamp, '1 day'), 'yyyymmdd') as WBS_DATE
) AS A LEFT OUTER JOIN
(
SELECT H.* FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = #{project_mgmt_objid}::integer
) AS H
ON A.WBS_DATE = H.INPUT_DATE
UNION ALL
SELECT
A.wbs_date
,H.input_date
,coalesce(H.PLAN_IN_COUNT,'0') AS PLAN_IN_COUNT
,coalesce(H.PLAN_OUT_COUNT,'0') AS PLAN_OUT_COUNT
,coalesce(H.PLAN_OUT_COUNT1,'0') AS PLAN_OUT_COUNT1
,coalesce(H.PER_IN_COUNT,'0') AS PER_IN_COUNT
,coalesce(H.PER_IN_OVER_COUNT,'0') AS PER_IN_OVER_COUNT
,coalesce(H.PER_OUT_COUNT,'0') AS PER_OUT_COUNT
,coalesce(H.PER_OVER_COUNT,'0') AS PER_OVER_COUNT
,coalesce(H.PER_OUT_COUNT1,'0') AS PER_OUT_COUNT1
,coalesce(H.PER_OVER_COUNT1,'0') AS PER_OVER_COUNT1
,coalesce(H.PER_OUT_COUNT2,'0') AS PER_OUT_COUNT2
,coalesce(H.PER_OVER_COUNT2,'0') AS PER_OVER_COUNT2
,coalesce(H.PER_OUT_COUNT3,'0') AS PER_OUT_COUNT3
,coalesce(H.PER_OVER_COUNT3,'0') AS PER_OVER_COUNT3
,coalesce(H.PER_OUT_COUNT4,'0') AS PER_OUT_COUNT4
,coalesce(H.PER_OVER_COUNT4,'0') AS PER_OVER_COUNT4
,coalesce(H.PER_OUT_COUNT5,'0') AS PER_OUT_COUNT5
,coalesce(H.PER_OVER_COUNT5,'0') AS PER_OVER_COUNT5
FROM
(
SELECT
to_char(generate_series((SELECT TO_DATE(MIN(TO_CHAR(T.TASK_START_PLAN_DATE,'yyyymmdd')),'yyyymmdd') AS STARTDATE
FROM PMS_WBS_TASK AS T
WHERE T.TARGET_OBJID = #{project_mgmt_objid}::integer
AND T.SEQ IN('7','8','9','10','11','12','13')
)::timestamp,(SELECT TO_DATE(MAX(TO_CHAR(T.TASK_END_PLAN_DATE,'yyyymmdd')),'yyyymmdd') AS STARTDATE
FROM PMS_WBS_TASK AS T
WHERE T.TARGET_OBJID = #{project_mgmt_objid}::integer
AND T.SEQ IN('7','8','9','10','11','12','13')
)::timestamp, '1 day'), 'yyyymmdd') as WBS_DATE
) AS A LEFT OUTER JOIN
(
SELECT H.* FROM HUMAN_INPUT_PLAN AS H, FACILITY_ASSEMBLY_PLAN AS F
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
AND F.PROJECT_MGMT_OBJID = #{project_mgmt_objid}::integer
) AS H
ON A.WBS_DATE = H.INPUT_DATE
]]>
</select>
<update id="saveHumanInputPlan" parameterType="map">
INSERT INTO
human_input_plan
(input_date
, assembly_plan_objid
, per_in_count
, per_in_over_count
, per_out_count
, per_over_count
, per_out_count1
, per_over_count1
, per_out_count2
, per_over_count2
, per_out_count3
, per_over_count3
, per_out_count4
, per_over_count4
, per_out_count5
, per_over_count5
, reg_id
, reg_date
)
VALUES (
#{input_date}
, #{assembly_plan_objid}::integer
, coalesce(#{per_in_count},'0')
, coalesce(#{per_in_over_count},'0')
, coalesce(#{per_out_count},'0')
, coalesce(#{per_over_count},'0')
, coalesce(#{per_out_count1},'0')
, coalesce(#{per_over_count1},'0')
, coalesce(#{per_out_count2},'0')
, coalesce(#{per_over_count2},'0')
, coalesce(#{per_out_count3},'0')
, coalesce(#{per_over_count3},'0')
, coalesce(#{per_out_count4},'0')
, coalesce(#{per_over_count4},'0')
, coalesce(#{per_out_count5},'0')
, coalesce(#{per_over_count5},'0')
, #{writer}
, to_date(to_char(NOW(),'yyyymmdd'),'yyyymmdd')
) ON
CONFLICT (input_date,assembly_plan_objid) DO
UPDATE
SET per_in_count = coalesce(#{per_in_count},'0')
, per_in_over_count = coalesce(#{per_in_over_count},'0')
, per_out_count = coalesce(#{per_out_count},'0')
, per_over_count = coalesce(#{per_over_count},'0')
, per_out_count1 = coalesce(#{per_out_count1},'0')
, per_over_count1 = coalesce(#{per_over_count1},'0')
, per_out_count2 = coalesce(#{per_out_count2},'0')
, per_over_count2 = coalesce(#{per_over_count2},'0')
, per_out_count3 = coalesce(#{per_out_count3},'0')
, per_over_count3 = coalesce(#{per_over_count3},'0')
, per_out_count4 = coalesce(#{per_out_count4},'0')
, per_over_count4 = coalesce(#{per_over_count4},'0')
, per_out_count5 = coalesce(#{per_out_count5},'0')
, per_over_count5 = coalesce(#{per_over_count5},'0')
</update>
<select id="getProductionPm" resultType="map">
SELECT B.PRODUCTION_PM AS PRODUCTION_PM
FROM PROJECT_MGMT A, ORDER_MGMT B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND A.PROJECT_MGMT_OBJID = #{project_mgmt_objid}::integer
</select>
<select id="getOUTCInfo" parameterType="map" resultType="map">
SELECT (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD1) AS OUTC1
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD2) AS OUTC2
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD3) AS OUTC3
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD4) AS OUTC4
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD5) AS OUTC5
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = B.OUTC_CD6) AS OUTC6
FROM PROJECT_MGMT A, ORDER_MGMT B
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
AND A.PROJECT_MGMT_OBJID = #{project_mgmt_objid}::integer
</select>
<select id="searchProductionIssue" parameterType="map" resultType="map">
SELECT
production_issue_objid::varchar
,assembly_plan_objid::varchar
,issue_type
,occu_date
,issue_content
,action_content
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.production_issue_objid AND DOC_TYPE='ISSUE' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
,status_cd
from production_issue T
WHERE assembly_plan_objid = #{objId}::integer
</select>
<!-- //영업품목 상세 삭제 -->
<delete id="ProductionIssueDelete" parameterType="map">
DELETE FROM PRODUCTION_ISSUE
WHERE PRODUCTION_ISSUE_OBJID IN
<foreach collection="delObjKeyarr" item="objkey" index="index" separator="," open="(" close=")">
#{objkey}::integer
</foreach>
</delete>
<update id="SaveProductionIssue" parameterType="map">
INSERT INTO
PRODUCTION_ISSUE
(
production_issue_objid
, assembly_plan_objid
, issue_type
, occu_date
, issue_content
, action_content
, status_cd
, regdate
, reg_user_id
)
VALUES (
#{PRODUCTION_ISSUE_OBJID}::integer
, #{ASSEMBLY_PLAN_OBJID}::integer
, #{ISSUE_TYPE}
, #{OCCU_DATE}
, #{ISSUE_CONTENT}
, #{ACTION_CONTENT}
, #{STATUS_CD}
, now()
, #{WRITER}
) ON
CONFLICT (production_issue_objid) DO
UPDATE
SET ISSUE_TYPE = #{ISSUE_TYPE}
, OCCU_DATE = #{OCCU_DATE}
, ISSUE_CONTENT = #{ISSUE_CONTENT}
, ACTION_CONTENT = #{ACTION_CONTENT}
, STATUS_CD = #{STATUS_CD}
</update>
<insert id="createProductionTask" parameterType="map">
INSERT INTO PRODUCTION_TASK
(SELECT
trunc(RANDOM() * 999999999)
,#{assembly_plan_objid}
,t.sort_cd
,t.process_name
,t.status_cd
,NOW()
,#{userId}
,t.seq
from production_task t
WHERE t.assembly_plan_objid IS NULL
ORDER BY seq)
</insert>
<select id="searchProductionTask" parameterType="map" resultType="map">
SELECT
production_task_objid::varchar
,assembly_plan_objid::varchar
,sort_cd
,process_name
,status_cd
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.production_task_objid AND DOC_TYPE='TASK' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
from production_task T
WHERE assembly_plan_objid = #{objId}::integer
ORDER BY SEQ
</select>
<update id="updateProductionTask" parameterType="map">
UPDATE PRODUCTION_TASK
SET STATUS_CD = #{STATUS_CD}
WHERE PRODUCTION_TASK_OBJID = #{PRODUCTION_TASK_OBJID}::integer
AND ASSEMBLY_PLAN_OBJID = #{ASSEMBLY_PLAN_OBJID}::integer
</update>
<!-- 생산관리 삭제 -->
<delete id="deleteProduction" parameterType="map">
DELETE FROM facility_assembly_plan
WHERE project_mgmt_objid = (SELECT project_mgmt_objid FROM project_mgmt WHERE order_mgmt_objid=#{objId}::INTEGER)
</delete>
<sql id="contractMgmtBase">
(
SELECT
CM.OBJID AS CONTRACT_OBJID
,CM.CONTRACT_NO
,CM.CUSTOMER_OBJID
,(SELECT SUPPLY_CODE FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE
,(SELECT CODE_NAME(SUPPLY_CODE) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE_NAME
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_NAME
,(SELECT AREA_CD FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD_NAME
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CHARGE_USER_NAME
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_ID
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS BUS_REG_NO
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_NO
,(SELECT SUPPLY_BUSNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_BUSNAME
,(SELECT SUPPLY_STOCKNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_STOCKNAME
,(SELECT SUPPLY_ADDRESS FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_ADDRESS
,(SELECT SUPPLY_TEL_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_TEL_NO
,(SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS EMAIL
,(SELECT OFFICE_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS OFFICE_NO
,(SELECT SUPPLY_FAX_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_FAX_NO
,CM.CATEGORY_CD AS CATEGORY_CD
,CODE_NAME(CM.CATEGORY_CD) AS CATEGORY_CD_NAME
,CM.PRODUCT_GROUP AS PRODUCT_GROUP
,CODE_NAME(CM.PRODUCT_GROUP) AS PRODUCT_GROUP_NAME
,CM.PRODUCT AS PRODUCT
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = CM.PRODUCT) AS PRODUCT_NAME
,CM.QTY AS QTY
,CM.VEHICLE_CD AS VEHICLE_CD
,CODE_NAME(CM.VEHICLE_CD) AS VEHICLE_CD_NAME
,CM.LOAD_BOX_CD AS LOAD_BOX_CD
,CODE_NAME(CM.LOAD_BOX_CD) AS LOAD_BOX_CD_NAME
,CM.WARRANTY AS WARRANTY
,CM.WARRANTY_KM AS WARRANTY_KM
,CM.CONTRACT_PRODUCT_PRICE AS CONTRACT_PRODUCT_PRICE
,(SELECT COUNT(1) from CONTRACT_MGMT_OPTION O WHERE O.CONTRACT_OBJID = CM.OBJID) AS OPTIONCNT
,CM.PRODUCT_PRICE
,CM.OPTION_PRICE
,CM.OTHER_PRICE
,CM.TOTAL_PRICE
,CM.SALE
,CM.FINAL_TOTAL_PRICE
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CM.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,CM.CONTRACT_USER_ID
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = CM.CONTRACT_USER_ID) AS CONTRACT_USER_NAME
,CM.CONTRACT_DATE
,CM.CONTRACT_PHONE
,CM.CONTRACT_EMAIL
,CM.CONTRACT_OFFICE_NO
,CM.CONTRACT_FAX_NO
,CM.EST_RELEASE_DATE
,CM.EST_RELEASE_DATE1
,CM.EST_RELEASE_DATE2
FROM CONTRACT_MGMT CM
WHERE PRODUCT_GROUP !=''
UNION all
SELECT
CM.OBJID AS CONTRACT_OBJID
,CM.CONTRACT_NO
,CM.CUSTOMER_OBJID
,(SELECT SUPPLY_CODE FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE
,(SELECT CODE_NAME(SUPPLY_CODE) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE_NAME
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_NAME
,(SELECT AREA_CD FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD_NAME
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CHARGE_USER_NAME
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_ID
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS BUS_REG_NO
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_NO
,(SELECT SUPPLY_BUSNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_BUSNAME
,(SELECT SUPPLY_STOCKNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_STOCKNAME
,(SELECT SUPPLY_ADDRESS FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_ADDRESS
,(SELECT SUPPLY_TEL_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_TEL_NO
,(SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS EMAIL
,(SELECT OFFICE_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS OFFICE_NO
,(SELECT SUPPLY_FAX_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_FAX_NO
,CM.CATEGORY_CD AS CATEGORY_CD
,CODE_NAME(CM.CATEGORY_CD) AS CATEGORY_CD_NAME
,CM.PRODUCT_GROUP1 AS PRODUCT_GROUP
,CODE_NAME(CM.PRODUCT_GROUP1) AS PRODUCT_GROUP_NAME
,CM.PRODUCT1 AS PRODUCT
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = CM.PRODUCT1) AS PRODUCT_NAME
,CM.QTY1 AS QTY
,CM.VEHICLE_CD1 AS VEHICLE_CD
,CODE_NAME(CM.VEHICLE_CD1) AS VEHICLE_CD_NAME
,CM.LOAD_BOX_CD1 AS LOAD_BOX_CD
,CODE_NAME(CM.LOAD_BOX_CD1) AS LOAD_BOX_CD_NAME
,CM.WARRANTY1 AS WARRANTY
,CM.WARRANTY_KM1 AS WARRANTY_KM
,CM.CONTRACT_PRODUCT_PRICE1 AS CONTRACT_PRODUCT_PRICE
,(SELECT COUNT(1) from CONTRACT_MGMT_OPTION O WHERE O.CONTRACT_OBJID = CM.OBJID) AS OPTIONCNT
,CM.PRODUCT_PRICE
,CM.OPTION_PRICE
,CM.OTHER_PRICE
,CM.TOTAL_PRICE
,CM.SALE
,CM.FINAL_TOTAL_PRICE
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CM.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,CM.CONTRACT_USER_ID
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = CM.CONTRACT_USER_ID) AS CONTRACT_USER_NAME
,CM.CONTRACT_DATE
,CM.CONTRACT_PHONE
,CM.CONTRACT_EMAIL
,CM.CONTRACT_OFFICE_NO
,CM.CONTRACT_FAX_NO
,CM.EST_RELEASE_DATE
,CM.EST_RELEASE_DATE1
,CM.EST_RELEASE_DATE2
FROM CONTRACT_MGMT CM
WHERE PRODUCT_GROUP1 !=''
UNION all
SELECT
CM.OBJID AS CONTRACT_OBJID
,CM.CONTRACT_NO
,CM.CUSTOMER_OBJID
,(SELECT SUPPLY_CODE FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE
,(SELECT CODE_NAME(SUPPLY_CODE) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE_NAME
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_NAME
,(SELECT AREA_CD FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD_NAME
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CHARGE_USER_NAME
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_ID
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS BUS_REG_NO
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_NO
,(SELECT SUPPLY_BUSNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_BUSNAME
,(SELECT SUPPLY_STOCKNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_STOCKNAME
,(SELECT SUPPLY_ADDRESS FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_ADDRESS
,(SELECT SUPPLY_TEL_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_TEL_NO
,(SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS EMAIL
,(SELECT OFFICE_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS OFFICE_NO
,(SELECT SUPPLY_FAX_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_FAX_NO
,CM.CATEGORY_CD AS CATEGORY_CD
,CODE_NAME(CM.CATEGORY_CD) AS CATEGORY_CD_NAME
,CM.PRODUCT_GROUP2 AS PRODUCT_GROUP
,CODE_NAME(CM.PRODUCT_GROUP2) AS PRODUCT_GROUP_NAME
,CM.PRODUCT2 AS PRODUCT
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = CM.PRODUCT2) AS PRODUCT_NAME
,CM.QTY2 AS QTY
,CM.VEHICLE_CD2 AS VEHICLE_CD
,CODE_NAME(CM.VEHICLE_CD2) AS VEHICLE_CD_NAME
,CM.LOAD_BOX_CD2 AS LOAD_BOX_CD
,CODE_NAME(CM.LOAD_BOX_CD2) AS LOAD_BOX_CD_NAME
,CM.WARRANTY2 AS WARRANTY
,CM.WARRANTY_KM2 AS WARRANTY_KM
,CM.CONTRACT_PRODUCT_PRICE2 AS CONTRACT_PRODUCT_PRICE
,(SELECT COUNT(1) from CONTRACT_MGMT_OPTION O WHERE O.CONTRACT_OBJID = CM.OBJID) AS OPTIONCNT
,CM.PRODUCT_PRICE
,CM.OPTION_PRICE
,CM.OTHER_PRICE
,CM.TOTAL_PRICE
,CM.SALE
,CM.FINAL_TOTAL_PRICE
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CM.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,CM.CONTRACT_USER_ID
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = CM.CONTRACT_USER_ID) AS CONTRACT_USER_NAME
,CM.CONTRACT_DATE
,CM.CONTRACT_PHONE
,CM.CONTRACT_EMAIL
,CM.CONTRACT_OFFICE_NO
,CM.CONTRACT_FAX_NO
,CM.EST_RELEASE_DATE
,CM.EST_RELEASE_DATE1
,CM.EST_RELEASE_DATE2
FROM CONTRACT_MGMT CM
WHERE PRODUCT_GROUP2 !=''
)
</sql>
<select id="getPlanningListCnt" parameterType="map" resultType="map">
SELECT
CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::NUMERIC::INTEGER AS MAX_PAGE_SIZE
,TOTAL_CNT::INTEGER
FROM (
SELECT
COUNT(1)::FLOAT TOTAL_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
AND T.PRODUCT = T1.PRODUCT
WHERE 1=1
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
) AS FM
WHERE 1=1
</select>
<select id="getPlanningList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP1_USER_ID) AS STEP1_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP2_USER_ID) AS STEP2_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP3_USER_ID) AS STEP3_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP4_USER_ID) AS STEP4_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP5_USER_ID) AS STEP5_USER_NAME
,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS PART_RNUM
,COUNT(*)OVER(PARTITION BY T.CONTRACT_OBJID) AS PART_MAX_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.OBJID AND DOC_TYPE='WORK_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS WORK_ORDER_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
AND T.PRODUCT = T1.PRODUCT
WHERE 1=1
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
)AS T
WHERE 1=1
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
</if>
</select>
<select id="getWorkOrderListCnt" parameterType="map" resultType="map">
SELECT
CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::NUMERIC::INTEGER AS MAX_PAGE_SIZE
,TOTAL_CNT::INTEGER
FROM (
SELECT
COUNT(1)::FLOAT TOTAL_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
) AS FM
WHERE 1=1
</select>
<select id="getWorkOrderList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP1_USER_ID) AS STEP1_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP2_USER_ID) AS STEP2_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP3_USER_ID) AS STEP3_USER_NAME
,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS PART_RNUM
,COUNT(*)OVER(PARTITION BY T.CONTRACT_OBJID) AS PART_MAX_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.OBJID AND DOC_TYPE='WORK_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS WORK_ORDER_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
)AS T
WHERE 1=1
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
</if>
</select>
<select id="getPlanningInsertInfo" parameterType="map" resultType="map">
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T.CONTRACT_OBJID::VARCHAR = #{PARENT_OBJID}
LIMIT 1
</select>
<update id="savePlanningInsert" parameterType="map">
INSERT INTO
ORDER_PLAN_MGMT
(
OBJID
,PARENT_OBJID
,TITLE
,STEP1_START_DATE
,STEP1_USER_ID
,STEP2_START_DATE
,STEP2_USER_ID
,STEP3_START_DATE
,STEP3_USER_ID
,STEP4_START_DATE
,STEP4_USER_ID
,STEP5_START_DATE
,STEP5_USER_ID
,REGDATE
,STATUS
,PRODUCT
,PRODUCT_GROUP
,CONTENTS
)VALUES(
#{ORDER_PLAN_OBJID}::NUMERIC
,#{PARENT_OBJID}::NUMERIC
,#{TITLE}
,#{STEP1_START_DATE}
,#{STEP1_USER_ID}
,#{STEP2_START_DATE}
,#{STEP2_USER_ID}
,#{STEP3_START_DATE}
,#{STEP3_USER_ID}
,#{STEP4_START_DATE}
,#{STEP4_USER_ID}
,#{STEP5_START_DATE}
,#{STEP5_USER_ID}
,NOW()
,#{STATUS}
,#{PRODUCT}
,#{PRODUCT_GROUP}
,#{contents}
)ON CONFLICT (PARENT_OBJID) DO
UPDATE
SET
TITLE = #{TITLE}
,STEP1_START_DATE = #{STEP1_START_DATE}
,STEP1_END_DATE = #{STEP1_END_DATE}
,STEP1_USER_ID = #{STEP1_USER_ID}
,STEP2_START_DATE = #{STEP2_START_DATE}
,STEP2_END_DATE = #{STEP2_END_DATE}
,STEP2_USER_ID = #{STEP2_USER_ID}
,STEP3_START_DATE = #{STEP3_START_DATE}
,STEP3_END_DATE = #{STEP3_END_DATE}
,STEP3_USER_ID = #{STEP3_USER_ID}
,STEP4_END_DATE = #{STEP4_END_DATE}
,STEP4_USER_ID = #{STEP4_USER_ID}
,STEP5_END_DATE = #{STEP5_END_DATE}
,STEP5_USER_ID = #{STEP5_USER_ID}
,UPDATE = NOW()
,CONTENTS = #{contents}
</update>
<!-- //생산계획 확정 -->
<update id="confirmMgmtInfo" parameterType="map">
UPDATE ORDER_PLAN_MGMT SET STATUS = '0000240'
WHERE OBJID IN
<foreach collection="confirmKeyarr" item="objkey" index="index" separator="," open="(" close=")">
#{objkey}::NUMERIC
</foreach>
</update>
<!-- //작업지시서 조회-->
<select id="getWorkOrderInfo" parameterType="map" resultType="map">
SELECT
OBJID::varchar
,CONTENTS
,TEST_CONTENTS
FROM ORDER_PLAN_MGMT T
WHERE 1=1
AND T.PARENT_OBJID = #{PARENT_OBJID}::numeric
</select>
<!-- //작업지시서 샘플 조회-->
<select id="getWorkOrderInfoTemp" parameterType="map" resultType="map">
SELECT CONTENTS
FROM TEMPLATE_MNG AS T
WHERE T.TEMPLATE_CODE_DETAIL='0000245'
</select>
<!-- 작업지시서 저장-->
<update id="updateWorkOrderInfo" parameterType="map">
INSERT INTO
ORDER_PLAN_MGMT
(
OBJID
,PARENT_OBJID
,REGDATE
,STATUS
,PRODUCT
,PRODUCT_GROUP
,CONTENTS
)VALUES(
#{objId}::NUMERIC
,#{PARENT_OBJID}::NUMERIC
,NOW()
,#{STATUS}
,#{PRODUCT}
,#{PRODUCT_GROUP}
,#{contents}
)ON CONFLICT (PARENT_OBJID,PRODUCT,PRODUCT_GROUP) DO
UPDATE
SET
CONTENTS = #{contents}
,UPDATE = NOW()
</update>
<select id="productResultList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP1_USER_ID) AS STEP1_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP2_USER_ID) AS STEP2_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP3_USER_ID) AS STEP3_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP4_USER_ID) AS STEP4_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP5_USER_ID) AS STEP5_USER_NAME
,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS PART_RNUM
,COUNT(*)OVER(PARTITION BY T.CONTRACT_OBJID) AS PART_MAX_CNT
,CASE WHEN T1.STEP1_END_DATE IS NULL OR T1.STEP1_END_DATE ='' THEN '밀링'
WHEN T1.STEP2_END_DATE IS NULL OR T1.STEP2_END_DATE ='' THEN '선반'
WHEN T1.STEP3_END_DATE IS NULL OR T1.STEP3_END_DATE ='' THEN 'CNC'
WHEN T1.STEP4_END_DATE IS NULL OR T1.STEP4_END_DATE ='' THEN '재관'
WHEN T1.STEP5_END_DATE IS NULL OR T1.STEP5_END_DATE ='' THEN '레디알'
END AS PROCESS_STATUS
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.OBJID AND DOC_TYPE='WORK_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS WORK_ORDER_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
<!-- 담당자는 있는데 종료되지 않은 스텝이 있는 건 -->
AND ( ( (COALESCE(TRIM(T1.STEP1_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP1_END_DATE),'') ='') )
OR ( (COALESCE(TRIM(T1.STEP2_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP2_END_DATE),'') ='') )
OR ( (COALESCE(TRIM(T1.STEP3_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP3_END_DATE),'') ='') )
OR ( (COALESCE(TRIM(T1.STEP4_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP4_END_DATE),'') ='') )
OR ( (COALESCE(TRIM(T1.STEP5_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP5_END_DATE),'') ='') )
)
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
)AS T
</select>
<!-- 공정실적 등록 -->
<update id="saveProcessResult" parameterType="map">
UPDATE ORDER_PLAN_MGMT T
SET ${COL_NAME} = TO_CHAR(NOW(),'yyyy-mm-dd')
WHERE T.OBJID = #{ORDER_PLAN_OBJID}::NUMERIC
</update>
<!-- //공정 날짜 조회-->
<select id="getWorkOrderInfoDate" parameterType="map" resultType="map">
SELECT
OBJID
,STEP1_END_DATE
,STEP2_END_DATE
,STEP3_END_DATE
FROM ORDER_PLAN_MGMT
WHERE OBJID = #{ORDER_PLAN_OBJID}::NUMERIC
</select>
<!-- 공정불량 목록 조회 -->
<select id="productProcessErrorList" parameterType="map" resultType="map">
SELECT
ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RNUM
,T.OBJID AS ORDER_PLAN_OBJID
,T1.OBJID
,T1.PARENT_OBJID
,T1.PROCESS_TYPE
,T1.ERROR_TYPE
,T1.ERROR_STATUS
,T1.REG_DATE
,T1.USER_ID
FROM ORDER_PLAN_MGMT T,ORDER_PLAN_RESULT_ERROR T1
WHERE T.OBJID = T1.PARENT_OBJID
AND T.OBJID = #{ORDER_PLAN_OBJID}::NUMERIC
</select>
<!-- 작업지시서 저장-->
<update id="saveErrorProcessResult" parameterType="map">
INSERT INTO
ORDER_PLAN_RESULT_ERROR
(
OBJID
,PARENT_OBJID
,ERROR_TYPE
,ERROR_STATUS
,REG_DATE
,USER_ID
)VALUES(
#{OBJID}::NUMERIC
,#{parent_objid}::NUMERIC
,#{errorType}
,#{errorStatus}
,#{reg_date}
,#{errorWorkUserId}
)ON CONFLICT (OBJID) DO
UPDATE
SET
ERROR_TYPE = #{errorType}
,ERROR_STATUS = #{errorStatus}
,REG_DATE = #{reg_date}
,USER_ID = #{errorWorkUserId}
</update>
<delete id="deleteErrorProcessResult" parameterType="map">
DELETE FROM ORDER_PLAN_RESULT_ERROR WHERE OBJID = #{OBJID}::numeric
</delete>
<select id="getprocessResultListCnt" parameterType="map" resultType="map">
SELECT
CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::NUMERIC::INTEGER AS MAX_PAGE_SIZE
,TOTAL_CNT::INTEGER
FROM (
SELECT
COUNT(1)::FLOAT TOTAL_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
) AS FM
WHERE 1=1
</select>
<select id="getprocessResultList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP1_USER_ID) AS STEP1_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP2_USER_ID) AS STEP2_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP3_USER_ID) AS STEP3_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP4_USER_ID) AS STEP4_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP5_USER_ID) AS STEP5_USER_NAME
,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS PART_RNUM
,COUNT(*)OVER(PARTITION BY T.CONTRACT_OBJID) AS PART_MAX_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.OBJID AND DOC_TYPE='WORK_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS WORK_ORDER_CNT
,( (CASE WHEN (COALESCE(TRIM(T1.STEP1_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP1_END_DATE),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP2_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP2_END_DATE),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP3_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP3_END_DATE),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP4_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP4_END_DATE),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP5_USER_ID),'') !='') AND (COALESCE(TRIM(T1.STEP5_END_DATE),'') !='') THEN 1 ELSE 0 END)
) AS PER1
,( (CASE WHEN (COALESCE(TRIM(T1.STEP1_USER_ID),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP2_USER_ID),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP3_USER_ID),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP4_USER_ID),'') !='') THEN 1 ELSE 0 END)
+(CASE WHEN (COALESCE(TRIM(T1.STEP5_USER_ID),'') !='') THEN 1 ELSE 0 END)
) AS PER2
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
)AS T
WHERE 1=1
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
</if>
</select>
<select id="getprocessResultTestListCnt" parameterType="map" resultType="map">
SELECT
CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::NUMERIC::INTEGER AS MAX_PAGE_SIZE
,TOTAL_CNT::INTEGER
FROM (
SELECT
COUNT(1)::FLOAT TOTAL_CNT
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
AND T1.STEP1_END_DATE IS NOT NULL
AND T1.STEP2_END_DATE IS NOT NULL
AND T1.STEP3_END_DATE IS NOT NULL
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
) AS FM
WHERE 1=1
</select>
<select id="getprocessResultTestList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT
T.*
,T1.OBJID AS ORDER_PLAN_OBJID
,T1.*
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP1_USER_ID) AS STEP1_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP2_USER_ID) AS STEP2_USER_NAME
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.STEP3_USER_ID) AS STEP3_USER_NAME
,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS PART_RNUM
,COUNT(*)OVER(PARTITION BY T.CONTRACT_OBJID) AS PART_MAX_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.OBJID AND DOC_TYPE='WORK_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS WORK_ORDER_CNT
,CASE WHEN T1.STEP1_END_DATE IS NULL
THEN '0%'
WHEN T1.STEP1_END_DATE IS NOT NULL AND T1.STEP2_END_DATE IS NULL AND T1.STEP3_END_DATE IS NULL
THEN '33%'
WHEN T1.STEP1_END_DATE IS NOT NULL AND T1.STEP2_END_DATE IS NOT NULL AND T1.STEP3_END_DATE IS NULL
THEN '66%'
WHEN T1.STEP1_END_DATE IS NOT NULL AND T1.STEP2_END_DATE IS NOT NULL AND T1.STEP3_END_DATE IS NOT NULL
THEN '100%'
END AS PER
FROM
<include refid="contractMgmtBase"/> AS T
LEFT OUTER JOIN ORDER_PLAN_MGMT AS T1
ON T.CONTRACT_OBJID = T1.PARENT_OBJID
WHERE 1=1
AND T1.STATUS='0000240'
AND T1.STEP1_END_DATE IS NOT NULL
AND T1.STEP2_END_DATE IS NOT NULL
AND T1.STEP3_END_DATE IS NOT NULL
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
AND
(
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
)
</if>
<if test="PRODUCT !=null and PRODUCT != '' ">
AND
(
(T.PRODUCT = #{PRODUCT}) OR
(T.PRODUCT1 = #{PRODUCT}) OR
(T.PRODUCT2 = #{PRODUCT})
)
</if>
<if test="Year !=null and Year != '' ">
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
</if>
<if test="type_cd !=null and type_cd != '' ">
AND T.SUPPLY_CODE = #{type_cd}
</if>
<if test="customer_cd != null and customer_cd !='' ">
AND T.CUSTOMER_OBJID::VARCHAR = #{customer_cd}
</if>
<if test="area_cd !=null and area_cd !=''">
AND T.AREA_CD = #{area_cd}
</if>
<if test="product_cd !=null and product_cd !=''">
AND T.CATEGORY_CD = #{product_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
)AS T
WHERE 1=1
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
</if>
</select>
<!-- //작업지시서 샘플 조회-->
<select id="getTestResultInfoTemp" parameterType="map" resultType="map">
SELECT CONTENTS AS TEST_CONTENTS
FROM TEMPLATE_MNG AS T
WHERE T.TEMPLATE_CODE_DETAIL='0000250'
</select>
<!-- 작업지시서 저장-->
<update id="updateTestResultInfo" parameterType="map">
UPDATE ORDER_PLAN_MGMT
SET TEST_CONTENTS = #{test_contents}
WHERE OBJID = #{objId}::NUMERIC
</update>
</mapper>