2465 lines
101 KiB
XML
2465 lines
101 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="productDev">
|
|
<!-- //EO 적용현황 목록조회 -->
|
|
<select id="getEOApplyStatusListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT PART.OBJID AS PART_OBJID
|
|
, PART.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART.OEM_OBJID) AS OEM_NAME
|
|
, PART.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS MODEL_CODE
|
|
, PART.PRODUCT_GROUP_OBJID AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART.PRODUCT_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
, PART.PRODUCT_OBJID AS PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART.PRODUCT_OBJID) AS PROD_NAME
|
|
, PART.PART_NO
|
|
, PART.PART_NAME
|
|
, PART.EO_NO
|
|
, TO_CHAR(PART.EO_ISSUE_DATE, 'YYYY-MM-DD') AS EO_ISSUE_DATE
|
|
, PART.APPLY_POINT_OBJID
|
|
, (SELECT APPLY_POINT_NAME FROM APPLY_POINT_MNG WHERE OBJID = PART.APPLY_POINT_OBJID) AS APPLY_POINT_NAME
|
|
, APPLY.OBJID AS EO_APPLY_OBJID
|
|
, APPLY.ILJI_APPLY_POINT_STEP1
|
|
, APPLY.ILJI_APPLY_POINT_STEP2
|
|
, TO_CHAR(APPLY.ILJI_APPLY_POINT_DATE, 'YYYY-MM-DD') AS ILJI_APPLY_POINT_DATE
|
|
, APPLY.MOLD_MODIFY_DOC_WRITE_TYPE
|
|
, APPLY.MOLD_EO_APPLY_TYPE_NEW
|
|
, APPLY.MOLD_EO_APPLY_TYPE_DISUSE
|
|
, APPLY.MOLD_EO_APPLY_TYPE_MODIFY
|
|
, APPLY.MOLD_VAATZ_NO
|
|
, TO_CHAR(APPLY.MOLD_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS MOLD_VAATZ_CONFIRM_DATE
|
|
, APPLY.JIG_MODIFY_DOC_WRITE_TYPE
|
|
, APPLY.JIG_EO_APPLY_TYPE_NEW
|
|
, APPLY.JIG_EO_APPLY_TYPE_DISUSE
|
|
, APPLY.JIG_EO_APPLY_TYPE_MODIFY
|
|
, APPLY.JIG_VAATZ_NO
|
|
, TO_CHAR(APPLY.JIG_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS JIG_VAATZ_CONFIRM_DATE
|
|
, TO_CHAR(PART.EO_ISSUE_DATE + 90, 'YYYY-MM-DD') AS VAATZ_TARGET_DATE
|
|
, (TO_DATE(PART.EO_ISSUE_DATE, 'YYYY-MM-DD') + 90)-TO_DATE(SYSDATE, 'YYYY-MM-DD') AS VAATZ_LIMIT_DATE_CNT
|
|
, TO_CHAR(APPLY.CHECK_DATE, 'YYYY-MM-DD') AS CHECK_DATE
|
|
, APPLY.CHECK_RESULT
|
|
, APPLY.ETC_CONTENTS
|
|
FROM (
|
|
SELECT P.*
|
|
FROM EO_INFO E, PART_INFO P
|
|
WHERE 1=1
|
|
AND E.OBJID = P.EO_OBJID
|
|
AND UPPER(P.STATUS) = 'COMPLETE'
|
|
AND UPPER(E.STATUS) = 'RELEASE'
|
|
AND UPPER(P.DRAWING_TYPE) = 'DRAW'
|
|
) PART, PMS_EO_APPLY_INFO APPLY
|
|
WHERE 1=1
|
|
AND PART.OBJID = APPLY.TARGET_OBJID(+)
|
|
ORDER BY PART.EO_ISSUE_DATE DESC
|
|
)WHERE 1=1
|
|
<if test="search_oemObjId != null and !''.equals(search_oemObjId)">
|
|
AND OEM_OBJID = #{search_oemObjId}
|
|
</if>
|
|
<if test="search_carObjId != null and !''.equals(search_carObjId)">
|
|
AND CAR_OBJID = #{search_carObjId}
|
|
</if>
|
|
<if test="search_eoNo != null and !''.equals(search_eoNo)">
|
|
AND UPPER(EO_NO) LIKE UPPER('%${search_eoNo}%')
|
|
</if>
|
|
<if test="search_eoIssueFromDate != null and !''.equals(search_eoIssueFromDate)">
|
|
AND TO_DATE(EO_ISSUE_DATE, 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_eoIssueFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_eoIssueToDate != null and !''.equals(search_eoIssueToDate)">
|
|
AND TO_DATE(EO_ISSUE_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_eoIssueToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_applyPointObjId != null and !''.equals(search_applyPointObjId)">
|
|
AND APPLY_POINT_OBJID = #{search_applyPointObjId}
|
|
</if>
|
|
<if test="search_productGroupObjId != null and !''.equals(search_productGroupObjId)">
|
|
AND PROD_GROUP_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
<if test="search_productObjId != null and !''.equals(search_productObjId)">
|
|
AND PROD_OBJID = #{search_productObjId}
|
|
</if>
|
|
<if test="search_partNo != null and !''.equals(search_partNo)">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${search_partNo}%')
|
|
</if>
|
|
<if test="search_partName != null and !''.equals(search_partName)">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${search_partName}%')
|
|
</if>
|
|
<if test="search_checkResult != null">
|
|
<choose>
|
|
<when test="''.equals(search_checkResult)">
|
|
AND CHECK_RESULT IS NULL
|
|
</when>
|
|
<when test="'all'.equals(search_checkResult)">
|
|
|
|
</when>
|
|
<otherwise>
|
|
AND CHECK_RESULT = #{search_checkResult}
|
|
</otherwise>
|
|
</choose>
|
|
</if>
|
|
<!-- //아래는 현황에서 필요한 쿼리 -->
|
|
<if test="search_moldStatus != null and !''.equals(search_moldStatus)">
|
|
<if test="'registed'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NOT NULL
|
|
</if>
|
|
<if test="'unregisted'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NULL
|
|
</if>
|
|
<if test="'untarget'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'N'
|
|
</if>
|
|
<if test="'unchoose'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE IS NULL
|
|
</if>
|
|
</if>
|
|
<if test="search_jigStatus != null and !''.equals(search_jigStatus)">
|
|
<if test="'registed'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NOT NULL
|
|
</if>
|
|
<if test="'unregisted'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NULL
|
|
</if>
|
|
<if test="'untarget'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'N'
|
|
</if>
|
|
<if test="'unchoose'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE IS NULL
|
|
</if>
|
|
</if>
|
|
<!-- //Gate별 조회시 날짜조회 필요. -->
|
|
<if test="search_applyPointFromDate != null and !''.equals(search_applyPointFromDate)">
|
|
AND ILJI_APPLY_POINT_DATE <![CDATA[ >= ]]> TO_DATE(#{search_applyPointFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_applyPointToDate != null and !''.equals(search_applyPointToDate)">
|
|
AND ILJI_APPLY_POINT_DATE <![CDATA[ <= ]]> TO_DATE(#{search_applyPointToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<!-- //EO 적용/미적용 관련 현황 조회쿼리 -->
|
|
<if test="search_applyStatus != null and !''.equals(search_applyStatus)">
|
|
<if test="'complete'.equals(search_applyStatus)">
|
|
AND ILJI_APPLY_POINT_DATE IS NOT NULL
|
|
</if>
|
|
<if test="'uncomplete'.equals(search_applyStatus)">
|
|
AND ILJI_APPLY_POINT_DATE IS NULL
|
|
</if>
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
<select id="getEOApplyStatusList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT PMS_PROBLEM_REQUEST_INFO.*,ROWNUM AS RNUM
|
|
FROM(
|
|
SELECT *
|
|
FROM (
|
|
SELECT PART.OBJID AS PART_OBJID
|
|
, PART.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART.OEM_OBJID) AS OEM_NAME
|
|
, PART.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = PART.CAR_OBJID) AS MODEL_CODE
|
|
, PART.PRODUCT_GROUP_OBJID AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART.PRODUCT_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
, PART.PRODUCT_OBJID AS PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART.PRODUCT_OBJID) AS PROD_NAME
|
|
, PART.PART_NO
|
|
, PART.PART_NAME
|
|
, PART.EO_NO
|
|
, TO_CHAR(PART.EO_ISSUE_DATE, 'YYYY-MM-DD') AS EO_ISSUE_DATE
|
|
, PART.APPLY_POINT_OBJID
|
|
, (SELECT APPLY_POINT_NAME FROM APPLY_POINT_MNG WHERE OBJID = PART.APPLY_POINT_OBJID) AS APPLY_POINT_NAME
|
|
, APPLY.OBJID AS EO_APPLY_OBJID
|
|
, APPLY.ILJI_APPLY_POINT_STEP1
|
|
, APPLY.ILJI_APPLY_POINT_STEP2
|
|
, TO_CHAR(APPLY.ILJI_APPLY_POINT_DATE, 'YYYY-MM-DD') AS ILJI_APPLY_POINT_DATE
|
|
, APPLY.MOLD_MODIFY_DOC_WRITE_TYPE
|
|
, APPLY.MOLD_EO_APPLY_TYPE_NEW
|
|
, APPLY.MOLD_EO_APPLY_TYPE_DISUSE
|
|
, APPLY.MOLD_EO_APPLY_TYPE_MODIFY
|
|
, APPLY.MOLD_VAATZ_NO
|
|
, TO_CHAR(APPLY.MOLD_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS MOLD_VAATZ_CONFIRM_DATE
|
|
, APPLY.JIG_MODIFY_DOC_WRITE_TYPE
|
|
, APPLY.JIG_EO_APPLY_TYPE_NEW
|
|
, APPLY.JIG_EO_APPLY_TYPE_DISUSE
|
|
, APPLY.JIG_EO_APPLY_TYPE_MODIFY
|
|
, APPLY.JIG_VAATZ_NO
|
|
, TO_CHAR(APPLY.JIG_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS JIG_VAATZ_CONFIRM_DATE
|
|
, CASE WHEN MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NOT NULL AND MOLD_VAATZ_CONFIRM_DATE IS NOT NULL THEN 'complete'
|
|
WHEN MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NOT NULL AND MOLD_VAATZ_CONFIRM_DATE IS NULL THEN 'confirmDateNoRegist'
|
|
WHEN MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NULL AND MOLD_VAATZ_CONFIRM_DATE IS NULL THEN 'vaatzNoRegist'
|
|
WHEN MOLD_MODIFY_DOC_WRITE_TYPE IS NULL THEN 'noRegist'
|
|
WHEN MOLD_MODIFY_DOC_WRITE_TYPE = 'N' THEN 'noTarget'
|
|
ELSE '' END AS MOLD_STATUS
|
|
, CASE WHEN JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NOT NULL AND JIG_VAATZ_CONFIRM_DATE IS NOT NULL THEN 'complete'
|
|
WHEN JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NOT NULL AND JIG_VAATZ_CONFIRM_DATE IS NULL THEN 'confirmDateNoRegist'
|
|
WHEN JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NULL AND JIG_VAATZ_CONFIRM_DATE IS NULL THEN 'vaatzNoRegist'
|
|
WHEN JIG_MODIFY_DOC_WRITE_TYPE IS NULL THEN 'noRegist'
|
|
WHEN JIG_MODIFY_DOC_WRITE_TYPE = 'N' THEN 'noTarget'
|
|
ELSE '' END AS JIG_STATUS
|
|
, TO_CHAR(PART.EO_ISSUE_DATE + 90, 'YYYY-MM-DD') AS VAATZ_TARGET_DATE
|
|
, (TO_DATE(PART.EO_ISSUE_DATE, 'YYYY-MM-DD') + 90)-TO_DATE(SYSDATE, 'YYYY-MM-DD') AS VAATZ_LIMIT_DATE_CNT
|
|
, TO_CHAR(APPLY.CHECK_DATE, 'YYYY-MM-DD') AS CHECK_DATE
|
|
, APPLY.CHECK_RESULT
|
|
, APPLY.ETC_CONTENTS
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = PART.OBJID AND DOC_TYPE='EO_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS OE_FILE_CNT
|
|
, (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 = APPLY.OBJID) AS REL_TASK_CNT
|
|
FROM (
|
|
SELECT P.*
|
|
FROM EO_INFO E, PART_INFO P
|
|
WHERE 1=1
|
|
AND UPPER(P.DRAWING_TYPE) = 'DRAW'
|
|
AND E.OBJID = P.EO_OBJID
|
|
AND UPPER(P.STATUS) = 'COMPLETE'
|
|
AND UPPER(E.STATUS) = 'RELEASE'
|
|
) PART, PMS_EO_APPLY_INFO APPLY
|
|
WHERE 1=1
|
|
AND PART.OBJID = APPLY.TARGET_OBJID(+)
|
|
)WHERE 1=1
|
|
<if test="search_oemObjId != null and !''.equals(search_oemObjId)">
|
|
AND OEM_OBJID = #{search_oemObjId}
|
|
</if>
|
|
<if test="search_carObjId != null and !''.equals(search_carObjId)">
|
|
AND CAR_OBJID = #{search_carObjId}
|
|
</if>
|
|
<if test="search_eoNo != null and !''.equals(search_eoNo)">
|
|
AND UPPER(EO_NO) LIKE UPPER('%${search_eoNo}%')
|
|
</if>
|
|
<if test="search_eoIssueFromDate != null and !''.equals(search_eoIssueFromDate)">
|
|
AND TO_DATE(EO_ISSUE_DATE, 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_eoIssueFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_eoIssueToDate != null and !''.equals(search_eoIssueToDate)">
|
|
AND TO_DATE(EO_ISSUE_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_eoIssueToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_applyPointObjId != null and !''.equals(search_applyPointObjId)">
|
|
AND APPLY_POINT_OBJID = #{search_applyPointObjId}
|
|
</if>
|
|
<if test="search_productGroupObjId != null and !''.equals(search_productGroupObjId)">
|
|
AND PROD_GROUP_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
<if test="search_productObjId != null and !''.equals(search_productObjId)">
|
|
AND PROD_OBJID = #{search_productObjId}
|
|
</if>
|
|
<if test="search_partNo != null and !''.equals(search_partNo)">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${search_partNo}%')
|
|
</if>
|
|
<if test="search_partName != null and !''.equals(search_partName)">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${search_partName}%')
|
|
</if>
|
|
<if test="search_checkResult != null">
|
|
<choose>
|
|
<when test="''.equals(search_checkResult)">
|
|
AND CHECK_RESULT IS NULL
|
|
</when>
|
|
<when test="'all'.equals(search_checkResult)">
|
|
|
|
</when>
|
|
<otherwise>
|
|
AND CHECK_RESULT = #{search_checkResult}
|
|
</otherwise>
|
|
</choose>
|
|
</if>
|
|
|
|
<!-- //아래는 현황에서 필요한 쿼리 -->
|
|
<if test="search_moldStatus != null and !''.equals(search_moldStatus)">
|
|
<if test="'registed'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NOT NULL
|
|
</if>
|
|
<if test="'unregisted'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'Y' AND MOLD_VAATZ_NO IS NULL
|
|
</if>
|
|
<if test="'untarget'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE = 'N'
|
|
</if>
|
|
<if test="'unchoose'.equals(search_moldStatus)">
|
|
AND MOLD_MODIFY_DOC_WRITE_TYPE IS NULL
|
|
</if>
|
|
</if>
|
|
<if test="search_jigStatus != null and !''.equals(search_jigStatus)">
|
|
<if test="'registed'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NOT NULL
|
|
</if>
|
|
<if test="'unregisted'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'Y' AND JIG_VAATZ_NO IS NULL
|
|
</if>
|
|
<if test="'untarget'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE = 'N'
|
|
</if>
|
|
<if test="'unchoose'.equals(search_jigStatus)">
|
|
AND JIG_MODIFY_DOC_WRITE_TYPE IS NULL
|
|
</if>
|
|
</if>
|
|
<!-- //Gate별 조회시 날짜조회 필요. -->
|
|
<if test="search_applyPointFromDate != null and !''.equals(search_applyPointFromDate)">
|
|
AND ILJI_APPLY_POINT_DATE <![CDATA[ >= ]]> TO_DATE(#{search_applyPointFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_applyPointToDate != null and !''.equals(search_applyPointToDate)">
|
|
AND ILJI_APPLY_POINT_DATE <![CDATA[ <= ]]> TO_DATE(#{search_applyPointToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<!-- //EO 적용/미적용 관련 현황 조회쿼리 -->
|
|
<if test="search_applyStatus != null and !''.equals(search_applyStatus)">
|
|
<if test="'complete'.equals(search_applyStatus)">
|
|
AND ILJI_APPLY_POINT_DATE IS NOT NULL
|
|
</if>
|
|
<if test="'uncomplete'.equals(search_applyStatus)">
|
|
AND ILJI_APPLY_POINT_DATE IS NULL
|
|
</if>
|
|
</if>
|
|
ORDER BY OEM_NAME, CAR_NAME, EO_ISSUE_DATE DESC, EO_NO, PROD_GROUP_NAME, PROD_NAME, PART_NAME
|
|
)PMS_PROBLEM_REQUEST_INFO
|
|
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>
|
|
|
|
<!-- //EO 적용현황 기본 Object 생성 -->
|
|
<insert id="createEOApplyBaseObject" parameterType="map">
|
|
INSERT INTO PMS_EO_APPLY_INFO(OBJID, TARGET_OBJID) VALUES (${objId}, ${targetObjId})
|
|
</insert>
|
|
|
|
<!-- //EO 적용현황 > EO 적용관리 정보조회 -->
|
|
<select id="getEOApplyPointInfo" resultType="map" parameterType="map">
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, ILJI_APPLY_POINT_STEP1
|
|
, ILJI_APPLY_POINT_STEP2
|
|
, TO_CHAR(ILJI_APPLY_POINT_DATE, 'YYYY-MM-DD') AS ILJI_APPLY_POINT_DATE
|
|
FROM PMS_EO_APPLY_INFO
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
<!-- //EO 적용현황 > EO 적용관리 저장 -->
|
|
<update id="saveEOApplyPointInfo" parameterType="map">
|
|
UPDATE PMS_EO_APPLY_INFO SET ILJI_APPLY_POINT_STEP1 = #{step1}, ILJI_APPLY_POINT_STEP2 = #{step2}, ILJI_APPLY_POINT_DATE = TO_DATE(#{iljiApplyPointDate}, 'yyyy-mm-dd') WHERE TARGET_OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- //EO 적용현황 > 금형/JIG 수정승인관리 조회 -->
|
|
<select id="getEOApplyModifyConfirmInfo" resultType="map" parameterType="map">
|
|
SELECT APPLY.OBJID AS EO_APPLY_OBJID
|
|
, PART.OBJID AS TARGET_OBJID
|
|
<if test="targetType != null and 'MOLD'.equals(targetType)">
|
|
, MOLD_MODIFY_DOC_WRITE_TYPE AS MODIFY_DOC_WRITE_TYPE
|
|
, MOLD_EO_APPLY_TYPE_NEW AS EO_APPLY_TYPE_NEW
|
|
, MOLD_EO_APPLY_TYPE_DISUSE AS EO_APPLY_TYPE_DISUSE
|
|
, MOLD_EO_APPLY_TYPE_MODIFY AS EO_APPLY_TYPE_MODIFY
|
|
, MOLD_VAATZ_NO AS VAATZ_NO
|
|
, TO_CHAR(MOLD_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS VAATZ_CONFIRM_DATE
|
|
</if>
|
|
<if test="targetType != null and 'JIG'.equals(targetType)">
|
|
, JIG_MODIFY_DOC_WRITE_TYPE AS MODIFY_DOC_WRITE_TYPE
|
|
, JIG_EO_APPLY_TYPE_NEW AS EO_APPLY_TYPE_NEW
|
|
, JIG_EO_APPLY_TYPE_DISUSE AS EO_APPLY_TYPE_DISUSE
|
|
, JIG_EO_APPLY_TYPE_MODIFY AS EO_APPLY_TYPE_MODIFY
|
|
, JIG_VAATZ_NO AS VAATZ_NO
|
|
, TO_CHAR(JIG_VAATZ_CONFIRM_DATE, 'YYYY-MM-DD') AS VAATZ_CONFIRM_DATE
|
|
</if>
|
|
, TO_CHAR(PART.EO_ISSUE_DATE + 90, 'YYYY-MM-DD') AS VAATZ_TARGET_DATE
|
|
, (TO_DATE(PART.EO_ISSUE_DATE, 'YYYY-MM-DD') + 90)-TO_DATE(SYSDATE, 'YYYY-MM-DD') AS VAATZ_LIMIT_DATE_CNT
|
|
FROM PMS_EO_APPLY_INFO APPLY, PART_INFO PART
|
|
WHERE 1=1
|
|
AND PART.OBJID = APPLY.TARGET_OBJID(+)
|
|
AND PART.OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- //EO 적용현황 > 금형/JIG 수정승인관리 저장 -->
|
|
<update id="saveEOApplyModifyConfirmInfo" parameterType="map">
|
|
UPDATE PMS_EO_APPLY_INFO
|
|
SET
|
|
<if test="targetType != null and !''.equals(targetType)">
|
|
<if test="'MOLD'.equals(targetType)">
|
|
MOLD_MODIFY_DOC_WRITE_TYPE = #{modifyDocWriteType}
|
|
, MOLD_EO_APPLY_TYPE_NEW = #{eoApplyTypeNew}
|
|
, MOLD_EO_APPLY_TYPE_DISUSE = #{eoApplyTypeDisuse}
|
|
, MOLD_EO_APPLY_TYPE_MODIFY = #{eoApplyTypeModify}
|
|
, MOLD_VAATZ_NO = #{vaatzNo}
|
|
, MOLD_VAATZ_CONFIRM_DATE = #{vaatzConfirmDate}
|
|
</if>
|
|
<if test="'JIG'.equals(targetType)">
|
|
JIG_MODIFY_DOC_WRITE_TYPE = #{modifyDocWriteType}
|
|
, JIG_EO_APPLY_TYPE_NEW = #{eoApplyTypeNew}
|
|
, JIG_EO_APPLY_TYPE_DISUSE = #{eoApplyTypeDisuse}
|
|
, JIG_EO_APPLY_TYPE_MODIFY = #{eoApplyTypeModify}
|
|
, JIG_VAATZ_NO = #{vaatzNo}
|
|
, JIG_VAATZ_CONFIRM_DATE = #{vaatzConfirmDate}
|
|
</if>
|
|
</if>
|
|
WHERE TARGET_OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- //EO 적용현황 > EO 적용완료 점검결과 조회-->
|
|
<select id="getEOApplyCheckInfo" resultType="map" parameterType="map">
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, TO_CHAR(CHECK_DATE, 'YYYY-MM-DD') AS CHECK_DATE
|
|
, CHECK_RESULT
|
|
FROM PMS_EO_APPLY_INFO
|
|
WHERE 1=1
|
|
AND OBJID = ${objId}
|
|
AND TARGET_OBJID = ${targetObjId}
|
|
</select>
|
|
|
|
<!-- //EO 적용현황 > EO 적용완료 점검결과 저장 -->
|
|
<update id="saveEOApplyCheckInfo" parameterType="map">
|
|
UPDATE PMS_EO_APPLY_INFO
|
|
SET
|
|
CHECK_DATE = TO_DATE(#{checkDate}, 'yyyy-mm-dd')
|
|
, CHECK_RESULT = #{checkResult}
|
|
WHERE TARGET_OBJID = #{targetObjId} AND OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //jmpark start -->
|
|
<!-- //금형이력 중복 count 조회 -->
|
|
<select id="checkDuplicateMoldHistoryInfo" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_MOLD_HISTORY_INFO
|
|
WHERE 1=1
|
|
AND OEM_OBJID = #{oemObjId}
|
|
AND CAR_OBJID = #{carObjId}
|
|
AND UPPER(CURRENT_STEP) = UPPER(#{currentStep})
|
|
</select>
|
|
|
|
<!-- //금형이력 갑지목록 조회 -->
|
|
<select id="getMoldHistoryList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_OBJID) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, A.CURRENT_STEP
|
|
, (SELECT COUNT(*) FROM PMS_MOLD_HISTORY_REL_PROD WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'ACTIVE') AS PRODUCT_CNT
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
FROM PMS_MOLD_HISTORY_INFO A
|
|
WHERE 1=1
|
|
<if test="search_oemObjId != null and !''.equals(search_oemObjId)">
|
|
AND A.OEM_OBJID = #{search_oemObjId}
|
|
</if>
|
|
<if test="search_carObjId != null and !''.equals(search_carObjId)">
|
|
AND A.CAR_OBJID = #{search_carObjId}
|
|
</if>
|
|
<if test="search_currentStep != null and !''.equals(search_currentStep)">
|
|
AND A.CURRENT_STEP = #{search_currentStep}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //금형이력 갑지 조회 -->
|
|
<select id="getMoldHistoryInfo" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_OBJID) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, A.CURRENT_STEP
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
FROM PMS_MOLD_HISTORY_INFO A
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //금형이력 갑지별 제품목록 조회 -->
|
|
<select id="getMoldHistoryRelProductList" 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.CURRENT_STEP
|
|
, A.WRITER AS MASTER_WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS MASTER_WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS MASTER_WRITER_USER_NAME
|
|
, A.REGDATE AS MASTER_REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS MASTER_REGDATE
|
|
, A.STATUS AS MASTER_STATUS
|
|
, B.PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = B.PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
, B.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = B.PROD_OBJID) AS PROD_NAME
|
|
, B.WRITER AS SUB_WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS SUB_WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS SUB_WRITER_USER_NAME
|
|
, B.REGDATE AS SUB_REGDATE_ORG
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS SUB_REGDATE
|
|
, B.STATUS AS SUB_STATUS
|
|
, (SELECT COUNT(*) FROM PMS_MOLD_HISTORY_REL_PROD_ATTR WHERE TARGET_OBJID = B.OBJID) AS HISTORY_CNT
|
|
FROM PMS_MOLD_HISTORY_INFO A, PMS_MOLD_HISTORY_REL_PROD B
|
|
WHERE 1=1
|
|
AND A.OBJID(+) = B.TARGET_OBJID
|
|
AND UPPER(B.STATUS) = 'ACTIVE'
|
|
AND B.TARGET_OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- //금형이력 갑지 저장 -->
|
|
<update id="saveMoldHistoryInfo" parameterType="map">
|
|
MERGE INTO PMS_MOLD_HISTORY_INFO P USING DUAL ON (P.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.OEM_OBJID = #{oemObjId}
|
|
, P.CAR_OBJID = #{carObjId}
|
|
, P.CURRENT_STEP = #{currentStep}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID
|
|
, P.OEM_OBJID
|
|
, P.CAR_OBJID
|
|
, P.CURRENT_STEP
|
|
, P.WRITER
|
|
, P.REGDATE
|
|
, P.STATUS
|
|
)VALUES(
|
|
#{objId}
|
|
, #{oemObjId}
|
|
, #{carObjId}
|
|
, #{currentStep}
|
|
, #{writer}
|
|
, SYSDATE
|
|
, 'create'
|
|
)
|
|
</update>
|
|
|
|
<!-- //금형이력 갑지 제품연결 -->
|
|
<insert id="connectMoldHistoryRelProduct" parameterType="map">
|
|
INSERT INTO PMS_MOLD_HISTORY_REL_PROD(
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, PROD_GROUP_OBJID
|
|
, PROD_OBJID
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, #{prodGroupObjId}
|
|
, #{prodObjId}
|
|
, #{writer}
|
|
, sysdate
|
|
, 'active'
|
|
)
|
|
</insert>
|
|
|
|
<!-- //금형이력 갑지 제품 중복확인 -->
|
|
<select id="getDuplicateMoldHistoryRelProductCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_MOLD_HISTORY_REL_PROD
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
AND PROD_OBJID = #{prodObjId}
|
|
</select>
|
|
|
|
<!-- //금형이력 갑지 제품연결 해제 -->
|
|
<update id="disconnectMoldHistoryRelProduct" parameterType="map">
|
|
UPDATE PMS_MOLD_HISTORY_REL_PROD SET STATUS = 'Inactive' WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //금형이력 파일첨부 target별 max+1의 차수 조회 -->
|
|
<select id="getMoldHistoryRelProdAttrNextRev" parameterType="map" resultType="map">
|
|
SELECT nvl(MAX(REV), -1)+1 as NEXT_REV FROM PMS_MOLD_HISTORY_REL_PROD_ATTR WHERE 1=1 AND TARGET_OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- //금형이력 파일첨부 상세 -->
|
|
<select id="getMoldHistoryRelProdAttrInfo" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS MASTER_OBJID
|
|
, B.OBJID AS SUB_OBJID
|
|
, 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.PIC
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.PIC) AS PIC_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.PIC) AS PIC_USER_NAME
|
|
, B.REV
|
|
, B.DESCRIPTION
|
|
, B.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, B.LAST_MODIFIED AS LAST_MODIFIED_ORG
|
|
, TO_CHAR(B.LAST_MODIFIED, 'YYYY-MM-DD') AS LAST_MODIFIED
|
|
FROM PMS_MOLD_HISTORY_REL_PROD A, PMS_MOLD_HISTORY_REL_PROD_ATTR B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND UPPER(A.STATUS) = 'ACTIVE'
|
|
AND B.TARGET_OBJID = #{targetObjId}
|
|
AND B.OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //금형이력 파일첨부 목록조회 -->
|
|
<select id="getMoldHistoryRelProdAttrList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS MASTER_OBJID
|
|
, B.OBJID AS SUB_OBJID
|
|
, 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.PIC
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.PIC) AS PIC_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.PIC) AS PIC_USER_NAME
|
|
, B.REV
|
|
, B.DESCRIPTION
|
|
, B.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, B.LAST_MODIFIED AS LAST_MODIFIED_ORG
|
|
, TO_CHAR(B.LAST_MODIFIED, 'YYYY-MM-DD') AS LAST_MODIFIED
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = B.OBJID AND DOC_TYPE='MOLD_HISTORY_PROD_ATTR_CODE' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
|
|
FROM PMS_MOLD_HISTORY_REL_PROD A, PMS_MOLD_HISTORY_REL_PROD_ATTR B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND UPPER(A.STATUS) = 'ACTIVE'
|
|
AND B.TARGET_OBJID = #{targetObjId}
|
|
ORDER BY TO_NUMBER(REV) DESC
|
|
</select>
|
|
|
|
<!-- //금형이력 파일첨부 내용 저장 -->
|
|
<update id="saveMoldHistoryRelProdAttrInfo" parameterType="map">
|
|
MERGE INTO PMS_MOLD_HISTORY_REL_PROD_ATTR USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET DESCRIPTION = #{description}, LAST_MODIFIED = SYSDATE
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, MOLD_HISTORY_OBJID
|
|
, TARGET_OBJID
|
|
, PIC
|
|
, REV
|
|
, DESCRIPTION
|
|
, REGDATE
|
|
, LAST_MODIFIED
|
|
) VALUES (
|
|
#{objId}
|
|
, #{moldHistoryObjId}
|
|
, #{targetObjId}
|
|
, #{pic}
|
|
, #{rev}
|
|
, #{description}
|
|
, SYSDATE
|
|
, SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- //jmpark end -->
|
|
|
|
|
|
<!-- //edhwang start -->
|
|
|
|
<!-- DFMEA 갑지 목록을 가져온다. -->
|
|
<select id="getDFMEABaseInfoList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT INFO.*, ROW_NUMBER() OVER(ORDER BY INFO.REGDATE ASC) RNUM
|
|
FROM(
|
|
SELECT INFO.*
|
|
FROM(
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = INFO.OEM_OBJID) AS OEM_NAME,
|
|
INFO.CAR_OBJID,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = INFO.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = INFO.CAR_OBJID) AS CAR_NAME,
|
|
INFO.PROD_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = INFO.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
INFO.PROD_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = INFO.PROD_OBJID) AS PRODUCT_NAME,
|
|
INFO.REGDATE,
|
|
INFO.TITLE,
|
|
TO_CHAR(INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
INFO.STATUS,
|
|
INFO.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS DEPT_NAME,
|
|
(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE='DFMEA_BLOCK' AND UPPER(STATUS) = 'ACTIVE') AS BLOCK_FILE_CNT,
|
|
(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE='DFMEA_RPN' AND UPPER(STATUS) = 'ACTIVE') AS RPN_FILE_CNT
|
|
FROM PMS_DFMEA_BASE_INFO INFO
|
|
) INFO WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND INFO.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND INFO.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !='' ">
|
|
AND INFO.PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !='' ">
|
|
AND INFO.PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and search_writer !='' ">
|
|
AND UPPER(INFO.USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
) INFO
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- DFMEA 갑지 count 목록을 가져온다. -->
|
|
<select id="getDFMEABaseInfoListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT INFO.*
|
|
FROM(
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = INFO.OEM_OBJID) AS OEM_NAME,
|
|
INFO.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = INFO.CAR_OBJID) AS CAR_NAME,
|
|
INFO.PROD_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = INFO.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
INFO.PROD_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = INFO.PROD_OBJID) AS PRODUCT_NAME,
|
|
INFO.REGDATE,
|
|
INFO.TITLE,
|
|
TO_CHAR(INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
INFO.STATUS,
|
|
INFO.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS DEPT_NAME
|
|
FROM PMS_DFMEA_BASE_INFO INFO
|
|
) INFO WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND INFO.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND INFO.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !='' ">
|
|
AND INFO.PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !='' ">
|
|
AND INFO.PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and search_writer !='' ">
|
|
AND UPPER(INFO.USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
)
|
|
)
|
|
</select>
|
|
|
|
<!-- DFMEA 갑지 내용(단건)을 가져온다. -->
|
|
<select id="getDFMEABaseInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = INFO.OEM_OBJID) AS OEM_NAME,
|
|
INFO.CAR_OBJID,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = INFO.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = INFO.CAR_OBJID) AS CAR_NAME,
|
|
INFO.PROD_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = INFO.PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
INFO.PROD_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = INFO.PROD_OBJID) AS PRODUCT_NAME,
|
|
INFO.REGDATE,
|
|
INFO.TITLE,
|
|
TO_CHAR(INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
INFO.STATUS,
|
|
INFO.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = INFO.WRITER) AS DEPT_NAME
|
|
FROM PMS_DFMEA_BASE_INFO INFO
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- DFMEA 갑지의 중복여부를 확인한다. -->
|
|
<select id="checkDFMEABaseInfoDuplicate" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT FROM(
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.OEM_OBJID,
|
|
INFO.CAR_OBJID,
|
|
INFO.PROD_GROUP_OBJID,
|
|
INFO.PROD_OBJID,
|
|
INFO.STATUS
|
|
FROM PMS_DFMEA_BASE_INFO INFO
|
|
WHERE INFO.OBJID != #{objId}
|
|
AND INFO.OEM_OBJID = #{oemObjId}
|
|
AND INFO.CAR_OBJID = #{carObjId}
|
|
AND INFO.PROD_GROUP_OBJID = #{productGroupObjId}
|
|
AND INFO.PROD_OBJID = #{productObjId}
|
|
)
|
|
</select>
|
|
|
|
<!-- DFMEA 갑지 내용을 저장한다. -->
|
|
<update id="saveDFMEABaseInfo" parameterType="map">
|
|
MERGE INTO PMS_DFMEA_BASE_INFO P USING DUAL ON (P.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.OEM_OBJID = #{oemObjId}
|
|
,P.CAR_OBJID = #{carObjId}
|
|
,P.PROD_GROUP_OBJID = #{productGroupObjId}
|
|
,P.PROD_OBJID = #{productObjId}
|
|
,P.TITLE = #{title}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID,
|
|
P.OEM_OBJID,
|
|
P.CAR_OBJID,
|
|
P.PROD_GROUP_OBJID,
|
|
P.PROD_OBJID,
|
|
P.REGDATE,
|
|
P.STATUS,
|
|
P.TITLE,
|
|
P.WRITER
|
|
)VALUES(
|
|
#{objId},
|
|
#{oemObjId},
|
|
#{carObjId},
|
|
#{productGroupObjId},
|
|
#{productObjId},
|
|
SYSDATE,
|
|
#{status},
|
|
#{title},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- DFMEA 갑지에 연결된 정보 목록을 가져온다. -->
|
|
<select id="getDFMEAList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY INFO.REGDATE ASC) DFMEA_RNUM,
|
|
INFO.OBJID,
|
|
INFO.TARGET_OBJID,
|
|
INFO.MASTER_CATEGORY_PART_NO,
|
|
INFO.MASTER_CATEGORY_OBJID,
|
|
(SELECT REPLACE(CATEGORY_GROUP_NAME, chr(13)||chr(10), '\n') FROM DFMEA_CATEGORY_GROUP WHERE OBJID = INFO.MASTER_CATEGORY_OBJID) AS MASTER_CATEGORY_NAME,
|
|
INFO.SUB_CATEGORY_PART_NO,
|
|
INFO.SUB_CATEGORY_OBJID,
|
|
(SELECT REPLACE(CATEGORY_NAME, chr(13)||chr(10), '\n') FROM DFMEA_CATEGORY WHERE OBJID = INFO.SUB_CATEGORY_OBJID) AS CATEGORY_NAME,
|
|
INFO.FILTER_PART_NO,
|
|
INFO.FILTER_COMMENT,
|
|
INFO.POTENTIAL_FAIL_FILTER_OBJID,
|
|
(SELECT REPLACE(ATTRIBUTE_NAME, chr(13)||chr(10), '\n') FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID) AS ATTR_NAME,
|
|
REPLACE(NVL(INFO.POTENTIAL_IMPACT,(SELECT POTENTIAL_IMPACT FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID)), chr(13)||chr(10), '\n') AS POTENTIAL_IMPACT,
|
|
INFO.SEVERITY_SCORE,
|
|
INFO.SPECIAL_SPEC,
|
|
REPLACE(NVL(INFO.POTENTIAL_CAUSE,(SELECT POTENTIAL_CAUSE FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID)), chr(13)||chr(10), '\n') AS POTENTIAL_CAUSE,
|
|
INFO.INCIDENCE_SCORE,
|
|
REPLACE(NVL(INFO.CURRENT_DESIGN_MANAGE_PREVENT,(SELECT CURRENT_DESIGN_MANAGE_PREVENT FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID)), chr(13)||chr(10), '\n') AS CURRENT_DESIGN_MANAGE_PREVENT,
|
|
REPLACE(NVL(INFO.CURRENT_DESIGN_MANAGE_DETECT,(SELECT CURRENT_DESIGN_MANAGE_DETECT FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID)), chr(13)||chr(10), '\n') AS CURRENT_DESIGN_MANAGE_DETECT,
|
|
INFO.DETECT_SCORE,
|
|
REPLACE(NVL(INFO.RECOMMEND_OPTION,(SELECT RECOMMEND_OPTION FROM DFMEA_CATEGORY_ATTRIBUTE WHERE OBJID = INFO.POTENTIAL_FAIL_FILTER_OBJID)), chr(13)||chr(10), '\n') AS RECOMMEND_OPTION,
|
|
TO_CHAR(INFO.REGDATE,'YYYY-MM-DD') AS REGDATE,
|
|
INFO.STATUS,
|
|
INFO.WRITER,
|
|
(TO_NUMBER(NVL(INFO.SEVERITY_SCORE,0))*TO_NUMBER(NVL(INFO.INCIDENCE_SCORE,0))*TO_NUMBER(NVL(INFO.DETECT_SCORE,0))) AS RPN,
|
|
TO_CHAR(APPLY.PLAN_COMPLETE_DATE,'YYYY-MM-DD') AS PLAN_COMPLETE_DATE,
|
|
TO_CHAR(APPLY.COMPLETE_DATE,'YYYY-MM-DD') AS COMPLETE_DATE,
|
|
REPLACE(APPLY.ACTION_CONTENTS, chr(13)||chr(10), '\n') AS ACTION_CONTENTS,
|
|
APPLY.APPLY_SEVERITY_SCORE,
|
|
APPLY.APPLY_INCIDENCE_SCORE,
|
|
APPLY.APPLY_DETECT_SCORE,
|
|
APPLY.STEP1_TITLE,
|
|
APPLY.STEP2,
|
|
(TO_NUMBER(NVL(APPLY.APPLY_SEVERITY_SCORE,0))*TO_NUMBER(NVL(APPLY.APPLY_INCIDENCE_SCORE,0))*TO_NUMBER(NVL(APPLY.APPLY_DETECT_SCORE,0))) AS APPLY_RPN
|
|
FROM
|
|
PMS_DFMEA_INFO INFO,
|
|
(
|
|
SELECT * FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER(PARTITION BY TARGET_OBJID ORDER BY REGDATE DESC) RNUM,
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
PLAN_COMPLETE_DATE,
|
|
COMPLETE_DATE,
|
|
ACTION_CONTENTS,
|
|
SEVERITY_SCORE AS APPLY_SEVERITY_SCORE,
|
|
INCIDENCE_SCORE,
|
|
INCIDENCE_SCORE AS APPLY_INCIDENCE_SCORE,
|
|
DETECT_SCORE,
|
|
DETECT_SCORE AS APPLY_DETECT_SCORE,
|
|
STEP1,
|
|
DECODE(STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', STEP1) AS STEP1_TITLE,
|
|
STEP2,
|
|
REGDATE,
|
|
STATUS,
|
|
WRITER
|
|
FROM PMS_DFMEA_CHANGE_ATTR
|
|
)WHERE 1=1 AND RNUM = 1
|
|
)APPLY
|
|
WHERE 1=1
|
|
AND APPLY.TARGET_OBJID(+)=INFO.OBJID
|
|
AND INFO.TARGET_OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- DFMEA 대분류 목록을 가져온다. -->
|
|
<select id="getDFMEACategoryGroupList" parameterType="map" resultType="map">
|
|
SELECT
|
|
CATEGORY_GROUP.*,
|
|
ROW_NUMBER() OVER(ORDER BY CATEGORY_GROUP.REGDATE DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
OBJID,
|
|
REPLACE(CATEGORY_GROUP_NAME, CHR(13)||CHR(10), '\N') AS CATEGORY_GROUP_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
TARGET_OBJID,
|
|
TARGET_OBJID AS PRODUCT_OBJID,
|
|
(SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PRODUCT_GORUP_OBJID
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE UPPER(STATUS) = 'ACTIVE'
|
|
) CATEGORY_GROUP WHERE 1=1
|
|
<if test="search_productObjId != null and !''.equals(search_productObjId)">
|
|
AND CATEGORY_GROUP.PRODUCT_OBJID = #{search_productObjId}
|
|
</if>
|
|
<if test="search_productGroupObjId != null and !''.equals(search_productGroupObjId)">
|
|
AND CATEGORY_GROUP.PRODUCT_GORUP_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- DFMEA 중분류 목록을 가져온다. -->
|
|
<select id="getDFMEACategoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY CATEGORY.REGDATE DESC) AS RNUM,
|
|
CATEGORY.OBJID,
|
|
CATEGORY.CATEGORY_GROUP_OBJID,
|
|
REPLACE(CATEGORY.CATEGORY_NAME, chr(13)||chr(10), '\n') AS CATEGORY_NAME,
|
|
CATEGORY.WRITER,
|
|
CATEGORY.REGDATE,
|
|
CATEGORY.STATUS
|
|
FROM DFMEA_CATEGORY CATEGORY
|
|
WHERE UPPER(STATUS) = 'ACTIVE'
|
|
AND CATEGORY.CATEGORY_GROUP_OBJID = #{categoryGroupObjId}
|
|
</select>
|
|
|
|
<!-- DFMEA 필터 목록을 가져온다. -->
|
|
<select id="getDFMEAAttributeList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY ATTRIBUTE.REGDATE DESC) AS RNUM,
|
|
ATTRIBUTE.OBJID,
|
|
ATTRIBUTE.CATEGORY_OBJID,
|
|
REPLACE(ATTRIBUTE.ATTRIBUTE_NAME, chr(13)||chr(10), '\n') AS ATTRIBUTE_NAME,
|
|
REPLACE(ATTRIBUTE.POTENTIAL_IMPACT, chr(13)||chr(10), '\n') AS POTENTIAL_IMPACT,
|
|
REPLACE(ATTRIBUTE.POTENTIAL_CAUSE, chr(13)||chr(10), '\n') AS POTENTIAL_CAUSE,
|
|
REPLACE(ATTRIBUTE.CURRENT_DESIGN_MANAGE_PREVENT, chr(13)||chr(10), '\n') AS CURRENT_DESIGN_MANAGE_PREVENT,
|
|
REPLACE(ATTRIBUTE.CURRENT_DESIGN_MANAGE_DETECT, chr(13)||chr(10), '\n') AS CURRENT_DESIGN_MANAGE_DETECT,
|
|
REPLACE(ATTRIBUTE.RECOMMEND_OPTION, chr(13)||chr(10), '\n') AS RECOMMEND_OPTION,
|
|
ATTRIBUTE.WRITER,
|
|
ATTRIBUTE.REGDATE,
|
|
ATTRIBUTE.STATUS
|
|
FROM DFMEA_CATEGORY_ATTRIBUTE ATTRIBUTE
|
|
WHERE UPPER(STATUS) = 'ACTIVE'
|
|
<if test="categoryObjId != null and !''.equals(categoryObjId)">
|
|
AND ATTRIBUTE.CATEGORY_OBJID = #{categoryObjId}
|
|
</if>
|
|
<if test="objId != null and !''.equals(objId)">
|
|
AND ATTRIBUTE.OBJID = #{objId}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- DFMEA의 설변 적용내용을 가져온다. -->
|
|
<select id="getStructureChangeInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
ATTR.OBJID,
|
|
ATTR.TARGET_OBJID,
|
|
TO_CHAR(ATTR.PLAN_COMPLETE_DATE,'YYYY-MM-DD') AS PLAN_COMPLETE_DATE,
|
|
TO_CHAR(ATTR.COMPLETE_DATE,'YYYY-MM-DD') AS COMPLETE_DATE,
|
|
ATTR.ACTION_CONTENTS,
|
|
ATTR.SEVERITY_SCORE,
|
|
ATTR.INCIDENCE_SCORE,
|
|
ATTR.DETECT_SCORE,
|
|
ATTR.STEP1,
|
|
DECODE(ATTR.STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', STEP1) AS STEP1_TITLE,
|
|
ATTR.STEP2,
|
|
ATTR.REGDATE,
|
|
ATTR.STATUS,
|
|
ATTR.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = ATTR.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = ATTR.WRITER) AS DEPT_NAME
|
|
FROM PMS_DFMEA_CHANGE_ATTR ATTR
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- DFMEA의 설변 적용내용의 중복 여부를 확인한다. -->
|
|
<select id="checkStructureChangeInfoDuplicate" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT FROM(
|
|
SELECT
|
|
ATTR.OBJID,
|
|
ATTR.STEP1,
|
|
DECODE(ATTR.STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', STEP1) AS STEP1_TITLE,
|
|
ATTR.STEP2
|
|
FROM PMS_DFMEA_CHANGE_ATTR ATTR
|
|
WHERE OBJID != #{objId}
|
|
AND ATTR.STEP1 = #{step1}
|
|
AND ATTR.STEP2 = #{step2}
|
|
AND ATTR.TARGET_OBJID = #{targetObjId}
|
|
)
|
|
</select>
|
|
|
|
<!-- DFMEA의 설변 적용내용을 저장한다. -->
|
|
<update id="saveStructureChangeInfo" parameterType="map">
|
|
MERGE INTO PMS_DFMEA_CHANGE_ATTR P USING DUAL ON (P.OBJID = #{objId} AND P.TARGET_OBJID = #{targetObjId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.PLAN_COMPLETE_DATE =#{planCompleteDate},
|
|
P.COMPLETE_DATE =#{completeDate},
|
|
P.ACTION_CONTENTS =#{actionContents},
|
|
P.SEVERITY_SCORE =#{severityScore},
|
|
P.INCIDENCE_SCORE =#{incidenceScore},
|
|
P.DETECT_SCORE =#{detectScore},
|
|
P.STEP1 =#{step1},
|
|
P.STEP2 =#{step2}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID,
|
|
P.TARGET_OBJID,
|
|
P.PLAN_COMPLETE_DATE,
|
|
P.COMPLETE_DATE,
|
|
P.ACTION_CONTENTS,
|
|
P.SEVERITY_SCORE,
|
|
P.INCIDENCE_SCORE,
|
|
P.DETECT_SCORE,
|
|
P.STEP1,
|
|
P.STEP2,
|
|
P.REGDATE,
|
|
P.STATUS,
|
|
P.WRITER
|
|
)VALUES(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{planCompleteDate},
|
|
#{completeDate},
|
|
#{actionContents},
|
|
#{severityScore},
|
|
#{incidenceScore},
|
|
#{detectScore},
|
|
#{step1},
|
|
#{step2},
|
|
SYSDATE,
|
|
#{status},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- DFMEA 내용을 저장한다. -->
|
|
<update id="saveDFMEAInfo" parameterType="map">
|
|
MERGE INTO PMS_DFMEA_INFO P USING DUAL ON (P.OBJID = #{objId} AND P.TARGET_OBJID = #{targetObjId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.MASTER_CATEGORY_PART_NO =#{groupPartNo},
|
|
P.MASTER_CATEGORY_OBJID =#{groupObjId},
|
|
P.SUB_CATEGORY_PART_NO =#{categoryPartNo},
|
|
P.SUB_CATEGORY_OBJID =#{categoryObjId},
|
|
P.FILTER_PART_NO =#{attrPartNo},
|
|
P.FILTER_COMMENT =#{attrPartComment},
|
|
P.POTENTIAL_FAIL_FILTER_OBJID =#{attrObjId},
|
|
P.POTENTIAL_IMPACT =#{potentialImpact},
|
|
P.SEVERITY_SCORE =#{severityScore},
|
|
P.SPECIAL_SPEC =#{specialSpec},
|
|
P.POTENTIAL_CAUSE =#{potentialCause},
|
|
P.INCIDENCE_SCORE =#{incidenceScore},
|
|
P.CURRENT_DESIGN_MANAGE_PREVENT =#{currentMngPrevent},
|
|
P.CURRENT_DESIGN_MANAGE_DETECT =#{currentMngDetect},
|
|
P.DETECT_SCORE =#{detectScore},
|
|
P.RECOMMEND_OPTION =#{recommendOption}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID,
|
|
P.TARGET_OBJID,
|
|
P.MASTER_CATEGORY_PART_NO,
|
|
P.MASTER_CATEGORY_OBJID,
|
|
P.SUB_CATEGORY_PART_NO,
|
|
P.SUB_CATEGORY_OBJID,
|
|
P.FILTER_PART_NO,
|
|
P.FILTER_COMMENT,
|
|
P.POTENTIAL_FAIL_FILTER_OBJID,
|
|
P.POTENTIAL_IMPACT,
|
|
P.SEVERITY_SCORE,
|
|
P.SPECIAL_SPEC,
|
|
P.POTENTIAL_CAUSE,
|
|
P.INCIDENCE_SCORE,
|
|
P.CURRENT_DESIGN_MANAGE_PREVENT,
|
|
P.CURRENT_DESIGN_MANAGE_DETECT,
|
|
P.DETECT_SCORE,
|
|
P.RECOMMEND_OPTION,
|
|
P.REGDATE,
|
|
P.STATUS,
|
|
P.WRITER
|
|
)VALUES(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{groupPartNo},
|
|
#{groupObjId},
|
|
#{categoryPartNo},
|
|
#{categoryObjId},
|
|
#{attrPartNo},
|
|
#{attrPartComment},
|
|
#{attrObjId},
|
|
#{potentialImpact},
|
|
#{severityScore},
|
|
#{specialSpec},
|
|
#{potentialCause},
|
|
#{incidenceScore},
|
|
#{currentMngPrevent},
|
|
#{currentMngDetect},
|
|
#{detectScore},
|
|
#{recommendOption},
|
|
SYSDATE,
|
|
#{status},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- DFMEA 내용을 삭제한다. -->
|
|
<delete id="deleteDFMEAInfo" parameterType="map">
|
|
DELETE PMS_DFMEA_INFO WHERE OBJID = #{objId}
|
|
</delete>
|
|
|
|
<!-- 설변적용 내용의 이력을 가져온다. -->
|
|
<select id="dfmeaChangeStructureList" parameterType="map" resultType="map">
|
|
SELECT A.* , ROW_NUMBER() OVER(ORDER BY A.COMPLETE_DATE DESC NULLS LAST) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
ATTR.OBJID,
|
|
ATTR.TARGET_OBJID,
|
|
TO_CHAR(ATTR.PLAN_COMPLETE_DATE,'YYYY-MM-DD') AS PLAN_COMPLETE_DATE,
|
|
TO_CHAR(ATTR.COMPLETE_DATE,'YYYY-MM-DD') AS COMPLETE_DATE,
|
|
ATTR.ACTION_CONTENTS,
|
|
ATTR.SEVERITY_SCORE,
|
|
ATTR.INCIDENCE_SCORE,
|
|
ATTR.DETECT_SCORE,
|
|
ATTR.STEP1,
|
|
DECODE(ATTR.STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', ATTR.STEP1) AS STEP1_TITLE,
|
|
ATTR.STEP2,
|
|
TO_CHAR(ATTR.REGDATE,'YYYY-MM-DD') AS REGDATE,
|
|
ATTR.STATUS,
|
|
ATTR.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = ATTR.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = ATTR.WRITER) AS DEPT_NAME,
|
|
(TO_NUMBER(NVL(ATTR.SEVERITY_SCORE,0))*TO_NUMBER(NVL(ATTR.INCIDENCE_SCORE,0))*TO_NUMBER(NVL(ATTR.DETECT_SCORE,0))) AS APPLY_RPN
|
|
FROM PMS_DFMEA_CHANGE_ATTR ATTR
|
|
WHERE ATTR.TARGET_OBJID = #{targetObjId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 갑지의 목록을 가져온다.. -->
|
|
<select id="designCheckListBaseInfoList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT INFO.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM
|
|
FROM(
|
|
SELECT CNT_INFO.*
|
|
FROM(
|
|
SELECT
|
|
BASE_INFO.OBJID,
|
|
BASE_INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = BASE_INFO.OEM_OBJID) AS OEM_NAME,
|
|
BASE_INFO.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS MODEL_CODE,
|
|
BASE_INFO.PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = BASE_INFO.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
BASE_INFO.PRODUCT_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = BASE_INFO.PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
BASE_INFO.TITLE,
|
|
BASE_INFO.L1_PIC,
|
|
BASE_INFO.L2_PIC,
|
|
BASE_INFO.L3_PIC,
|
|
BASE_INFO.L4_PIC,
|
|
BASE_INFO.INSTL_PIC,
|
|
BASE_INFO.REGDATE,
|
|
TO_CHAR(BASE_INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
BASE_INFO.STATUS,
|
|
CASE
|
|
WHEN L1_RESULT_DATE IS NULL AND L1_SUBMIT_DATE IS NULL THEN 'L1작성'
|
|
WHEN L1_RESULT_DATE IS NULL AND L1_SUBMIT_DATE IS NOT NULL THEN 'L1 제출'
|
|
WHEN L1_RESULT_DATE IS NOT NULL AND L1_SUBMIT_DATE IS NOT NULL AND L2_RESULT_DATE IS NULL AND L2_SUBMIT_DATE IS NULL THEN 'L1 확인완료'
|
|
WHEN L2_RESULT_DATE IS NULL AND L2_SUBMIT_DATE IS NULL THEN 'L2 작성중'
|
|
WHEN L2_RESULT_DATE IS NULL AND L2_SUBMIT_DATE IS NOT NULL THEN 'L2 제출'
|
|
WHEN L2_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL AND L3_RESULT_DATE IS NULL AND L3_SUBMIT_DATE IS NULL THEN 'L2 확인완료'
|
|
WHEN L3_RESULT_DATE IS NULL AND L3_SUBMIT_DATE IS NULL THEN 'L3 작성중'
|
|
WHEN L3_RESULT_DATE IS NULL AND L3_SUBMIT_DATE IS NOT NULL THEN 'L3 제출'
|
|
WHEN L3_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL AND L4_RESULT_DATE IS NULL AND L4_SUBMIT_DATE IS NULL THEN 'L3 확인완료'
|
|
WHEN L4_RESULT_DATE IS NULL AND L4_SUBMIT_DATE IS NULL THEN 'L4 작성중'
|
|
WHEN L4_RESULT_DATE IS NULL AND L4_SUBMIT_DATE IS NOT NULL THEN 'L4 제출'
|
|
WHEN L4_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL AND INSTL_RESULT_DATE IS NULL AND INSTL_SUBMIT_DATE IS NULL THEN 'L4 확인완료'
|
|
WHEN INSTL_RESULT_DATE IS NULL AND INSTL_SUBMIT_DATE IS NULL THEN 'INSTL 작성중'
|
|
WHEN INSTL_RESULT_DATE IS NULL AND INSTL_SUBMIT_DATE IS NOT NULL THEN 'INSTL 제출'
|
|
WHEN INSTL_RESULT_DATE IS NOT NULL AND INSTL_SUBMIT_DATE IS NOT NULL AND EO_RESULT_DATE IS NULL AND EO_SUBMIT_DATE IS NULL THEN 'INSTL 확인완료'
|
|
WHEN EO_RESULT_DATE IS NULL AND EO_SUBMIT_DATE IS NULL THEN 'EO 작성중'
|
|
WHEN EO_RESULT_DATE IS NULL AND EO_SUBMIT_DATE IS NOT NULL THEN 'EO 제출'
|
|
WHEN EO_RESULT_DATE IS NOT NULL AND EO_SUBMIT_DATE IS NOT NULL THEN 'EO 확인완료'
|
|
ELSE '작성'
|
|
END AS STATUS_TITLE,
|
|
CASE
|
|
WHEN INSTL_RESULT_DATE IS NOT NULL AND INSTL_SUBMIT_DATE IS NOT NULL THEN 'Y'
|
|
ELSE 'N'
|
|
END AS APPROVAL_FLAG,
|
|
BASE_INFO.APPROVAL_STATUS,
|
|
CASE
|
|
WHEN BASE_INFO.APPROVAL_STATUS IS NULL THEN '미결재'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'APPROVAL' THEN '결재중'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'REJECT' THEN '반려'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'RELEASE' THEN '결재완료'
|
|
ELSE ''
|
|
END AS APPROVAL_STATUS_TITLE,
|
|
BASE_INFO.CURRENT_ROUTE_OBJID,
|
|
BASE_INFO.CURRENT_ROUTE_OBJID AS ROUTE_OBJID,
|
|
(SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = BASE_INFO.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID,
|
|
BASE_INFO.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.WRITER) AS DEPT_NAME,
|
|
(SELECT COUNT(1) CHECK_LIST_CNT FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID) AS CHECK_LIST_CNT,
|
|
CNT_INFO.TOTAL_CHECK_LIST_CNT,
|
|
CNT_INFO.APPLY_CNT,
|
|
CNT_INFO.REVIEW_CNT,
|
|
CNT_INFO.UNAPPLY_CNT,
|
|
CNT_INFO.TOTAL_PROBLEM_CONTINUAL_CNT
|
|
FROM PMS_DESIGN_CHK_LIST_BASE_INFO BASE_INFO,
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SUM(RESULT_APPLY_COUNT) AS APPLY_CNT,
|
|
SUM(RESULT_REVIEW_COUNT) AS REVIEW_CNT,
|
|
SUM(RESULT_UNAPPLY_COUNT) AS UNAPPLY_CNT,
|
|
SUM(CHECK_LIST_CNT) AS TOTAL_CHECK_LIST_CNT,
|
|
SUM(PROBLEM_CONTINUAL_CNT) AS TOTAL_PROBLEM_CONTINUAL_CNT
|
|
FROM(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'APPLY' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_APPLY_COUNT,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'REVIEW' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_REVIEW_COUNT,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'UNAPPLY' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_UNAPPLY_COUNT,
|
|
1 AS CHECK_LIST_CNT,
|
|
(SELECT COUNT(1) FROM PMS_REL_CHK_LIST_PROBLEM REL WHERE REL.TARGET_OBJID = INFO.OBJID) AS PROBLEM_CONTINUAL_CNT
|
|
FROM PMS_DESIGN_CHK_LIST_INFO INFO
|
|
)GROUP BY TARGET_OBJID
|
|
)CNT_INFO
|
|
WHERE 1=1
|
|
AND BASE_INFO.OBJID = CNT_INFO.TARGET_OBJID(+)
|
|
)CNT_INFO
|
|
WHERE 1=1
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PRODUCT_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
) INFO
|
|
WHERE 1=1
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 갑지의 목록 Count를 가져온다.. -->
|
|
<select id="designCheckListBaseInfoListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
BASE_INFO.OBJID,
|
|
BASE_INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = BASE_INFO.OEM_OBJID) AS OEM_NAME,
|
|
BASE_INFO.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS MODEL_CODE,
|
|
BASE_INFO.PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = BASE_INFO.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
BASE_INFO.PRODUCT_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = BASE_INFO.PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
BASE_INFO.TITLE,
|
|
BASE_INFO.L1_PIC,
|
|
BASE_INFO.L2_PIC,
|
|
BASE_INFO.L3_PIC,
|
|
BASE_INFO.L4_PIC,
|
|
BASE_INFO.INSTL_PIC,
|
|
BASE_INFO.REGDATE,
|
|
TO_CHAR(BASE_INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
BASE_INFO.STATUS,
|
|
CASE
|
|
WHEN L1_RESULT_DATE IS NULL AND L1_SUBMIT_DATE IS NULL THEN '작성'
|
|
WHEN L1_RESULT_DATE IS NULL AND L1_SUBMIT_DATE IS NOT NULL THEN 'L1 제출'
|
|
WHEN L1_RESULT_DATE IS NOT NULL AND L1_SUBMIT_DATE IS NOT NULL THEN 'L1 확인완료'
|
|
WHEN L2_RESULT_DATE IS NULL AND L2_SUBMIT_DATE IS NULL THEN 'L2 진행중'
|
|
WHEN L2_RESULT_DATE IS NULL AND L2_SUBMIT_DATE IS NOT NULL THEN 'L2 제출'
|
|
WHEN L2_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL THEN 'L2 확인완료'
|
|
WHEN L3_RESULT_DATE IS NULL AND L3_SUBMIT_DATE IS NULL THEN 'L3 진행중'
|
|
WHEN L3_RESULT_DATE IS NULL AND L3_SUBMIT_DATE IS NOT NULL THEN 'L3 제출'
|
|
WHEN L3_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL THEN 'L3 확인완료'
|
|
WHEN L4_RESULT_DATE IS NULL AND L4_SUBMIT_DATE IS NULL THEN 'L4 진행중'
|
|
WHEN L4_RESULT_DATE IS NULL AND L4_SUBMIT_DATE IS NOT NULL THEN 'L4 제출'
|
|
WHEN L4_RESULT_DATE IS NOT NULL AND L2_SUBMIT_DATE IS NOT NULL THEN 'L4 확인완료'
|
|
WHEN INSTL_RESULT_DATE IS NULL AND INSTL_SUBMIT_DATE IS NULL THEN 'INSTL 진행중'
|
|
WHEN INSTL_RESULT_DATE IS NULL AND INSTL_SUBMIT_DATE IS NOT NULL THEN 'INSTL 제출'
|
|
WHEN INSTL_RESULT_DATE IS NOT NULL AND INSTL_SUBMIT_DATE IS NOT NULL THEN 'INSTL 확인완료'
|
|
WHEN EO_RESULT_DATE IS NULL AND EO_SUBMIT_DATE IS NULL THEN 'EO 진행중'
|
|
WHEN EO_RESULT_DATE IS NULL AND EO_SUBMIT_DATE IS NOT NULL THEN 'EO 제출'
|
|
WHEN EO_RESULT_DATE IS NOT NULL AND EO_SUBMIT_DATE IS NOT NULL THEN 'EO 확인완료'
|
|
ELSE '작성'
|
|
END AS STATUS_TITLE,
|
|
BASE_INFO.APPROVAL_STATUS,
|
|
CASE
|
|
WHEN BASE_INFO.APPROVAL_STATUS IS NULL THEN '미결재'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'APPROVAL' THEN '결재중'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'REJECT' THEN '반려'
|
|
WHEN UPPER(BASE_INFO.APPROVAL_STATUS) = 'RELEASE' THEN '결재완료'
|
|
ELSE ''
|
|
END AS APPROVAL_STATUS_TITLE,
|
|
BASE_INFO.CURRENT_ROUTE_OBJID,
|
|
BASE_INFO.CURRENT_ROUTE_OBJID AS ROUTE_OBJID,
|
|
(SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = BASE_INFO.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID,
|
|
BASE_INFO.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.WRITER) AS USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.WRITER) AS DEPT_NAME,
|
|
(SELECT COUNT(1) CHECK_LIST_CNT FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID) AS CHECK_LIST_CNT,
|
|
CNT_INFO.TOTAL_CHECK_LIST_CNT,
|
|
CNT_INFO.APPLY_CNT,
|
|
CNT_INFO.REVIEW_CNT,
|
|
CNT_INFO.UNAPPLY_CNT,
|
|
CNT_INFO.TOTAL_PROBLEM_CONTINUAL_CNT
|
|
FROM PMS_DESIGN_CHK_LIST_BASE_INFO BASE_INFO,
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SUM(RESULT_APPLY_COUNT) AS APPLY_CNT,
|
|
SUM(RESULT_REVIEW_COUNT) AS REVIEW_CNT,
|
|
SUM(RESULT_UNAPPLY_COUNT) AS UNAPPLY_CNT,
|
|
SUM(CHECK_LIST_CNT) AS TOTAL_CHECK_LIST_CNT,
|
|
SUM(PROBLEM_CONTINUAL_CNT) AS TOTAL_PROBLEM_CONTINUAL_CNT
|
|
FROM(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'APPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'APPLY' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_APPLY_COUNT,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'REVIEW' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'REVIEW' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_REVIEW_COUNT,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L4) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L3) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L2) = 'UNAPPLY' THEN 1
|
|
WHEN UPPER(INFO.RATING_L1) = 'UNAPPLY' THEN 1
|
|
ELSE 0
|
|
END AS RESULT_UNAPPLY_COUNT,
|
|
1 AS CHECK_LIST_CNT,
|
|
(SELECT COUNT(1) FROM PMS_REL_CHK_LIST_PROBLEM REL WHERE REL.TARGET_OBJID = INFO.OBJID) AS PROBLEM_CONTINUAL_CNT
|
|
FROM PMS_DESIGN_CHK_LIST_INFO INFO
|
|
)GROUP BY TARGET_OBJID
|
|
)CNT_INFO
|
|
WHERE 1=1
|
|
AND BASE_INFO.OBJID = CNT_INFO.TARGET_OBJID(+)
|
|
)CNT_INFO
|
|
WHERE 1=1
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PRODUCT_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트의 갑지 상세정보를 가져온다. -->
|
|
<select id="getCheckListBaseInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY BASE_INFO.REGDATE DESC) AS RNUM,
|
|
BASE_INFO.OBJID,
|
|
BASE_INFO.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = BASE_INFO.OEM_OBJID) AS OEM_NAME,
|
|
BASE_INFO.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = BASE_INFO.CAR_OBJID) AS MODEL_CODE,
|
|
BASE_INFO.PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = BASE_INFO.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
BASE_INFO.PRODUCT_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = BASE_INFO.PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
BASE_INFO.TITLE,
|
|
BASE_INFO.L1_PIC,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L1_PIC) AS L1_USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L1_PIC) AS L1_DEPT_NAME,
|
|
BASE_INFO.L2_PIC,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L2_PIC) AS L2_USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L2_PIC) AS L2_DEPT_NAME,
|
|
BASE_INFO.L3_PIC,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L3_PIC) AS L3_USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L3_PIC) AS L3_DEPT_NAME,
|
|
BASE_INFO.L4_PIC,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L4_PIC) AS L4_USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.L4_PIC) AS L4_DEPT_NAME,
|
|
BASE_INFO.INSTL_PIC,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.INSTL_PIC) AS INSTL_USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = BASE_INFO.INSTL_PIC) AS INSTL_DEPT_NAME,
|
|
BASE_INFO.REGDATE,
|
|
TO_CHAR(BASE_INFO.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
BASE_INFO.STATUS,
|
|
BASE_INFO.WRITER,
|
|
REPLACE(BASE_INFO.L1_RESULT_COMMENT,chr(13)||chr(10), '\n') AS L1_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.L1_RESULT_DATE,'YYYY-MM-DD') AS L1_RESULT_DATE,
|
|
REPLACE(BASE_INFO.L2_RESULT_COMMENT,chr(13)||chr(10), '\n') AS L2_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.L2_RESULT_DATE,'YYYY-MM-DD') AS L2_RESULT_DATE,
|
|
REPLACE(BASE_INFO.L3_RESULT_COMMENT,chr(13)||chr(10), '\n') AS L3_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.L3_RESULT_DATE,'YYYY-MM-DD') AS L3_RESULT_DATE,
|
|
REPLACE(BASE_INFO.L4_RESULT_COMMENT,chr(13)||chr(10), '\n') AS L4_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.L4_RESULT_DATE,'YYYY-MM-DD') AS L4_RESULT_DATE,
|
|
REPLACE(BASE_INFO.INSTL_RESULT_COMMENT,chr(13)||chr(10), '\n') AS INSTL_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.INSTL_RESULT_DATE,'YYYY-MM-DD') AS INSTL_RESULT_DATE,
|
|
REPLACE(BASE_INFO.EO_RESULT_COMMENT,chr(13)||chr(10), '\n') AS EO_RESULT_COMMENT,
|
|
TO_CHAR(BASE_INFO.EO_RESULT_DATE,'YYYY-MM-DD') AS EO_RESULT_DATE
|
|
FROM PMS_DESIGN_CHK_LIST_BASE_INFO BASE_INFO
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 갑지의 중복 여부를 확인한다. -->
|
|
<select id="checkCheckListBaseInfoDuplicate" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT FROM(
|
|
SELECT
|
|
OBJID,
|
|
OEM_OBJID,
|
|
CAR_OBJID,
|
|
PRODUCT_GROUP_OBJID,
|
|
PRODUCT_OBJID,
|
|
L1_PIC,
|
|
L2_PIC,
|
|
L3_PIC,
|
|
L4_PIC,
|
|
INSTL_PIC,
|
|
REGDATE,
|
|
STATUS,
|
|
WRITER
|
|
FROM PMS_DESIGN_CHK_LIST_BASE_INFO
|
|
WHERE OBJID != #{objId}
|
|
AND OEM_OBJID = #{oemObjId}
|
|
AND CAR_OBJID = #{carObjId}
|
|
AND PRODUCT_GROUP_OBJID = #{productGroupObjId}
|
|
AND PRODUCT_OBJID = #{productObjId}
|
|
)
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트의 갑지 정보를 저장한다. -->
|
|
<update id="saveCheckListBaseInfo" parameterType="map">
|
|
MERGE INTO PMS_DESIGN_CHK_LIST_BASE_INFO P USING DUAL ON (P.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.OEM_OBJID = #{oemObjId},
|
|
P.CAR_OBJID = #{carObjId},
|
|
P.PRODUCT_GROUP_OBJID = #{productGroupObjId},
|
|
P.PRODUCT_OBJID = #{productObjId},
|
|
P.TITLE = #{baseInfoTitle},
|
|
P.L1_PIC = #{l1PICId},
|
|
P.L2_PIC = #{l2PICId},
|
|
P.L3_PIC = #{l3PICId},
|
|
P.L4_PIC = #{l4PICId},
|
|
P.INSTL_PIC = #{instlPICId},
|
|
P.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
OBJID,
|
|
OEM_OBJID,
|
|
CAR_OBJID,
|
|
PRODUCT_GROUP_OBJID,
|
|
PRODUCT_OBJID,
|
|
TITLE,
|
|
L1_PIC,
|
|
L2_PIC,
|
|
L3_PIC,
|
|
L4_PIC,
|
|
INSTL_PIC,
|
|
REGDATE,
|
|
STATUS,
|
|
WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{oemObjId},
|
|
#{carObjId},
|
|
#{productGroupObjId},
|
|
#{productObjId},
|
|
#{baseInfoTitle},
|
|
#{l1PICId},
|
|
#{l2PICId},
|
|
#{l3PICId},
|
|
#{l4PICId},
|
|
#{instlPICId},
|
|
SYSDATE,
|
|
#{status},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- 설계 체크리스트 갑지에 연결된 체크리스트 건수 가져온다. -->
|
|
<select id="getConnectCheckListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
COUNT(1) AS CNT
|
|
FROM(
|
|
SELECT
|
|
(SELECT PRODUCT_OBJID FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS PRODUCT_OBJID,
|
|
INFO.TARGET_OBJID
|
|
FROM PMS_DESIGN_CHK_LIST_INFO INFO
|
|
)info
|
|
WHERE INFO.TARGET_OBJID = #{objId}
|
|
AND INFO.PRODUCT_OBJID = #{productObjId}
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 갑지에 연결된 체크리스트 목록을 가져온다. -->
|
|
<select id="getDesignCheckList" parameterType="map" resultType="map">
|
|
SELECT
|
|
INFO.*
|
|
FROM(
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.TARGET_OBJID,
|
|
INFO.CHECK_LIST_GROUP_OBJID,
|
|
(SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = INFO.CHECK_LIST_GROUP_OBJID) AS GROUP_NAME,
|
|
(SELECT SEQ FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = INFO.CHECK_LIST_GROUP_OBJID) AS GROUP_SEQ,
|
|
(SELECT TARGET_OBJID FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = INFO.CHECK_LIST_GROUP_OBJID) AS GROUP_PRODUCT_OBJID,
|
|
INFO.CHECK_LIST_CATEGORY_OBJID,
|
|
(SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = INFO.CHECK_LIST_CATEGORY_OBJID) AS CATEGORY_NAME,
|
|
(SELECT SEQ FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = INFO.CHECK_LIST_CATEGORY_OBJID) AS CATEGORY_SEQ,
|
|
(SELECT PRODUCT_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = INFO.CHECK_LIST_CATEGORY_OBJID) AS CATEGORY_PRODUCT_OBJID,
|
|
INFO.CHECK_LIST_ATTRIBUTE_OBJID,
|
|
(SELECT SEQ FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS ATTRIBUTE_SEQ,
|
|
(SELECT ATTRIBUTE_NAME FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS ATTRIBUTE_NAME,
|
|
(SELECT PRODUCT_OBJID FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS ATTR_PRODUCT_OBJID,
|
|
REPLACE(NVL2(INFO.CHECK_OPTION,INFO.CHECK_OPTION,(SELECT CHECK_OPTION FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID)), chr(13)||chr(10), '\n') AS CHECK_OPTION,
|
|
REPLACE(NVL2(INFO.CHECK_BASE,INFO.CHECK_BASE,(SELECT CHECK_BASE FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID)), chr(13)||chr(10), '\n') AS CHECK_BASE,
|
|
UPPER(INFO.RATING_L1) AS RATING_L1,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L1) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L1) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L1) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_L1 IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_L1
|
|
END AS RATING_L1_TITLE,
|
|
INFO.RESULT_L1,
|
|
REPLACE(INFO.COMMENT_L1,chr(13)||chr(10), '\n') AS COMMENT_L1,
|
|
INFO.RESULT_DATE_L1,
|
|
TO_CHAR(INFO.RESULT_DATE_L1,'YYYY-MM-DD') AS RESULT_DATE_L1_TITLE,
|
|
UPPER(INFO.RATING_L2) AS RATING_L2,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L2) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L2) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L2) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_L2 IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_L2
|
|
END AS RATING_L2_TITLE,
|
|
INFO.RESULT_L2,
|
|
REPLACE(INFO.COMMENT_L2,chr(13)||chr(10), '\n') AS COMMENT_L2,
|
|
INFO.RESULT_DATE_L2,
|
|
TO_CHAR(INFO.RESULT_DATE_L2,'YYYY-MM-DD') AS RESULT_DATE_L2_TITLE,
|
|
UPPER(INFO.RATING_L3) AS RATING_L3,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L3) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L3) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L3) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_L3 IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_L3
|
|
END AS RATING_L3_TITLE,
|
|
INFO.RESULT_L3,
|
|
REPLACE(INFO.COMMENT_L3,chr(13)||chr(10), '\n') AS COMMENT_L3,
|
|
INFO.RESULT_DATE_L3,
|
|
TO_CHAR(INFO.RESULT_DATE_L3,'YYYY-MM-DD') AS RESULT_DATE_L3_TITLE,
|
|
UPPER(INFO.RATING_L4) AS RATING_L4,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L4) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L4) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L4) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_L4 IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_L4
|
|
END AS RATING_L4_TITLE,
|
|
INFO.RESULT_L4,
|
|
REPLACE(INFO.COMMENT_L4,chr(13)||chr(10), '\n') AS COMMENT_L4,
|
|
INFO.RESULT_DATE_L4,
|
|
TO_CHAR(INFO.RESULT_DATE_L4,'YYYY-MM-DD') AS RESULT_DATE_L4_TITLE,
|
|
UPPER(INFO.RATING_INSTL) AS RATING_INSTL,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_INSTL IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_INSTL
|
|
END AS RATING_INSTL_TITLE,
|
|
INFO.RESULT_INSTL,
|
|
REPLACE(INFO.COMMENT_INSTL,chr(13)||chr(10), '\n') AS COMMENT_INSTL,
|
|
INFO.RESULT_DATE_INSTL,
|
|
TO_CHAR(INFO.RESULT_DATE_INSTL,'YYYY-MM-DD') AS RESULT_DATE_INSTL_TITLE,
|
|
UPPER(INFO.RATING_EO) AS RATING_EO,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_EO) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_EO) = 'UNAPPLY' THEN 'X'
|
|
WHEN INFO.RATING_EO IS NULL THEN '미등록'
|
|
ELSE INFO.RATING_EO
|
|
END AS RATING_EO_TITLE,
|
|
INFO.RESULT_EO,
|
|
REPLACE(INFO.COMMENT_EO,chr(13)||chr(10), '\n') AS COMMENT_EO,
|
|
INFO.RESULT_DATE_EO,
|
|
TO_CHAR(INFO.RESULT_DATE_EO,'YYYY-MM-DD') AS RESULT_DATE_EO_TITLE,
|
|
CASE
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{eoDocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_EO IS NOT NULL THEN REPLACE(INFO.COMMENT_EO,chr(13)||chr(10), '\n')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{instlDocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_INSTL IS NOT NULL THEN REPLACE(INFO.COMMENT_INSTL,chr(13)||chr(10), '\n')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l4DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_L4 IS NOT NULL THEN REPLACE(INFO.COMMENT_L4,chr(13)||chr(10), '\n')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l3DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_L3 IS NOT NULL THEN REPLACE(INFO.COMMENT_L3,chr(13)||chr(10), '\n')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l2DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_L2 IS NOT NULL THEN REPLACE(INFO.COMMENT_L2,chr(13)||chr(10), '\n')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l1DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 OR INFO.COMMENT_L1 IS NOT NULL THEN REPLACE(INFO.COMMENT_L1,chr(13)||chr(10), '\n')
|
|
ELSE ''
|
|
END AS LAST_CHECK_RESULT_COMMENT,
|
|
CASE
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{eoDocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{eoDocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{instlDocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{instlDocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l4DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l4DocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l3DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l3DocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l2DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l2DocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
WHEN (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l1DocType} AND UPPER(STATUS) = 'ACTIVE') > 0 THEN (SELECT OBJID FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = INFO.OBJID AND DOC_TYPE = #{l1DocType} AND UPPER(STATUS) = 'ACTIVE')
|
|
ELSE null
|
|
END AS LAST_CHECK_RESULT_FILE_OBJID,
|
|
CASE
|
|
WHEN INFO.RESULT_DATE_EO IS NOT NULL THEN 'EO 평가완료'
|
|
WHEN INFO.RESULT_DATE_INSTL IS NOT NULL THEN 'INSTL 평가완료'
|
|
WHEN INFO.RESULT_DATE_L4 IS NOT NULL THEN 'L4 평가완료'
|
|
WHEN INFO.RESULT_DATE_L3 IS NOT NULL THEN 'L3 평가완료'
|
|
WHEN INFO.RESULT_DATE_L2 IS NOT NULL THEN 'L2 평가완료'
|
|
WHEN INFO.RESULT_DATE_L1 IS NOT NULL THEN 'L1 평가완료'
|
|
ELSE ''
|
|
END AS LAST_RESULT,
|
|
UPPER(INFO.RELATION_TYPE) AS RELATION_TYPE,
|
|
CASE
|
|
WHEN UPPER(INFO.RELATION_TYPE) = 'UNRELATE' THEN '-'
|
|
WHEN UPPER(INFO.RELATION_TYPE) = 'RELATED' THEN '○'
|
|
ELSE ''
|
|
END AS RELATION_TYPE_TITLE,
|
|
INFO.REGDATE,
|
|
INFO.STATUS,
|
|
INFO.STATUS AS STATUS_TITLE,
|
|
INFO.WRITER,
|
|
(SELECT COUNT(1) FROM PMS_REL_CHK_LIST_PROBLEM REL WHERE REL.TARGET_OBJID = INFO.OBJID) AS REL_CNT
|
|
FROM PMS_DESIGN_CHK_LIST_INFO INFO
|
|
)INFO
|
|
WHERE INFO.TARGET_OBJID = #{targetObjId}
|
|
ORDER BY INFO.GROUP_SEQ ASC NULLS LAST,INFO.CATEGORY_SEQ ASC NULLS LAST,INFO.ATTRIBUTE_SEQ ASC NULLS LAST
|
|
<!-- AND INFO.GROUP_PRODUCT_OBJID = #{productObjId} -->
|
|
<!-- AND INFO.CATEGORY_PRODUCT_OBJID = #{productObjId} -->
|
|
<!-- AND INFO.ATTR_PRODUCT_OBJID = #{productObjId} -->
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 갑지의 제품에 해당하는 체크리스트 템플릿 목록을 가져온다. -->
|
|
<select id="getDesignCheckListTemplate" parameterType="map" resultType="map">
|
|
SELECT
|
|
CHECK_GROUP.OBJID AS GROUP_OBJID,
|
|
CATEGORY.OBJID AS CATEGORY_OBJID,
|
|
ATTR.OBJID AS ATTRIBUTE_OBJID,
|
|
ATTR.PRODUCT_OBJID,
|
|
ATTR.ATTRIBUTE_NAME,
|
|
ATTR.CHECK_OPTION,
|
|
ATTR.CHECK_BASE
|
|
FROM
|
|
DESIGN_CHECK_LIST_ATTRIBUTE ATTR,
|
|
DESIGN_CHECK_LIST_GROUP CHECK_GROUP,
|
|
DESIGN_CHECK_LIST_CATEGORY CATEGORY
|
|
WHERE ATTR.PRODUCT_OBJID = #{productObjId}
|
|
AND ATTR.PRODUCT_OBJID = CATEGORY.PRODUCT_OBJID
|
|
AND ATTR.PRODUCT_OBJID = CHECK_GROUP.TARGET_OBJID
|
|
AND ATTR.CATEGORY_OBJID = CATEGORY.OBJID
|
|
AND CATEGORY.GROUP_OBJID = CHECK_GROUP.OBJID
|
|
AND UPPER(CHECK_GROUP.STATUS) = 'ACTIVE'
|
|
AND UPPER(CATEGORY.STATUS) = 'ACTIVE'
|
|
AND UPPER(ATTR.STATUS) = 'ACTIVE'
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트(갑지X)를 merge 한다. -->
|
|
<update id="mergeCheckListInfo" parameterType="map">
|
|
MERGE INTO PMS_DESIGN_CHK_LIST_INFO P USING DUAL ON (P.OBJID = #{objId} AND P.TARGET_OBJID = #{targetObjId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
CHECK_LIST_GROUP_OBJID = #{groupObjId},
|
|
CHECK_LIST_CATEGORY_OBJID = #{categoryObjId},
|
|
CHECK_LIST_ATTRIBUTE_OBJID = #{attributeObjId},
|
|
CHECK_OPTION = #{checkOption},
|
|
CHECK_BASE = #{checkBase},
|
|
RELATION_TYPE = #{relationType}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
CHECK_LIST_GROUP_OBJID,
|
|
CHECK_LIST_CATEGORY_OBJID,
|
|
CHECK_LIST_ATTRIBUTE_OBJID,
|
|
CHECK_OPTION,
|
|
CHECK_BASE,
|
|
RELATION_TYPE,
|
|
REGDATE,
|
|
STATUS,
|
|
WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{groupObjId},
|
|
#{categoryObjId},
|
|
#{attributeObjId},
|
|
#{checkOption},
|
|
#{checkBase},
|
|
#{relationType},
|
|
SYSDATE,
|
|
#{status},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- 설계 체크리스트(갑지X)를 delete 한다. -->
|
|
<delete id="deleteCheckListInfo" parameterType="map">
|
|
DELETE PMS_DESIGN_CHK_LIST_INFO WHERE OBJID = #{objId} AND TARGET_OBJID = #{targetObjId}
|
|
</delete>
|
|
|
|
<!-- 설계 체크리스트 상세 정보를 가져온다. -->
|
|
<select id="getCheckListDetailInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
INFO.*
|
|
FROM(
|
|
SELECT
|
|
INFO.OBJID,
|
|
INFO.TARGET_OBJID,
|
|
INFO.CHECK_LIST_GROUP_OBJID,
|
|
(SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = INFO.CHECK_LIST_GROUP_OBJID) AS GROUP_NAME,
|
|
(SELECT TARGET_OBJID FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = INFO.CHECK_LIST_GROUP_OBJID) AS GROUP_PRODUCT_OBJID,
|
|
INFO.CHECK_LIST_CATEGORY_OBJID,
|
|
(SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = INFO.CHECK_LIST_CATEGORY_OBJID) AS CATEGORY_NAME,
|
|
(SELECT PRODUCT_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = INFO.CHECK_LIST_CATEGORY_OBJID) AS CATEGORY_PRODUCT_OBJID,
|
|
INFO.CHECK_LIST_ATTRIBUTE_OBJID,
|
|
(SELECT ATTRIBUTE_NAME FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS ATTRIBUTE_NAME,
|
|
(SELECT PRODUCT_OBJID FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID) AS ATTR_PRODUCT_OBJID,
|
|
REPLACE(NVL2(INFO.CHECK_OPTION,INFO.CHECK_OPTION,(SELECT CHECK_OPTION FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID)), chr(13)||chr(10), '\n') AS CHECK_OPTION,
|
|
REPLACE(NVL2(INFO.CHECK_BASE,INFO.CHECK_BASE,(SELECT CHECK_BASE FROM DESIGN_CHECK_LIST_ATTRIBUTE WHERE OBJID = INFO.CHECK_LIST_ATTRIBUTE_OBJID)), chr(13)||chr(10), '\n') AS CHECK_BASE,
|
|
UPPER(INFO.RATING_L1) AS RATING_L1,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L1) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L1) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L1) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_L1_TITLE,
|
|
INFO.RESULT_L1,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_L1) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_L1) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_L1_TITLE,
|
|
INFO.COMMENT_L1,
|
|
INFO.RESULT_DATE_L1,
|
|
TO_CHAR(INFO.RESULT_DATE_L1, 'YYYY-MM-DD') AS RESULT_DATE_L1_TITLE,
|
|
UPPER(INFO.RATING_L2) AS RATING_L2,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L2) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L2) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L2) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_L2_TITLE,
|
|
INFO.RESULT_L2,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_L2) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_L2) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_L2_TITLE,
|
|
INFO.COMMENT_L2,
|
|
INFO.RESULT_DATE_L2,
|
|
TO_CHAR(INFO.RESULT_DATE_L2, 'YYYY-MM-DD') AS RESULT_DATE_L2_TITLE,
|
|
UPPER(INFO.RATING_L3) AS RATING_L3,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L3) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L3) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L3) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_L3_TITLE,
|
|
INFO.RESULT_L3,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_L3) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_L3) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_L3_TITLE,
|
|
INFO.COMMENT_L3,
|
|
INFO.RESULT_DATE_L3,
|
|
TO_CHAR(INFO.RESULT_DATE_L3, 'YYYY-MM-DD') AS RESULT_DATE_L3_TITLE,
|
|
UPPER(INFO.RATING_L4) AS RATING_L4,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_L4) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_L4) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_L4) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_L4_TITLE,
|
|
INFO.RESULT_L4,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_L4) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_L4) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_L4_TITLE,
|
|
INFO.COMMENT_L4,
|
|
INFO.RESULT_DATE_L4,
|
|
TO_CHAR(INFO.RESULT_DATE_L4, 'YYYY-MM-DD') AS RESULT_DATE_L4_TITLE,
|
|
UPPER(INFO.RATING_INSTL) AS RATING_INSTL,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_INSTL) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_INSTL_TITLE,
|
|
INFO.RESULT_INSTL,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_INSTL) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_INSTL) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_INSTL_TITLE,
|
|
INFO.COMMENT_INSTL,
|
|
INFO.RESULT_DATE_INSTL,
|
|
TO_CHAR(INFO.RESULT_DATE_INSTL, 'YYYY-MM-DD') AS RESULT_DATE_INSTL_TITLE,
|
|
UPPER(INFO.RATING_EO) AS RATING_EO,
|
|
CASE
|
|
WHEN UPPER(INFO.RATING_EO) = 'APPLY' THEN '●'
|
|
WHEN UPPER(INFO.RATING_EO) = 'REVIEW' THEN '◐'
|
|
WHEN UPPER(INFO.RATING_EO) = 'UNAPPLY' THEN 'X'
|
|
ELSE ''
|
|
END AS RATING_EO_TITLE,
|
|
INFO.RESULT_EO,
|
|
CASE
|
|
WHEN UPPER(INFO.RESULT_EO) = 'OK' THEN '승인'
|
|
WHEN UPPER(INFO.RESULT_EO) = 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_EO_TITLE,
|
|
INFO.COMMENT_EO,
|
|
INFO.RESULT_DATE_EO,
|
|
TO_CHAR(INFO.RESULT_DATE_EO, 'YYYY-MM-DD') AS RESULT_DATE_EO_TITLE,
|
|
CASE
|
|
WHEN INFO.COMMENT_EO IS NOT NULL THEN REPLACE(INFO.COMMENT_EO,chr(13)||chr(10), '\n')
|
|
WHEN INFO.COMMENT_INSTL IS NOT NULL THEN REPLACE(INFO.COMMENT_INSTL,chr(13)||chr(10), '\n')
|
|
WHEN INFO.COMMENT_L4 IS NOT NULL THEN REPLACE(INFO.COMMENT_L4,chr(13)||chr(10), '\n')
|
|
WHEN INFO.COMMENT_L3 IS NOT NULL THEN REPLACE(INFO.COMMENT_L3,chr(13)||chr(10), '\n')
|
|
WHEN INFO.COMMENT_L2 IS NOT NULL THEN REPLACE(INFO.COMMENT_L2,chr(13)||chr(10), '\n')
|
|
WHEN INFO.COMMENT_L1 IS NOT NULL THEN REPLACE(INFO.COMMENT_L1,chr(13)||chr(10), '\n')
|
|
ELSE ''
|
|
END AS LAST_CHECK_RESULT_COMMENT,
|
|
UPPER(INFO.RELATION_TYPE) AS RELATION_TYPE,
|
|
CASE
|
|
WHEN UPPER(INFO.RELATION_TYPE) = 'UNRELATE' THEN '-'
|
|
WHEN UPPER(INFO.RELATION_TYPE) = 'RELATED' THEN '○'
|
|
ELSE ''
|
|
END AS RELATION_TYPE_TITLE,
|
|
INFO.REGDATE,
|
|
INFO.STATUS,
|
|
INFO.STATUS AS STATUS_TITLE,
|
|
INFO.WRITER
|
|
FROM PMS_DESIGN_CHK_LIST_INFO INFO
|
|
)INFO
|
|
WHERE INFO.OBJID = #{objId}
|
|
AND INFO.TARGET_OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 소분류 상세 내용을 가져온다. -->
|
|
<select id="getCheckListAttributeInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
PRODUCT_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME,
|
|
CATEGORY_OBJID,
|
|
ATTRIBUTE_NAME,
|
|
REPLACE(CHECK_OPTION,chr(13)||chr(10), '\n') AS CHECK_OPTION,
|
|
REPLACE(CHECK_BASE,chr(13)||chr(10), '\n') AS CHECK_BASE,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트 평가결과를 저장한다. -->
|
|
<update id="mergeCheckListTestResult" parameterType="map">
|
|
UPDATE PMS_DESIGN_CHK_LIST_INFO
|
|
<if test="step != null and step == 'L1'">
|
|
SET
|
|
<if test="result == 'apply'">
|
|
RATING_L2 = #{result},
|
|
RESULT_DATE_L2=#{resultDate},
|
|
RATING_L3 = #{result},
|
|
RESULT_DATE_L3=#{resultDate},
|
|
RATING_L4 = #{result},
|
|
RESULT_DATE_L4=#{resultDate},
|
|
RATING_INSTL = #{result},
|
|
RESULT_DATE_INSTL=#{resultDate},
|
|
</if>
|
|
|
|
RATING_L1 = #{result},
|
|
COMMENT_L1 = #{contents},
|
|
RESULT_DATE_L1=#{resultDate}
|
|
|
|
</if>
|
|
<if test="step != null and step == 'L2'">
|
|
SET
|
|
<if test="result == 'apply'">
|
|
RATING_L3 = #{result},
|
|
RESULT_DATE_L3=#{resultDate},
|
|
RATING_L4 = #{result},
|
|
RESULT_DATE_L4=#{resultDate},
|
|
RATING_INSTL = #{result},
|
|
RESULT_DATE_INSTL=#{resultDate},
|
|
</if>
|
|
RATING_L2 = #{result},
|
|
COMMENT_L2 = #{contents},
|
|
RESULT_DATE_L2=#{resultDate}
|
|
</if>
|
|
<if test="step != null and step == 'L3'">
|
|
SET
|
|
<if test="result == 'apply'">
|
|
RATING_L4 = #{result},
|
|
RESULT_DATE_L4=#{resultDate},
|
|
RATING_INSTL = #{result},
|
|
RESULT_DATE_INSTL=#{resultDate},
|
|
</if>
|
|
RATING_L3 = #{result},
|
|
COMMENT_L3 = #{contents},
|
|
RESULT_DATE_L3=#{resultDate}
|
|
</if>
|
|
<if test="step != null and step == 'L4'">
|
|
SET
|
|
<if test="result == 'apply'">
|
|
RATING_INSTL = #{result},
|
|
RESULT_DATE_INSTL=#{resultDate},
|
|
</if>
|
|
RATING_L4 = #{result},
|
|
COMMENT_L4 = #{contents},
|
|
RESULT_DATE_L4=#{resultDate}
|
|
</if>
|
|
<if test="step != null and step == 'INSTL'">
|
|
SET
|
|
RATING_INSTL = #{result},
|
|
COMMENT_INSTL = #{contents},
|
|
RESULT_DATE_INSTL=#{resultDate}
|
|
</if>
|
|
<if test="step != null and step == 'EO'">
|
|
SET
|
|
RATING_EO = #{result},
|
|
COMMENT_EO = #{contents},
|
|
RESULT_DATE_EO=#{resultDate}
|
|
</if>
|
|
WHERE OBJID = #{objId}
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- 설계 체크리스트를 단계별로 확인처리한다. -->
|
|
<update id="mergeComfirmTestResultInfo" parameterType="map">
|
|
UPDATE PMS_DESIGN_CHK_LIST_BASE_INFO
|
|
<set>
|
|
<if test="step != null and step == 'L1'">
|
|
L1_RESULT_COMMENT=#{contents},
|
|
L1_RESULT_DATE=SYSDATE
|
|
</if>
|
|
<if test="step != null and step == 'L2'">
|
|
L2_RESULT_COMMENT=#{contents},
|
|
L2_RESULT_DATE=SYSDATE
|
|
</if>
|
|
<if test="step != null and step == 'L3'">
|
|
L3_RESULT_COMMENT=#{contents},
|
|
L3_RESULT_DATE=SYSDATE
|
|
</if>
|
|
<if test="step != null and step == 'L4'">
|
|
L4_RESULT_COMMENT=#{contents},
|
|
L4_RESULT_DATE=SYSDATE
|
|
</if>
|
|
<if test="step != null and step == 'INSTL'">
|
|
INSTL_RESULT_COMMENT=#{contents},
|
|
INSTL_RESULT_DATE=SYSDATE
|
|
</if>
|
|
<if test="step != null and step == 'EO'">
|
|
EO_RESULT_COMMENT=#{contents},
|
|
EO_RESULT_DATE=SYSDATE
|
|
</if>
|
|
</set>
|
|
WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 과거차 문제점을 조회한다. -->
|
|
<select id="getProblemContinualList" parameterType="map" resultType="map">
|
|
SELECT PMS_STRUCTURE_REVIEW_REPORT.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC NULLS LAST) RNUM
|
|
FROM(
|
|
SELECT PMS_STRUCTURE_REVIEW_REPORT.*
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_CONTINUAL_REFLECT WHERE TARGET_OBJID = PMS_STRUCTURE_REVIEW_REPORT.OBJID) AS REFLECT_CNT
|
|
FROM(
|
|
SELECT B.OBJID
|
|
, B.TARGET_OBJID
|
|
, 'problem' AS DATA_TYPE
|
|
, A.REGION
|
|
, A.CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, (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 PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_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
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, B.TYPE1
|
|
, B.TYPE2
|
|
, A.STATUS
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, B.SUBJECT
|
|
, B.CONTINUAL_MNG_REVIEW_TYPE
|
|
, B.CONTINUAL_MNG_RECHOICE_TYPE
|
|
, B.CONTINUAL_MNG_TYPE1
|
|
, B.CONTINUAL_MNG_TYPE2
|
|
, B.REGDATE
|
|
FROM PMS_PROBLEM_GROUP A, PMS_PROBLEM_INFO B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND UPPER(B.CONTINUAL_MNG_TYPE) = 'Y'
|
|
AND UPPER(B.CONTINUAL_MNG_TYPE_RESULT) = 'Y'
|
|
AND UPPER(A.STATUS) = 'COMPLETE'
|
|
AND UPPER(B.STATUS) = 'COMPLETE'
|
|
UNION ALL
|
|
SELECT A.OBJID
|
|
, TO_NUMBER('') AS TARGET_OBJID
|
|
, 'structure' AS DATA_TYPE
|
|
, A.REGION
|
|
, A.CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, (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 PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.PART_NO
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.TYPE1
|
|
, A.TYPE2
|
|
, A.STATUS
|
|
, TO_NUMBER('') AS TEST_TYPE_OBJID
|
|
, '' AS TEST_TYPE_NAME
|
|
, A.SUBJECT
|
|
, A.CONTINUAL_MNG_REVIEW_TYPE
|
|
, A.CONTINUAL_MNG_RECHOICE_TYPE
|
|
, A.CONTINUAL_MNG_TYPE1
|
|
, A.CONTINUAL_MNG_TYPE2
|
|
, A.REGDATE
|
|
FROM PMS_STRUCTURE_REVIEW_REPORT A
|
|
WHERE 1=1
|
|
AND UPPER(A.STATUS) = 'COMPLETE'
|
|
AND UPPER(A.CONTINUAL_MNG_TYPE) = 'Y'
|
|
AND UPPER(A.CONTINUAL_MNG_TYPE_RESULT) = 'Y'
|
|
)PMS_STRUCTURE_REVIEW_REPORT
|
|
WHERE 1=1
|
|
<if test="search_dataType != null and search_dataType !='' ">
|
|
AND DATA_TYPE = #{search_dataType}
|
|
</if>
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND REGION = #{search_region}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !='' ">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="step1 != null and step1 !='' ">
|
|
AND STEP1 = #{step1}
|
|
</if>
|
|
<if test="step2 != null and step2 !='' ">
|
|
AND STEP2 = #{step2}
|
|
</if>
|
|
<if test="search_action_result != null and search_action_result !='' ">
|
|
AND ACTION_RESULT = #{search_action_result}
|
|
</if>
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !='' ">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_subject != null and search_subject != '' ">
|
|
AND UPPER(SUBJECT) LIKE UPPER('%${search_subject}%')
|
|
</if>
|
|
<if test="search_partNo != null and search_partNo != '' ">
|
|
AND PART_NO LIKE '%${search_partNo}%'
|
|
</if>
|
|
)PMS_STRUCTURE_REVIEW_REPORT
|
|
WHERE 1=1
|
|
AND NOT EXISTS(
|
|
SELECT * FROM PMS_REL_CHK_LIST_PROBLEM REL WHERE REL.TARGET_OBJID = #{targetObjId} AND PMS_STRUCTURE_REVIEW_REPORT.OBJID = REL.PROBLEM_CONTINUAL_OBJID
|
|
)
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트와 과거차 문제점을 연결한다. -->
|
|
<update id="mergeCheckListRelProblemContinual" parameterType="map">
|
|
MERGE INTO PMS_REL_CHK_LIST_PROBLEM P USING DUAL ON (P.TARGET_OBJID = #{targetObjId} AND P.PROBLEM_CONTINUAL_OBJID = #{problemContinualObjId} AND P.DATA_TYPE = #{dataType})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
PROBLEM_CONTINUAL_OBJID,
|
|
DATA_TYPE,
|
|
REGDATE,
|
|
WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{problemContinualObjId},
|
|
#{dataType},
|
|
SYSDATE,
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- 설계 체크리스트와 과거차 문제점을 연결한다. -->
|
|
<delete id="deleteCheckListRelProblemContinual" parameterType="map">
|
|
DELETE PMS_REL_CHK_LIST_PROBLEM WHERE TARGET_OBJID = #{targetObjId} AND PROBLEM_CONTINUAL_OBJID = #{problemContinualObjId} AND DATA_TYPE = #{dataType}
|
|
</delete>
|
|
|
|
<!-- 과거차 문제점을 조회한다. -->
|
|
<select id="getConnectProblemContinualList" parameterType="map" resultType="map">
|
|
SELECT PMS_STRUCTURE_REVIEW_REPORT.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC NULLS LAST) RNUM
|
|
FROM(
|
|
SELECT PMS_STRUCTURE_REVIEW_REPORT.*
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_CONTINUAL_REFLECT WHERE TARGET_OBJID = PMS_STRUCTURE_REVIEW_REPORT.OBJID) AS REFLECT_CNT
|
|
FROM(
|
|
SELECT B.OBJID
|
|
, B.TARGET_OBJID
|
|
, 'problem' AS DATA_TYPE
|
|
, A.REGION
|
|
, A.CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, (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 PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_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
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, B.TYPE1
|
|
, B.TYPE2
|
|
, A.STATUS
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, B.SUBJECT
|
|
, B.CONTINUAL_MNG_REVIEW_TYPE
|
|
, B.CONTINUAL_MNG_RECHOICE_TYPE
|
|
, B.CONTINUAL_MNG_TYPE1
|
|
, B.CONTINUAL_MNG_TYPE2
|
|
, B.REGDATE
|
|
FROM PMS_PROBLEM_GROUP A, PMS_PROBLEM_INFO B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND UPPER(B.CONTINUAL_MNG_TYPE) = 'Y'
|
|
AND UPPER(B.CONTINUAL_MNG_TYPE_RESULT) = 'Y'
|
|
AND UPPER(A.STATUS) = 'COMPLETE'
|
|
AND UPPER(B.STATUS) = 'COMPLETE'
|
|
UNION ALL
|
|
SELECT A.OBJID
|
|
, TO_NUMBER('') AS TARGET_OBJID
|
|
, 'structure' AS DATA_TYPE
|
|
, A.REGION
|
|
, A.CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, (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 PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.PART_NO
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.TYPE1
|
|
, A.TYPE2
|
|
, A.STATUS
|
|
, TO_NUMBER('') AS TEST_TYPE_OBJID
|
|
, '' AS TEST_TYPE_NAME
|
|
, A.SUBJECT
|
|
, A.CONTINUAL_MNG_REVIEW_TYPE
|
|
, A.CONTINUAL_MNG_RECHOICE_TYPE
|
|
, A.CONTINUAL_MNG_TYPE1
|
|
, A.CONTINUAL_MNG_TYPE2
|
|
, A.REGDATE
|
|
FROM PMS_STRUCTURE_REVIEW_REPORT A
|
|
WHERE 1=1
|
|
AND UPPER(A.STATUS) = 'COMPLETE'
|
|
AND UPPER(A.CONTINUAL_MNG_TYPE) = 'Y'
|
|
AND UPPER(A.CONTINUAL_MNG_TYPE_RESULT) = 'Y'
|
|
)PMS_STRUCTURE_REVIEW_REPORT
|
|
WHERE 1=1
|
|
)PMS_STRUCTURE_REVIEW_REPORT
|
|
WHERE 1=1
|
|
AND EXISTS(
|
|
SELECT * FROM PMS_REL_CHK_LIST_PROBLEM REL WHERE REL.TARGET_OBJID = #{targetObjId} AND PMS_STRUCTURE_REVIEW_REPORT.OBJID = REL.PROBLEM_CONTINUAL_OBJID
|
|
)
|
|
</select>
|
|
|
|
<!-- //파일목록 조회 -->
|
|
<select id="getFileList" resultType="map" parameterType="map">
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, SAVED_FILE_NAME
|
|
, REAL_FILE_NAME
|
|
, DOC_TYPE
|
|
, DOC_TYPE_NAME
|
|
, FILE_SIZE
|
|
, FILE_EXT
|
|
, UPPER(FILE_EXT) UPPER_FILE_EXT
|
|
, REPLACE(FILE_PATH, '\', '\\') AS FILE_PATH
|
|
, WRITER
|
|
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS DEPT_NAME
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, REGDATE AS REGDATE_ORG
|
|
, STATUS
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = ${targetObjId}
|
|
<if test="objId != null and !''.equals(objId)">
|
|
AND OBJID = #{objId}
|
|
</if>
|
|
<if test="docType != null and !''.equals(docType)">
|
|
AND DOC_TYPE = #{docType}
|
|
</if>
|
|
<!-- 일괄다운로드시 여러 DOC_TYPE 조회 시 사용 -->
|
|
<if test="docTypeList != null and docTypeList.size != 0">
|
|
AND DOC_TYPE IN
|
|
<foreach collection="docTypeList" item="docType" index="index" separator="," open="(" close=")">
|
|
#{docType}
|
|
</foreach>
|
|
</if>
|
|
<!-- //date search -->
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND REGDATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND REGDATE <![CDATA[ <= ]]> last_day(TO_DATE(#{search_toDate}, 'YYYY-MM-DD'))
|
|
</if>
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
ORDER BY REGDATE_ORG DESC
|
|
</select>
|
|
|
|
<!-- 각 단계별 상태를 가져온다. -->
|
|
<select id="getCheckListStepStatus" parameterType="map" resultType="map">
|
|
SELECT
|
|
CASE
|
|
WHEN L1_CNT > 0 THEN 'L1'
|
|
WHEN L2_CNT > 0 THEN 'L2'
|
|
WHEN L3_CNT > 0 THEN 'L3'
|
|
WHEN L4_CNT > 0 THEN 'L4'
|
|
WHEN INSTL_CNT > 0 THEN 'INSTL'
|
|
WHEN EO_CNT > 0 THEN 'EO'
|
|
ELSE ''
|
|
END AS STEP,
|
|
CASE
|
|
WHEN L1_SUBMIT_DATE IS NULL AND L1_RESULT_DATE IS NULL THEN 'L1'
|
|
WHEN L2_SUBMIT_DATE IS NULL AND L2_RESULT_DATE IS NULL THEN 'L2'
|
|
WHEN L3_SUBMIT_DATE IS NULL AND L3_RESULT_DATE IS NULL THEN 'L3'
|
|
WHEN L4_SUBMIT_DATE IS NULL AND L4_RESULT_DATE IS NULL THEN 'L4'
|
|
WHEN INSTL_SUBMIT_DATE IS NULL AND INSTL_RESULT_DATE IS NULL THEN 'INSTL'
|
|
WHEN EO_SUBMIT_DATE IS NULL AND EO_RESULT_DATE IS NULL THEN 'EO'
|
|
ELSE ''
|
|
END AS WORK_STEP,
|
|
CASE
|
|
WHEN L1_SUBMIT_DATE IS NOT NULL AND L1_RESULT_DATE IS NULL THEN 'L1'
|
|
WHEN L2_SUBMIT_DATE IS NOT NULL AND L2_RESULT_DATE IS NULL THEN 'L2'
|
|
WHEN L3_SUBMIT_DATE IS NOT NULL AND L3_RESULT_DATE IS NULL THEN 'L3'
|
|
WHEN L4_SUBMIT_DATE IS NOT NULL AND L4_RESULT_DATE IS NULL THEN 'L4'
|
|
WHEN INSTL_SUBMIT_DATE IS NOT NULL AND INSTL_RESULT_DATE IS NULL THEN 'INSTL'
|
|
WHEN EO_SUBMIT_DATE IS NOT NULL AND EO_RESULT_DATE IS NULL THEN 'EO'
|
|
ELSE ''
|
|
END AS CONFIRM_STEP,
|
|
CASE
|
|
WHEN L1_SUBMIT_DATE IS NOT NULL AND L1_RESULT_DATE IS NULL THEN L1_PIC
|
|
WHEN L2_SUBMIT_DATE IS NOT NULL AND L2_RESULT_DATE IS NULL THEN L2_PIC
|
|
WHEN L3_SUBMIT_DATE IS NOT NULL AND L3_RESULT_DATE IS NULL THEN L3_PIC
|
|
WHEN L4_SUBMIT_DATE IS NOT NULL AND L4_RESULT_DATE IS NULL THEN L4_PIC
|
|
WHEN INSTL_SUBMIT_DATE IS NOT NULL AND INSTL_RESULT_DATE IS NULL THEN INSTL_PIC
|
|
WHEN EO_SUBMIT_DATE IS NOT NULL AND EO_RESULT_DATE IS NULL THEN EO_PIC
|
|
ELSE ''
|
|
END AS CONFIRM_STEP_PIC,
|
|
WRITER,
|
|
STATUS
|
|
FROM (
|
|
SELECT
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_L1 IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS L1_CNT,
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_L2 IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS L2_CNT,
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_L3 IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS L3_CNT,
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_L4 IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS L4_CNT,
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_INSTL IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS INSTL_CNT,
|
|
(SELECT COUNT(1) FROM PMS_DESIGN_CHK_LIST_INFO WHERE TARGET_OBJID = BASE_INFO.OBJID AND RATING_EO IS NULL AND UPPER(RELATION_TYPE) = 'RELATED') AS EO_CNT,
|
|
BASE_INFO.WRITER,
|
|
BASE_INFO.L1_RESULT,
|
|
BASE_INFO.L1_RESULT_COMMENT,
|
|
BASE_INFO.L1_RESULT_DATE,
|
|
BASE_INFO.L1_SUBMIT_DATE,
|
|
BASE_INFO.L2_RESULT,
|
|
BASE_INFO.L2_RESULT_COMMENT,
|
|
BASE_INFO.L2_RESULT_DATE,
|
|
BASE_INFO.L2_SUBMIT_DATE,
|
|
BASE_INFO.L3_RESULT,
|
|
BASE_INFO.L3_RESULT_COMMENT,
|
|
BASE_INFO.L3_RESULT_DATE,
|
|
BASE_INFO.L3_SUBMIT_DATE,
|
|
BASE_INFO.L4_RESULT,
|
|
BASE_INFO.L4_RESULT_COMMENT,
|
|
BASE_INFO.L4_RESULT_DATE,
|
|
BASE_INFO.L4_SUBMIT_DATE,
|
|
BASE_INFO.INSTL_RESULT,
|
|
BASE_INFO.INSTL_RESULT_COMMENT,
|
|
BASE_INFO.INSTL_RESULT_DATE,
|
|
BASE_INFO.INSTL_SUBMIT_DATE,
|
|
BASE_INFO.EO_RESULT,
|
|
BASE_INFO.EO_RESULT_COMMENT,
|
|
BASE_INFO.EO_RESULT_DATE,
|
|
BASE_INFO.EO_SUBMIT_DATE,
|
|
BASE_INFO.L1_PIC,
|
|
BASE_INFO.L2_PIC,
|
|
BASE_INFO.L3_PIC,
|
|
BASE_INFO.L4_PIC,
|
|
BASE_INFO.INSTL_PIC,
|
|
BASE_INFO.EO_PIC,
|
|
BASE_INFO.STATUS
|
|
FROM PMS_DESIGN_CHK_LIST_BASE_INFO BASE_INFO
|
|
WHERE OBJID = #{targetObjId}
|
|
)
|
|
</select>
|
|
|
|
<!-- 설계 체크리스트의 상태를 변경한다. -->
|
|
<update id="changeCheckListStatus" parameterType="map">
|
|
UPDATE PMS_DESIGN_CHK_LIST_BASE_INFO SET STATUS = #{status}
|
|
<if test="step != null and !''.equals(step)">
|
|
<if test="'L1'.equals(step)">
|
|
,L1_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
<if test="'L2'.equals(step)">
|
|
,L2_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
<if test="'L3'.equals(step)">
|
|
,L3_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
<if test="'L4'.equals(step)">
|
|
,L4_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
<if test="'INSTL'.equals(step)">
|
|
,INSTL_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
<if test="'EO'.equals(step)">
|
|
,EO_SUBMIT_DATE = SYSDATE
|
|
</if>
|
|
</if>
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- //edhwang end -->
|
|
</mapper> |