Files
wace_plm/WebContent/WEB-INF/classes/com/pms/mapper/devInfoMng.xml
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

1214 lines
44 KiB
XML

<?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="devInfoMng">
<select id="getDevMasterListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(*) AS TOTAL_CNT
FROM
(
SELECT PART_MST.*
,DEV_MST.ASSAY_PART_NO
FROM PMS_DEV_MASTER DEV_MST,
(
SELECT
PART_MST.OBJID
,PART_MST.OEM_OBJID
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) AS OEM_NAME
,PART_MST.CAR_OBJID
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) AS CAR_NAME
,PART_MST.PROD_GROUP_OBJID
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
,PART_MST.PROD_OBJID
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) AS PRODUCT_NAME
FROM PMS_PART_MASTER PART_MST
)PART_MST
WHERE 1=1
AND PART_MST.OBJID(+)=DEV_MST.TARGET_OBJID
<if test="search_oem != null and search_oem !='' ">
AND PART_MST.OEM_OBJID = #{search_oem}
</if>
<if test="search_carType != null and search_carType != ''">
AND PART_MST.CAR_OBJID = #{search_carType}
</if>
<if test="search_productGroup != null and search_productGroup !=''">
AND PART_MST.PROD_GROUP_OBJID = #{search_productGroup}
</if>
<if test="search_productType !=null and search_productType !='' ">
AND PART_MST.PROD_OBJID = #{search_productType}
</if>
) A WHERE 1=1
<if test="search_partNo !=null and search_partNo !='' ">
AND UPPER(ASSAY_PART_NO) LIKE UPPER('%${search_partNo}%')
</if>
)
</select>
<select id="getDevMasterList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT A.*,ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RNUM
FROM (
SELECT A.*
FROM (
SELECT
DEV_MST.OBJID
,DEV_MST.TARGET_OBJID
,DEV_MST.ASSAY_PART_NO
,PART_MST.OEM_NAME
,PART_MST.CAR_NAME
,PART_MST.CAR_CODE
,PART_MST.PRODUCT_GROUP_NAME
,PART_MST.PRODUCT_NAME
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = DEV_MST.WRITER) AS DEPT_NAME
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = DEV_MST.WRITER) AS USER_NAME
,DEV_MST.REGDATE
,TO_CHAR(DEV_MST.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
,(SELECT COUNT(WBS_TASK.OBJID) AS TASK_CNT FROM PMS_WBS_TASK WBS_TASK,PMS_REL_WBS_TASK_FNC_TASK REL WHERE REL.TARGET_OBJID = WBS_TASK.OBJID AND REL.SUB_OBJID = DEV_MST.OBJID) AS REL_TASK_CNT
, (SELECT COUNT(*) FROM PMS_DEV_MASTER_REL_PART_INFO WHERE TARGET_OBJID = DEV_MST.OBJID) AS PART_LIST_CNT
FROM PMS_DEV_MASTER DEV_MST,
(
SELECT
PART_MST.OBJID
,PART_MST.OEM_OBJID
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) AS OEM_NAME
,PART_MST.CAR_OBJID
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) AS CAR_NAME
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) AS CAR_CODE
,PART_MST.PROD_GROUP_OBJID
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
,PART_MST.PROD_OBJID
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) AS PRODUCT_NAME
FROM PMS_PART_MASTER PART_MST
) PART_MST
WHERE 1=1
AND PART_MST.OBJID(+)=DEV_MST.TARGET_OBJID
<if test="search_oem != null and search_oem !='' ">
AND PART_MST.OEM_OBJID = #{search_oem}
</if>
<if test="search_carType != null and search_carType != ''">
AND PART_MST.CAR_OBJID = #{search_carType}
</if>
<if test="search_productGroup != null and search_productGroup !=''">
AND PART_MST.PROD_GROUP_OBJID = #{search_productGroup}
</if>
<if test="search_productType !=null and search_productType !='' ">
AND PART_MST.PROD_OBJID = #{search_productType}
</if>
) A WHERE 1=1
<if test="search_partNo !=null and search_partNo !='' ">
AND UPPER(ASSAY_PART_NO) LIKE UPPER('%${search_partNo}%')
</if>
) A WHERE 1=1
) WHERE 1=1
<if test="PAGE_END != null and PAGE_END !=''">
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!=''">
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
</if>
</select>
<!-- 개발 마스터(Part 정보 포함 X) 정보를 가져온다. -->
<select id="getDevMasterInfo" parameterType="map" resultType="map">
SELECT
DEV_MST.OBJID
,DEV_MST.TARGET_OBJID
,DEV_MST.ASSAY_PART_NO
,DEV_MST.OEM_OBJID
,DEV_MST.CAR_OBJID
,DEV_MST.PROD_GROUP_OBJID
,DEV_MST.PROD_OBJID
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = DEV_MST.OEM_OBJID) AS OEM_NAME
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = DEV_MST.CAR_OBJID) AS CAR_NAME
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = DEV_MST.CAR_OBJID) AS CAR_CODE
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = DEV_MST.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = DEV_MST.PROD_OBJID) AS PRODUCT_NAME
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = DEV_MST.WRITER) AS DEPT_NAME
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = DEV_MST.WRITER) AS USER_NAME
,DEV_MST.REGDATE
,TO_CHAR(DEV_MST.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
,PART_MST.OEM_NAME||'-'||PART_MST.CAR_NAME||'-'||PART_MST.PRODUCT_GROUP_NAME||'-'||PART_MST.PRODUCT_NAME AS PART_MASTER_TITLE
FROM PMS_DEV_MASTER DEV_MST,
(
SELECT
PART_MST.OBJID
,PART_MST.OEM_OBJID
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) AS OEM_NAME
,PART_MST.CAR_OBJID
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) AS CAR_NAME
,PART_MST.PROD_GROUP_OBJID
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
,PART_MST.PROD_OBJID
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) AS PRODUCT_NAME
,PART_MST.TITLE
,PART_MST.WRITER
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) AS DEPT_NAME
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) AS USER_NAME
,PART_MST.REGDATE
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
FROM PMS_PART_MASTER PART_MST
WHERE 1=1
) PART_MST
WHERE 1=1
AND PART_MST.OBJID(+)=DEV_MST.TARGET_OBJID
AND DEV_MST.OBJID = #{objId}
</select>
<!-- 등록된 Part Master의 목록을 가져온다. -->
<select id="getPartMasterList" parameterType="map" resultType="map">
SELECT
PART_MST.OBJID
,PART_MST.OEM_OBJID
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) AS OEM_NAME
,PART_MST.CAR_OBJID
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) AS CAR_NAME
,PART_MST.PROD_GROUP_OBJID
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
,PART_MST.PROD_OBJID
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) AS PRODUCT_NAME
,PART_MST.TITLE
,PART_MST.WRITER
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) AS DEPT_NAME
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) AS USER_NAME
,PART_MST.REGDATE
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
FROM PMS_PART_MASTER PART_MST
WHERE 1=1
<if test="oemObjId != null and oemObjId !='' ">
AND PART_MST.OEM_OBJID = #{oemObjId}
</if>
<if test="carTypeObjId != null and carTypeObjId != ''">
AND PART_MST.CAR_OBJID = #{carTypeObjId}
</if>
<if test="productGroupObjId != null and productGroupObjId !=''">
AND PART_MST.PROD_GROUP_OBJID = #{productGroupObjId}
</if>
<if test="productObjId !=null and productObjId !='' ">
AND PART_MST.PROD_OBJID = #{productObjId}
</if>
</select>
<!-- 개발 마스터를 저장한다. -->
<update id="saveDevMasterInfo" parameterType="map">
MERGE INTO PMS_DEV_MASTER P USING DUAL ON (P.OBJID = #{objId})
WHEN MATCHED THEN
UPDATE
SET
P.TARGET_OBJID = #{partMasterObjId},
P.ASSAY_PART_NO = #{assayPartNo},
P.OEM_OBJID =#{oemObjId},
P.CAR_OBJID =#{carTypeObjId},
P.PROD_GROUP_OBJID =#{productGroupObjId},
P.PROD_OBJID =#{productObjId}
WHEN NOT MATCHED THEN
INSERT (
P.OBJID,
P.TARGET_OBJID,
P.ASSAY_PART_NO,
P.OEM_OBJID,
P.CAR_OBJID,
P.PROD_GROUP_OBJID,
P.PROD_OBJID,
P.WRITER,
P.REGDATE
)VALUES(
#{objId},
#{partMasterObjId},
#{assayPartNo},
#{oemObjId},
#{carTypeObjId},
#{productGroupObjId},
#{productObjId},
#{writer},
SYSDATE
)
</update>
<!-- 해당 내용에 대한 중복여부를 확인한다. -->
<select id="checkDevMasterDuplicate" parameterType="map" resultType="map">
SELECT
COUNT(1) CNT
FROM PMS_DEV_MASTER
WHERE OBJID != #{objId}
AND OEM_OBJID = #{oemObjId}
AND CAR_OBJID = #{carTypeObjId}
AND PROD_GROUP_OBJID = #{productGroupObjId}
AND PROD_OBJID = #{productObjId}
</select>
<!-- 개발 마스터에 연결된 Part들의 개발마스터 내용을 가져온다. -->
<select id="getDevMasterConnectPartInfoList" parameterType="map" resultType="map">
SELECT
DEV_MST.*,
ROWNUM RNUM
FROM(
SELECT
DEV_PART.OBJID,
DEV_PART.TARGET_OBJID,
DEV_PART.PART_NO,
(SELECT PART_NAME FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_NAME,
(SELECT OBJID FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_OBJID,
(SELECT DRAWING_NO_OBJID FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS DRAWING_NO_OBJID,
DEV_PART.DEV_POINT,
DEV_PART.EO_OBJID,
(SELECT EO_NO FROM EO_INFO WHERE OBJID = DEV_PART.EO_OBJID) AS EO_NO,
UPPER(DEV_PART.RATE) AS RATE,
DEV_PART.COMMON_TYPE,
CASE UPPER(DEV_PART.COMMON_TYPE)
WHEN 'UQ' THEN 'U/Q'
WHEN 'CO' THEN 'C/O'
ELSE ''
END AS COMMON_TYPE_TITLE,
DEV_PART.PROD_CNT,
TO_CHAR(DEV_PART.PROD_CNT,'999,999,999') AS PROD_CNT_TITLE,
DEV_PART.NET_WEIGHT,
TO_CHAR(DEV_PART.NET_WEIGHT,'999,999,999') AS NET_WEIGHT_TITLE,
DEV_PART.WIDTH_PITCH,
CASE UPPER(DEV_PART.WIDTH_PITCH)
WHEN 'WIDTH' THEN '폭'
WHEN 'PITCH' THEN '피치'
WHEN 'WIDTHANDPITCH' THEN '폭<![CDATA[&]]>피치'
ELSE ''
END AS WIDTH_PITCH_TITLE,
DEV_PART.SOURCING_MAKE,
DECODE(UPPER(DEV_PART.SOURCING_MAKE),'D','국내','F','中國') AS SOURCING_MAKE_TITLE,
DEV_PART.SOURCING_PRODUCE,
DECODE(UPPER(DEV_PART.SOURCING_PRODUCE),'D','국내','F','中國') AS SOURCING_PRODUCE_TITLE,
DEV_PART.PROD_SIZE_HORIZON,
DEV_PART.PROD_SIZE_VERTICAL,
DEV_PART.PROD_SIZE_HEIGHT,
DEV_PART.BLANK_EXPAND_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_WIDTH,'999,999,999') AS BLANK_EXPAND_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_EXPAND_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_PITCH,'999,999,999') AS BLANK_EXPAND_SIZE_PITCH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_WIDTH,'999,999,999') AS BLANK_MARGIN_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_PITCH,'999,999,999') AS BLANK_MARGIN_SIZE_PITCH_TITLE,
DEV_PART.BLANK_SIZE_REAL_WIDTH,
DEV_PART.BLANK_SIZE_VIEW_WIDTH,
DEV_PART.BLANK_SIZE_REAL_PITCH,
DEV_PART.BLANK_SIZE_VIEW_PITCH,
DEV_PART.BLANK_ARRAY_TYPE,
CASE UPPER(DEV_PART.BLANK_ARRAY_TYPE)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
WHEN 'TURNOVER' THEN '돌려따기'
WHEN 'DOUBLEANDTURNOVER' THEN '더블<![CDATA[&]]>돌려따기'
ELSE ''
END AS BLANK_ARRAY_TYPE_TITLE,
DEV_PART.BLANK_BLK_CVT,
DEV_PART.INPUT_WEIGHT_REAL_VALUE,
DEV_PART.INPUT_WEIGHT_VIEW_VALUE,
DEV_PART.YIELD,
DEV_PART.TARGET_YIELD,
DEV_PART.PLASTIC_THEORY_TON,
DEV_PART.PRODUCT_TON,
DEV_PART.MOLD_PLASTIC_TYPE,
DEV_PART.MOLD_PRODUCT_TYPE,
DEV_PART.MOLD_SUB_MOLD_TYPE1,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE1)
WHEN 'MOLD' THEN '주물'
WHEN 'STEEL' THEN '스틸'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE1_TITLE,
DEV_PART.MOLD_SUB_MOLD_TYPE2,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE2)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE2_TITLE,
CASE WHEN OPERATION_OP05 IS NULL THEN 0
WHEN OPERATION_OP05 = 'BL' THEN 1
WHEN OPERATION_OP05 = 'BL_COMMON' THEN 0
WHEN OPERATION_OP05 = 'PI_BL' THEN 1
ELSE 0 END
+ CASE WHEN OPERATION_OP10 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP20 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP30 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP40 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP50 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP60 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP70 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP80 IS NULL THEN 0 ELSE 1 END
AS TOTAL_OP_CNT,
DEV_PART.OPERATION_OP05,
CASE UPPER(DEV_PART.OPERATION_OP05)
WHEN 'BL' THEN 'BL'
WHEN 'BL_COMMON' THEN 'BL(공용)'
WHEN 'PI_BL' THEN 'PI/BL'
ELSE ''
END AS OPERATION_OP05_TITLE,
DEV_PART.OPERATION_OP10,
DEV_PART.OPERATION_OP20,
DEV_PART.OPERATION_OP30,
DEV_PART.OPERATION_OP40,
DEV_PART.OPERATION_OP50,
DEV_PART.OPERATION_OP60,
DEV_PART.OPERATION_OP70,
DEV_PART.OPERATION_OP80,
DEV_PART.MOLD_MAKE_COMPANY,
DEV_PART.PRODUCING_COMPANY,
DEV_PART.REMARKS,
DEV_PART.WRITER,
PART_EO_INFO.MATERIAL_NAME,
PART_EO_INFO.THICKNESS,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS USER_NAME,
DEV_PART.REGDATE,
TO_CHAR(DEV_PART.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
(SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_PART.TARGET_OBJID) AS PART_MASTER_OBJID,
(SELECT SEQ FROM PMS_PART_MASTER_CONNECT_PART WHERE PART_NO = DEV_PART.PART_NO AND TARGET_OBJID = (SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_PART.TARGET_OBJID)) AS PART_SEQ,
CASE UPPER(DEV_PART.DEV_POINT)
WHEN '1METHODACCEPT' THEN '공법승인'
WHEN '2REALISTICPRODUCE' THEN '제작'
WHEN '3HMCNEGO' THEN 'HMC Nego'
ELSE ''
END AS DEV_POINT_TITLE,
EO_HISTORY.EO_NO AS CURRENT_APPLY_EO_NO,
EO_HISTORY.EXPECT_REQUEST_SIZE_THICKNESS,
EO_HISTORY.EXPECT_REQUEST_SIZE_HORIZONTAL,
EO_HISTORY.EXPECT_REQUEST_SIZE_VERTICAL,
EO_HISTORY.REAL_WORK_SIZE_THICKNESS,
EO_HISTORY.REAL_WORK_SIZE_HORIZONTAL,
EO_HISTORY.REAL_WORK_SIZE_VERTICAL,
EO_HISTORY.NET_WEIGHT AS CURRENT_APPLY_NET_WEIGHT,
EO_HISTORY.CHARGE_DEPT_CONFIRM_TITLE
FROM PMS_DEV_MASTER_REL_PART_INFO DEV_PART,
(
SELECT
PART.OBJID,
PART.PART_NO,
PART.PART_NAME,
PART.EO_OBJID,
PART.EO_ISSUE_DATE,
PART.REV,
PART.MATERIAL_OBJID,
(SELECT MATERIAL_NAME FROM MATERIAL_MNG WHERE OBJID = PART.MATERIAL_OBJID) AS MATERIAL_NAME,
PART.THICKNESS,
PART.IS_START_DEV_PART,
PART.REMARKS,
EO.EO_NO
FROM EO_INFO EO,
REL_EO_PART REL,
PART_INFO PART
WHERE REL.MASTER_OBJID = EO.OBJID
AND REL.SUB_OBJID = PART.OBJID
) PART_EO_INFO,
(
SELECT * FROM(
SELECT
ROW_NUMBER() OVER(PARTITION BY TARGET_OBJID ORDER BY REGDATE DESC) RNUM,
OBJID,
TARGET_OBJID,
EO_NO,
EXPECT_REQUEST_SIZE_THICKNESS,
EXPECT_REQUEST_SIZE_HORIZONTAL,
EXPECT_REQUEST_SIZE_VERTICAL,
REAL_WORK_SIZE_THICKNESS,
REAL_WORK_SIZE_HORIZONTAL,
REAL_WORK_SIZE_VERTICAL,
NET_WEIGHT,
UPPER(CHARGE_DEPT_CONFIRM) AS CHARGE_DEPT_CONFIRM,
CASE UPPER(CHARGE_DEPT_CONFIRM)
WHEN 'UNKNOWN' THEN '미확인'
WHEN 'CONFIRM' THEN '확인완료'
ELSE '미확인'
END AS CHARGE_DEPT_CONFIRM_TITLE,
REGDATE
FROM PMS_DEV_MASTER_EO_HISTORY
)WHERE 1=1 AND RNUM = 1
)EO_HISTORY WHERE 1=1
AND DEV_PART.TARGET_OBJID = #{objId}
AND PART_EO_INFO.PART_NO (+)= DEV_PART.PART_NO
AND PART_EO_INFO.EO_OBJID (+)= DEV_PART.EO_OBJID
AND EO_HISTORY.TARGET_OBJID(+)=DEV_PART.OBJID
) DEV_MST WHERE 1=1 ORDER BY DEV_MST.PART_SEQ,DEV_MST.PART_NO,DEV_MST.DEV_POINT
</select>
<!-- 개발 마스터에 EO 변경이력을 가져온다. -->
<select id="getDevMasterPartEOHistoryList" parameterType="map" resultType="map">
SELECT
DEV_MST.*,
ROWNUM RNUM
FROM(
SELECT
DEV_PART.OBJID,
DEV_PART.TARGET_OBJID,
DEV_PART.PART_NO,
(SELECT PART_NAME FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_NAME,
(SELECT OBJID FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_OBJID,
(SELECT DRAWING_NO_OBJID FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS DRAWING_NO_OBJID,
DEV_PART.DEV_POINT,
DEV_PART.EO_OBJID,
(SELECT EO_NO FROM EO_INFO WHERE OBJID = DEV_PART.EO_OBJID) AS EO_NO,
UPPER(DEV_PART.RATE) AS RATE,
DEV_PART.COMMON_TYPE,
CASE UPPER(DEV_PART.COMMON_TYPE)
WHEN 'UQ' THEN 'U/Q'
WHEN 'CO' THEN 'C/O'
ELSE ''
END AS COMMON_TYPE_TITLE,
DEV_PART.PROD_CNT,
TO_CHAR(DEV_PART.PROD_CNT,'999,999,999') AS PROD_CNT_TITLE,
DEV_PART.NET_WEIGHT,
TO_CHAR(DEV_PART.NET_WEIGHT,'999,999,999') AS NET_WEIGHT_TITLE,
DEV_PART.WIDTH_PITCH,
CASE UPPER(DEV_PART.WIDTH_PITCH)
WHEN 'WIDTH' THEN '폭'
WHEN 'PITCH' THEN '피치'
WHEN 'WIDTHANDPITCH' THEN '폭<![CDATA[&]]>피치'
ELSE ''
END AS WIDTH_PITCH_TITLE,
DEV_PART.SOURCING_MAKE,
DECODE(UPPER(DEV_PART.SOURCING_MAKE),'D','국내','F','中國') AS SOURCING_MAKE_TITLE,
DEV_PART.SOURCING_PRODUCE,
DECODE(UPPER(DEV_PART.SOURCING_PRODUCE),'D','국내','F','中國') AS SOURCING_PRODUCE_TITLE,
DEV_PART.PROD_SIZE_HORIZON,
DEV_PART.PROD_SIZE_VERTICAL,
DEV_PART.PROD_SIZE_HEIGHT,
DEV_PART.BLANK_EXPAND_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_WIDTH,'999,999,999') AS BLANK_EXPAND_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_EXPAND_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_PITCH,'999,999,999') AS BLANK_EXPAND_SIZE_PITCH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_WIDTH,'999,999,999') AS BLANK_MARGIN_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_PITCH,'999,999,999') AS BLANK_MARGIN_SIZE_PITCH_TITLE,
DEV_PART.BLANK_SIZE_REAL_WIDTH,
DEV_PART.BLANK_SIZE_VIEW_WIDTH,
DEV_PART.BLANK_SIZE_REAL_PITCH,
DEV_PART.BLANK_SIZE_VIEW_PITCH,
DEV_PART.BLANK_ARRAY_TYPE,
CASE UPPER(DEV_PART.BLANK_ARRAY_TYPE)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
WHEN 'TURNOVER' THEN '돌려따기'
WHEN 'DOUBLEANDTURNOVER' THEN '더블<![CDATA[&]]>돌려따기'
ELSE ''
END AS BLANK_ARRAY_TYPE_TITLE,
DEV_PART.BLANK_BLK_CVT,
DEV_PART.INPUT_WEIGHT_REAL_VALUE,
DEV_PART.INPUT_WEIGHT_VIEW_VALUE,
DEV_PART.YIELD,
DEV_PART.TARGET_YIELD,
DEV_PART.PLASTIC_THEORY_TON,
DEV_PART.PRODUCT_TON,
DEV_PART.MOLD_PLASTIC_TYPE,
DEV_PART.MOLD_PRODUCT_TYPE,
DEV_PART.MOLD_SUB_MOLD_TYPE1,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE1)
WHEN 'MOLD' THEN '주물'
WHEN 'STEEL' THEN '스틸'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE1_TITLE,
DEV_PART.MOLD_SUB_MOLD_TYPE2,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE2)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE2_TITLE,
CASE WHEN OPERATION_OP05 IS NULL THEN 0
WHEN OPERATION_OP05 = 'BL' THEN 1
WHEN OPERATION_OP05 = 'BL_COMMON' THEN 0
WHEN OPERATION_OP05 = 'PI_BL' THEN 1
ELSE 0 END
+ CASE WHEN OPERATION_OP10 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP20 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP30 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP40 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP50 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP60 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP70 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP80 IS NULL THEN 0 ELSE 1 END
AS TOTAL_OP_CNT,
DEV_PART.OPERATION_OP05,
CASE UPPER(DEV_PART.OPERATION_OP05)
WHEN 'BL' THEN 'BL'
WHEN 'BL_COMMON' THEN 'BL(공용)'
WHEN 'PI_BL' THEN 'PI/BL'
ELSE ''
END AS OPERATION_OP05_TITLE,
DEV_PART.OPERATION_OP10,
DEV_PART.OPERATION_OP20,
DEV_PART.OPERATION_OP30,
DEV_PART.OPERATION_OP40,
DEV_PART.OPERATION_OP50,
DEV_PART.OPERATION_OP60,
DEV_PART.OPERATION_OP70,
DEV_PART.OPERATION_OP80,
DEV_PART.MOLD_MAKE_COMPANY,
DEV_PART.PRODUCING_COMPANY,
DEV_PART.REMARKS,
DEV_PART.WRITER,
PART_EO_INFO.MATERIAL_NAME,
PART_EO_INFO.THICKNESS,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS USER_NAME,
DEV_PART.REGDATE,
TO_CHAR(DEV_PART.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
(SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_PART.TARGET_OBJID) AS PART_MASTER_OBJID,
(SELECT SEQ FROM PMS_PART_MASTER_CONNECT_PART WHERE PART_NO = DEV_PART.PART_NO AND TARGET_OBJID = (SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_PART.TARGET_OBJID)) AS PART_SEQ,
CASE UPPER(DEV_PART.DEV_POINT)
WHEN '1METHODACCEPT' THEN '공법승인'
WHEN '2REALISTICPRODUCE' THEN '제작'
WHEN '3HMCNEGO' THEN 'HMC Nego'
ELSE ''
END AS DEV_POINT_TITLE
FROM PMS_DEV_MASTER_HISTORY DEV_PART,
(
SELECT
PART.OBJID,
PART.PART_NO,
PART.PART_NAME,
PART.EO_OBJID,
PART.EO_ISSUE_DATE,
PART.REV,
PART.MATERIAL_OBJID,
(SELECT MATERIAL_NAME FROM MATERIAL_MNG WHERE OBJID = PART.MATERIAL_OBJID) AS MATERIAL_NAME,
PART.THICKNESS,
PART.IS_START_DEV_PART,
PART.REMARKS,
EO.EO_NO
FROM EO_INFO EO,
REL_EO_PART REL,
PART_INFO PART
WHERE REL.MASTER_OBJID = EO.OBJID
AND REL.SUB_OBJID = PART.OBJID
) PART_EO_INFO
where DEV_PART.TARGET_OBJID = #{targetObjId}
AND PART_EO_INFO.PART_NO (+)= DEV_PART.PART_NO
AND PART_EO_INFO.EO_OBJID (+)= DEV_PART.EO_OBJID
) DEV_MST WHERE 1=1 ORDER BY DEV_MST.PART_SEQ,DEV_MST.PART_NO,DEV_MST.DEV_POINT
</select>
<!-- 개발 마스터에 연결된 Part의 연결된 EO List를 가져온다. -->
<select id="getConnectPartEOList" parameterType="map" resultType="map">
SELECT * FROM(
SELECT
EO.OBJID,
EO.EO_NO
FROM
EO_INFO EO,
REL_EO_PART REL,
PART_INFO PART
WHERE UPPER(PART.STATUS) != 'CREATE'
AND PART.PART_NO = #{partNo}
AND REL.MASTER_OBJID = EO.OBJID
AND REL.SUB_OBJID = PART.OBJID
)EO WHERE 1=1 GROUP BY EO.EO_NO,EO.OBJID
</select>
<!-- Part Master에 연결된 Part의 목록을 가져온다. -->
<select id="getPartMasterConnectedPartList" parameterType="map" resultType="map">
SELECT
OBJID,
TARGET_OBJID,
PART_NO,
(SELECT PART_NAME FROM PART_INFO WHERE IS_LAST=1 AND PART_NO = PART.PART_NO) AS CONNECT_PART_NAME,
SEQ,
IS_DEL,
WRITER,
REGDATE
FROM PMS_PART_MASTER_CONNECT_PART PART
WHERE PART.TARGET_OBJID = ${partMasterObjId}
</select>
<!-- 개발 마스터와 연결되지 않은 Part Master Part List를 가져온다. -->
<select id="getDevMasterNotConnectPartList" parameterType="map" resultType="map">
SELECT
PART_MASTER_PART.*
FROM PMS_PART_MASTER_CONNECT_PART PART_MASTER_PART
WHERE 1=1
AND PART_MASTER_PART.TARGET_OBJID = ${partMasterObjId}
AND NOT EXISTS(
SELECT DEV_PART.* FROM(
SELECT
PART_NO,
PART_MASTER_OBJID
FROM (
SELECT
(SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_REL_PART.TARGET_OBJID) AS PART_MASTER_OBJID,
DEV_REL_PART.PART_NO
FROM PMS_DEV_MASTER_REL_PART_INFO DEV_REL_PART
WHERE 1=1
AND DEV_REL_PART.TARGET_OBJID = #{objId}
)WHERE 1=1
GROUP BY PART_NO,PART_MASTER_OBJID
)DEV_PART WHERE 1=1
AND DEV_PART.PART_MASTER_OBJID = ${partMasterObjId}
AND PART_MASTER_PART.PART_NO = DEV_PART.PART_NO
)
</select>
<!-- 개발 마스터와 연결되지 않은 Part Master Part를 저장한다. -->
<insert id="saveDevMasterNotConnectPartInfo" parameterType="map">
INSERT INTO PMS_DEV_MASTER_REL_PART_INFO
(
OBJID,
TARGET_OBJID,
PART_NO,
DEV_POINT,
WRITER,
REGDATE
)VALUES(
#{objId},
#{targetObjId},
#{partNo},
#{devPoint},
#{writer},
SYSDATE
)
</insert>
<!-- 개발마스터 저장 전 해당 개발마스터 데이터의 정보를 가져온다. -->
<select id="checkDevMasterEOInfo" parameterType="map" resultType="map">
SELECT
OBJID,
TARGET_OBJID,
EO_OBJID
FROM PMS_DEV_MASTER_REL_PART_INFO
WHERE OBJID = #{objId}
and target_objid = #{targetObjId}
and eo_objid = #{eoObjId}
</select>
<!-- 개발 마스터 EO 변경정보를 저장한다. -->
<update id="saveDevMasterChangeEOInfo" parameterType="map">
INSERT INTO
PMS_DEV_MASTER_HISTORY (
OBJID,
TARGET_OBJID,
PART_NO,
DEV_POINT,
EO_OBJID,
RATE,
COMMON_TYPE,
PROD_CNT,
NET_WEIGHT,
WIDTH_PITCH,
SOURCING_MAKE,
SOURCING_PRODUCE,
PROD_SIZE_HORIZON,
PROD_SIZE_VERTICAL,
PROD_SIZE_HEIGHT,
BLANK_EXPAND_SIZE_WIDTH,
BLANK_EXPAND_SIZE_PITCH,
BLANK_MARGIN_SIZE_WIDTH,
BLANK_MARGIN_SIZE_PITCH,
BLANK_SIZE_REAL_WIDTH,
BLANK_SIZE_VIEW_WIDTH,
BLANK_SIZE_REAL_PITCH,
BLANK_SIZE_VIEW_PITCH,
BLANK_ARRAY_TYPE,
BLANK_BLK_CVT,
INPUT_WEIGHT_REAL_VALUE,
INPUT_WEIGHT_VIEW_VALUE,
YIELD,
TARGET_YIELD,
PLASTIC_THEORY_TON,
PRODUCT_TON,
MOLD_PLASTIC_TYPE,
MOLD_PRODUCT_TYPE,
MOLD_SUB_MOLD_TYPE1,
MOLD_SUB_MOLD_TYPE2,
OPERATION_OP05,
OPERATION_OP10,
OPERATION_OP20,
OPERATION_OP30,
OPERATION_OP40,
OPERATION_OP50,
OPERATION_OP60,
OPERATION_OP70,
OPERATION_OP80,
MOLD_MAKE_COMPANY,
PRODUCING_COMPANY,
REMARKS,
WRITER,
REGDATE
)
VALUES
(
#{objId},
#{targetObjId},
#{partNo},
#{devPoint},
#{eoObjId},
#{rate},
#{commonType},
#{prodCount},
#{netWeight},
#{widthPitch},
#{sourcingMake},
#{sourcingProd},
#{prodSizeHorizon},
#{prodSizeVertical},
#{prodSizeHeight},
#{blkExpandSizeWidth},
#{blkExpandSizePitch},
#{blkMarginSizeWidth},
#{blkMarginSizePitch},
#{blkSizeRealWidth},
#{blkSizeViewWidth},
#{blkSizeRealPitch},
#{blkSizeViewPitch},
#{blkArrayType},
#{blkCVT},
#{inputWeightRealValue},
#{inputWeightViewValue},
#{yield},
#{targetYield},
#{plasticTheoryTon},
#{prodTon},
#{moldPlasticType},
#{moldProdType},
#{moldSubType1},
#{moldSubType2},
#{op05},
#{op10},
#{op20},
#{op30},
#{op40},
#{op50},
#{op60},
#{op70},
#{op80},
#{moldMakeCompany},
#{prodCompany},
#{remarks},
#{writer},
SYSDATE
)
</update>
<!-- 개발 마스터에 연결된 정보를 저장한다. -->
<update id="saveDevMasterConnectPartInfo" parameterType="map">
UPDATE PMS_DEV_MASTER_REL_PART_INFO P
SET
P.EO_OBJID =#{eoObjId}
,P.RATE =#{rate}
,P.COMMON_TYPE =#{commonType}
,P.PROD_CNT =#{prodCount}
,P.NET_WEIGHT =#{netWeight}
,P.WIDTH_PITCH =#{widthPitch}
,P.SOURCING_MAKE =#{sourcingMake}
,P.SOURCING_PRODUCE =#{sourcingProd}
,P.PROD_SIZE_HORIZON =#{prodSizeHorizon}
,P.PROD_SIZE_VERTICAL =#{prodSizeVertical}
,P.PROD_SIZE_HEIGHT =#{prodSizeHeight}
,P.BLANK_EXPAND_SIZE_WIDTH =#{blkExpandSizeWidth}
,P.BLANK_EXPAND_SIZE_PITCH =#{blkExpandSizePitch}
,P.BLANK_MARGIN_SIZE_WIDTH =#{blkMarginSizeWidth}
,P.BLANK_MARGIN_SIZE_PITCH =#{blkMarginSizePitch}
,P.BLANK_SIZE_REAL_WIDTH =#{blkSizeRealWidth}
,P.BLANK_SIZE_VIEW_WIDTH =#{blkSizeViewWidth}
,P.BLANK_SIZE_REAL_PITCH =#{blkSizeRealPitch}
,P.BLANK_SIZE_VIEW_PITCH =#{blkSizeViewPitch}
,P.BLANK_ARRAY_TYPE =#{blkArrayType}
,P.BLANK_BLK_CVT =#{blkCVT}
,P.INPUT_WEIGHT_REAL_VALUE =#{inputWeightRealValue}
,P.INPUT_WEIGHT_VIEW_VALUE =#{inputWeightViewValue}
,P.YIELD =#{yield}
,P.TARGET_YIELD =#{targetYield}
,P.PLASTIC_THEORY_TON =#{plasticTheoryTon}
,P.PRODUCT_TON =#{prodTon}
,P.MOLD_PLASTIC_TYPE =#{moldPlasticType}
,P.MOLD_PRODUCT_TYPE =#{moldProdType}
,P.MOLD_SUB_MOLD_TYPE1 =#{moldSubType1}
,P.MOLD_SUB_MOLD_TYPE2 =#{moldSubType2}
,P.OPERATION_OP05 =#{op05}
,P.OPERATION_OP10 =#{op10}
,P.OPERATION_OP20 =#{op20}
,P.OPERATION_OP30 =#{op30}
,P.OPERATION_OP40 =#{op40}
,P.OPERATION_OP50 =#{op50}
,P.OPERATION_OP60 =#{op60}
,P.OPERATION_OP70 =#{op70}
,P.OPERATION_OP80 =#{op80}
,P.MOLD_MAKE_COMPANY =#{moldMakeCompany}
,P.PRODUCING_COMPANY =#{prodCompany}
,P.REMARKS =#{remarks}
WHERE P.OBJID = #{objId} AND P.TARGET_OBJID = #{targetObjId} AND P.PART_NO = #{partNo} AND P.DEV_POINT = #{devPoint}
</update>
<!-- 개발 Master에 해당하는 Part에 적용 EO를 저장한다. -->
<update id="mregeDevMasterPartApplyEOInfo" parameterType="map">
MERGE INTO PMS_DEV_MASTER_EO_HISTORY P USING DUAL ON (P.OBJID = #{objId})
WHEN MATCHED THEN
UPDATE
SET
P.TARGET_OBJID =#{targetObjId},
P.EO_NO =#{eoNo},
<!-- PART_NO, --> <!-- #{partNo}, -->
P.EXPECT_REQUEST_SIZE_THICKNESS =#{requestSizeThickness},
P.EXPECT_REQUEST_SIZE_HORIZONTAL =#{requestSizeHorizontal},
P.EXPECT_REQUEST_SIZE_VERTICAL =#{requestSizeVertical},
P.REAL_WORK_SIZE_THICKNESS =#{realSizeThickness},
P.REAL_WORK_SIZE_HORIZONTAL =#{realSizeHorizontal},
P.REAL_WORK_SIZE_VERTICAL =#{realSizeVertical},
P.NET_WEIGHT =#{netWeight},
P.CHARGE_DEPT_CONFIRM =#{chargeDeptConfirm}
WHEN NOT MATCHED THEN
INSERT (
P.OBJID,
P.TARGET_OBJID,
P.EO_NO,
<!-- PART_NO, -->
P.EXPECT_REQUEST_SIZE_THICKNESS,
P.EXPECT_REQUEST_SIZE_HORIZONTAL,
P.EXPECT_REQUEST_SIZE_VERTICAL,
P.REAL_WORK_SIZE_THICKNESS,
P.REAL_WORK_SIZE_HORIZONTAL,
P.REAL_WORK_SIZE_VERTICAL,
P.NET_WEIGHT,
P.CHARGE_DEPT_CONFIRM,
<!-- STATUS, -->
P.WRITER,
P.REGDATE
)VALUES(
#{objId},
#{targetObjId},
#{eoNo},
<!-- #{partNo}, -->
#{requestSizeThickness},
#{requestSizeHorizontal},
#{requestSizeVertical},
#{realSizeThickness},
#{realSizeHorizontal},
#{realSizeVertical},
#{netWeight},
#{chargeDeptConfirm},
<!-- #{status}, -->
#{writer},
SYSDATE
)
</update>
<!-- 개발 Master의 Part의 EO 적용목록을 가져온다. -->
<select id="getDevMasterPartEOInfoList" parameterType="map" resultType="map">
SELECT PART_APPLY_EO.*,ROWNUM RNUM FROM(
SELECT
OBJID,
TARGET_OBJID,
EO_NO,
PART_NO,
EXPECT_REQUEST_SIZE_THICKNESS,
EXPECT_REQUEST_SIZE_HORIZONTAL,
EXPECT_REQUEST_SIZE_VERTICAL,
REAL_WORK_SIZE_THICKNESS,
REAL_WORK_SIZE_HORIZONTAL,
REAL_WORK_SIZE_VERTICAL,
NET_WEIGHT,
UPPER(CHARGE_DEPT_CONFIRM) AS CHARGE_DEPT_CONFIRM,
CASE UPPER(CHARGE_DEPT_CONFIRM)
WHEN 'UNKNOWN' THEN '미확인'
WHEN 'CONFIRM' THEN '확인완료'
ELSE '미확인'
END AS CHARGE_DEPT_CONFIRM_TITLE,
STATUS,
WRITER,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME,
REGDATE
FROM PMS_DEV_MASTER_EO_HISTORY
WHERE TARGET_OBJID = #{targetObjId}
ORDER BY REGDATE DESC
)PART_APPLY_EO
</select>
<!-- 개발 Master의 Part의 EO 적용목록을 가져온다(단건). -->
<select id="getDevMasterPartEOInfo" parameterType="map" resultType="map">
SELECT
OBJID,
TARGET_OBJID,
EO_NO,
PART_NO,
EXPECT_REQUEST_SIZE_THICKNESS,
EXPECT_REQUEST_SIZE_HORIZONTAL,
EXPECT_REQUEST_SIZE_VERTICAL,
REAL_WORK_SIZE_THICKNESS,
REAL_WORK_SIZE_HORIZONTAL,
REAL_WORK_SIZE_VERTICAL,
NET_WEIGHT,
UPPER(CHARGE_DEPT_CONFIRM) AS CHARGE_DEPT_CONFIRM,
CASE UPPER(CHARGE_DEPT_CONFIRM)
WHEN 'UNKNOWN' THEN '미확인'
WHEN 'CONFIRM' THEN '확인완료'
ELSE '미확인'
END AS CHARGE_DEPT_CONFIRM_TITLE,
STATUS,
WRITER,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME,
REGDATE,
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
FROM PMS_DEV_MASTER_EO_HISTORY
WHERE TARGET_OBJID = #{targetObjId}
AND OBJID = #{objId}
</select>
<!-- 개발 Master의 연결Part 정보를 가져온다. -->
<select id="getDevMasterPartInfo" parameterType="map" resultType="map">
SELECT
DEV_MST.*
FROM(
SELECT
DEV_PART.OBJID,
DEV_PART.TARGET_OBJID,
DEV_PART.PART_NO,
(SELECT PART_NAME FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_NAME,
(SELECT OBJID FROM PART_INFO WHERE PART_NO = DEV_PART.PART_NO AND IS_LAST = 1) AS PART_OBJID,
DEV_PART.DEV_POINT,
DEV_PART.EO_OBJID,
(SELECT EO_NO FROM EO_INFO WHERE OBJID = DEV_PART.EO_OBJID) AS EO_NO
UPPER(DEV_PART.RATE) AS RATE,
DEV_PART.COMMON_TYPE,
CASE UPPER(DEV_PART.COMMON_TYPE)
WHEN 'UQ' THEN 'U/Q'
WHEN 'CO' THEN 'C/O'
ELSE ''
END AS COMMON_TYPE_TITLE,
DEV_PART.PROD_CNT,
TO_CHAR(DEV_PART.PROD_CNT,'999,999,999') AS PROD_CNT_TITLE,
DEV_PART.NET_WEIGHT,
TO_CHAR(DEV_PART.NET_WEIGHT,'999,999,999') AS NET_WEIGHT_TITLE,
DEV_PART.WIDTH_PITCH,
CASE UPPER(DEV_PART.WIDTH_PITCH)
WHEN 'WIDTH' THEN '폭'
WHEN 'PITCH' THEN '피치'
WHEN 'WIDTHANDPITCH' THEN '폭<![CDATA[&]]>피치'
ELSE ''
END AS WIDTH_PITCH_TITLE,
DEV_PART.SOURCING_MAKE,
DECODE(UPPER(DEV_PART.SOURCING_MAKE),'D','국내','F','中國') AS SOURCING_MAKE_TITLE,
DEV_PART.SOURCING_PRODUCE,
DECODE(UPPER(DEV_PART.SOURCING_PRODUCE),'D','국내','F','中國') AS SOURCING_PRODUCE_TITLE,
DEV_PART.PROD_SIZE_HORIZON,
DEV_PART.PROD_SIZE_VERTICAL,
DEV_PART.PROD_SIZE_HEIGHT,
DEV_PART.BLANK_EXPAND_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_WIDTH,'999,999,999') AS BLANK_EXPAND_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_EXPAND_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_EXPAND_SIZE_PITCH,'999,999,999') AS BLANK_EXPAND_SIZE_PITCH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_WIDTH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_WIDTH,'999,999,999') AS BLANK_MARGIN_SIZE_WIDTH_TITLE,
DEV_PART.BLANK_MARGIN_SIZE_PITCH,
TO_CHAR(DEV_PART.BLANK_MARGIN_SIZE_PITCH,'999,999,999') AS BLANK_MARGIN_SIZE_PITCH_TITLE,
DEV_PART.BLANK_SIZE_REAL_WIDTH,
DEV_PART.BLANK_SIZE_VIEW_WIDTH,
DEV_PART.BLANK_SIZE_REAL_PITCH,
DEV_PART.BLANK_SIZE_VIEW_PITCH,
UPPER(DEV_PART.BLANK_ARRAY_TYPE) AS BLANK_ARRAY_TYPE,
CASE UPPER(DEV_PART.BLANK_ARRAY_TYPE)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
WHEN 'TURNOVER' THEN '돌려따기'
WHEN 'DOUBLEANDTURNOVER' THEN '더블<![CDATA[&]]>돌려따기'
ELSE ''
END AS BLANK_ARRAY_TYPE_TITLE,
DEV_PART.BLANK_BLK_CVT,
DEV_PART.INPUT_WEIGHT_REAL_VALUE,
DEV_PART.INPUT_WEIGHT_VIEW_VALUE,
DEV_PART.YIELD,
DEV_PART.TARGET_YIELD,
DEV_PART.PLASTIC_THEORY_TON,
DEV_PART.PRODUCT_TON,
DEV_PART.MOLD_PLASTIC_TYPE,
DEV_PART.MOLD_PRODUCT_TYPE,
DEV_PART.MOLD_SUB_MOLD_TYPE1,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE1)
WHEN 'MOLD' THEN '주물'
WHEN 'STEEL' THEN '스틸'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE1_TITLE,
DEV_PART.MOLD_SUB_MOLD_TYPE2,
CASE UPPER(DEV_PART.MOLD_SUB_MOLD_TYPE2)
WHEN 'SINGLE' THEN '싱글'
WHEN 'DOUBLE' THEN '더블'
ELSE ''
END AS MOLD_SUB_MOLD_TYPE2_TITLE,
CASE WHEN OPERATION_OP05 IS NULL OR OPERATION_OP05 = 'BL' THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP10 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP20 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP30 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP40 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP50 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP60 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP70 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP80 IS NULL THEN 0 ELSE 1 END
AS TOTAL_OP_CNT,
DEV_PART.OPERATION_OP05,
CASE UPPER(DEV_PART.OPERATION_OP05)
WHEN 'BL' THEN 'BL'
WHEN 'BL_COMMON' THEN 'BL(공용)'
WHEN 'PI_BL' THEN 'PI/BL'
ELSE ''
END AS OPERATION_OP05_TITLE,
DEV_PART.OPERATION_OP10,
DEV_PART.OPERATION_OP20,
DEV_PART.OPERATION_OP30,
DEV_PART.OPERATION_OP40,
DEV_PART.OPERATION_OP50,
DEV_PART.OPERATION_OP60,
DEV_PART.OPERATION_OP70,
DEV_PART.OPERATION_OP80,
DEV_PART.MOLD_MAKE_COMPANY,
DEV_PART.PRODUCING_COMPANY,
DEV_PART.REMARKS,
DEV_PART.WRITER,
PART_EO_INFO.MATERIAL_NAME,
PART_EO_INFO.THICKNESS,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = DEV_PART.WRITER) AS USER_NAME,
DEV_PART.REGDATE,
TO_CHAR(DEV_PART.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
(SELECT TARGET_OBJID FROM PMS_DEV_MASTER WHERE OBJID = DEV_PART.TARGET_OBJID) AS PART_MASTER_OBJID
FROM PMS_DEV_MASTER_REL_PART_INFO DEV_PART,
(
SELECT
PART.OBJID,
PART.PART_NO,
PART.PART_NAME,
PART.EO_OBJID,
PART.EO_ISSUE_DATE,
PART.REV,
PART.MATERIAL_OBJID,
(SELECT MATERIAL_NAME FROM MATERIAL_MNG WHERE OBJID = PART.MATERIAL_OBJID) AS MATERIAL_NAME,
PART.THICKNESS,
PART.IS_START_DEV_PART,
PART.REMARKS,
EO.EO_NO
FROM EO_INFO EO,
REL_EO_PART REL,
PART_INFO PART
WHERE REL.MASTER_OBJID = EO.OBJID
AND REL.SUB_OBJID = PART.OBJID
) PART_EO_INFO
WHERE 1=1
AND DEV_PART.OBJID = #{objId}
AND PART_EO_INFO.PART_NO (+)= DEV_PART.PART_NO
AND PART_EO_INFO.EO_OBJID (+)= DEV_PART.EO_OBJID
) DEV_MST WHERE 1=1
</select>
<!-- 개발마스터 Part 시점별 조회(사전원가시스템 연동시 비교용) -->
<select id="getDevMasterPartDetailByDevPoint" parameterType="map" resultType="map">
SELECT A.OBJID AS MASTER_OBJID
, B.OBJID AS SUB_OBJID
, A.OEM_OBJID
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_OBJID) AS OEM_NAME
, A.CAR_OBJID
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
, A.PROD_GROUP_OBJID
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = A.PROD_GROUP_OBJID) AS PROD_GROUP_NAME
, A.PROD_OBJID
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
, B.PART_NO
, B.DEV_POINT
, UPPER(B.RATE) AS RATE
, B.COMMON_TYPE
, TO_CHAR(B.PROD_CNT,'999,999,999') AS PROD_CNT_TITLE
, TO_CHAR(B.NET_WEIGHT,'999,999,999') AS NET_WEIGHT_TITLE
, B.WIDTH_PITCH
, B.SOURCING_MAKE
, B.SOURCING_PRODUCE
, B.PROD_SIZE_HORIZON
, B.PROD_SIZE_VERTICAL
, B.PROD_SIZE_HEIGHT
, B.BLANK_EXPAND_SIZE_WIDTH
, B.BLANK_EXPAND_SIZE_PITCH
, B.BLANK_MARGIN_SIZE_WIDTH
, B.BLANK_MARGIN_SIZE_PITCH
, B.BLANK_SIZE_REAL_WIDTH
, B.BLANK_SIZE_VIEW_WIDTH
, B.BLANK_SIZE_REAL_PITCH
, B.BLANK_SIZE_VIEW_PITCH
, B.BLANK_ARRAY_TYPE
, B.BLANK_BLK_CVT
, B.INPUT_WEIGHT_REAL_VALUE
, B.INPUT_WEIGHT_VIEW_VALUE
, B.YIELD
, B.TARGET_YIELD
, B.PLASTIC_THEORY_TON
, B.PRODUCT_TON
, B.MOLD_PLASTIC_TYPE
, B.MOLD_PRODUCT_TYPE
, B.MOLD_SUB_MOLD_TYPE1
, B.MOLD_SUB_MOLD_TYPE2
, B.OPERATION_OP05
, CASE UPPER(B.OPERATION_OP05)
WHEN 'BL' THEN 'BL'
WHEN 'BL_COMMON' THEN 'BL(공용)'
WHEN 'PI_BL' THEN 'PI/BL'
ELSE ''
END AS OPERATION_OP05_TITLE
, B.OPERATION_OP10
, B.OPERATION_OP20
, B.OPERATION_OP30
, B.OPERATION_OP40
, B.OPERATION_OP50
, B.OPERATION_OP60
, B.OPERATION_OP70
, B.OPERATION_OP80
, B.MOLD_MAKE_COMPANY
, B.PRODUCING_COMPANY
, B.REMARKS
, PART_EO_INFO.MATERIAL_NAME
, PART_EO_INFO.THICKNESS
, CASE UPPER(B.COMMON_TYPE)
WHEN 'UQ' THEN 'U/Q'
WHEN 'CO' THEN 'C/O'
ELSE ''
END AS COMMON_TYPE_TITLE
,CASE WHEN OPERATION_OP05 IS NULL OR OPERATION_OP05 = 'BL' THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP10 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP20 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP30 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP40 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP50 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP60 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP70 IS NULL THEN 0 ELSE 1 END
+ CASE WHEN OPERATION_OP80 IS NULL THEN 0 ELSE 1 END
AS TOTAL_OP_CNT
FROM
PMS_DEV_MASTER A,
PMS_DEV_MASTER_REL_PART_INFO B,
(
SELECT
PART.OBJID,
PART.PART_NO,
PART.PART_NAME,
PART.EO_OBJID,
PART.EO_ISSUE_DATE,
PART.REV,
PART.MATERIAL_OBJID,
(SELECT MATERIAL_NAME FROM MATERIAL_MNG WHERE OBJID = PART.MATERIAL_OBJID) AS MATERIAL_NAME,
PART.THICKNESS,
PART.IS_START_DEV_PART,
PART.REMARKS,
PART.IS_LAST,
EO.EO_NO
FROM EO_INFO EO,
REL_EO_PART REL,
PART_INFO PART
WHERE REL.MASTER_OBJID = EO.OBJID
AND REL.SUB_OBJID = PART.OBJID
AND PART.IS_LAST = '1'
) PART_EO_INFO
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND A.OBJID = #{masterObjId}
<!-- AND B.OBJID = #{subObjId} -->
AND UPPER(B.PART_NO) = UPPER(#{partNo})
<if test="devPoint != null and !''.equals(devPoint)">
AND B.DEV_POINT = #{devPoint}
</if>
AND PART_EO_INFO.PART_NO(+) = B.PART_NO
</select>
</mapper>