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

1689 lines
74 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="problem">
<!-- ******************************************************************************************* -->
<!-- //jmpark start -->
<!-- //통합문제점 검사명 그룹 제기 목록 count -->
<select id="getProblemGroupRequestListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_CNT
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_CNT
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND A.WRITER = #{connectedUserId}
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)WHERE 1=1
</select>
<!-- //통합문제점 검사명 그룹 제기 목록 조회 -->
<select id="getProblemGroupRequestList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT PMS_PROBLEM_REQUEST_INFO.*,ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) AS RNUM
FROM(
SELECT PMS_PROBLEM_GROUP_INFO.*
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_CNT
, DECODE(A.APPROVAL_STATUS, null, '미결재', 'approval', '결재중', 'reject', '반려', 'release', '결재완료', A.APPROVAL_STATUS) AS APPROVAL_STATUS_TITLE
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND A.WRITER = #{connectedUserId}
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)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>
<!-- //통합문제점 검사명 그룹 조치 목록 조회 count -->
<select id="getProblemGroupResponseListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_CNT
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_CNT
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND A.RES_PIC = #{connectedUserId}
AND A.DISTRIBUTE_DATE IS NOT NULL
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)WHERE 1=1
</select>
<!-- //통합문제점 검사명 그룹 조치 목록 조회 -->
<select id="getProblemGroupResponseList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT PMS_PROBLEM_RESPONSE_INFO.*,ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) AS RNUM
FROM(
SELECT PMS_PROBLEM_GROUP_INFO.*
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_CNT
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND A.RES_PIC = #{connectedUserId}
AND A.DISTRIBUTE_DATE IS NOT NULL
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)PMS_PROBLEM_RESPONSE_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>
<!-- //통합문제점 검사명 그룹 목록 조회 count -->
<select id="getProblemGroupListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_CNT
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_CNT
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)WHERE 1=1
</select>
<!-- //통합문제점 검사명 그룹 목록 조회 -->
<select id="getProblemGroupList" parameterType="map" resultType="map">
SELECT *
FROM (
SELECT PMS_PROBLEM_LIST_INFO.*,ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) AS RNUM
FROM(
SELECT PMS_PROBLEM_GROUP_INFO.*
FROM(
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, 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.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, DECODE(A.STATUS, 'create', '진행중', 'complete', '확정', 'A.STATUS') AS STATUS
, A.STATUS AS STATUS_ORG
, ROUND(CASE WHEN (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') + (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) = 0 THEN 0
ELSE ((SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') / (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID)) *100
END) AS COMPLETE_RATIO
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID) AS ALL_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'CREATE') AS UNCOMPLETE_CNT
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE TARGET_OBJID = A.OBJID AND UPPER(STATUS) = 'COMPLETE') AS COMPLETE_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 = A.OBJID) AS REL_TASK_CNT
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
<if test="search_region != null and search_region !='' ">
AND A.REGION = #{search_region}
</if>
<if test="search_carType != null and search_carType != ''">
AND A.CAR_OBJID = #{search_carType}
</if>
<if test="search_productType != null and search_productType !=''">
AND A.PROD_OBJID = #{search_productType}
</if>
<if test="search_status !=null and search_status !='' ">
AND A.STATUS = #{search_status}
</if>
<if test="search_testType !=null and search_testType !='' ">
AND A.TEST_TYPE_OBJID = #{search_testType}
</if>
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
<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_resDeptName != null and !''.equals(search_resDeptName)">
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
</if>
<if test="search_resUserName != null and !''.equals(search_resUserName)">
AND UPPER(RES_PIC_USER_NAME) LIKE UPPER('%${search_resUserName}%')
</if>
<if test="search_reqDeptName != null and !''.equals(search_reqDeptName)">
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_reqDeptName}%')
</if>
<if test="search_reqUserName != null and !''.equals(search_reqUserName)">
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_reqUserName}%')
</if>
)PMS_PROBLEM_LIST_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>
<!-- //통합문제점 검사 그룹 저장 -->
<update id="saveProblemGroupInfo" parameterType="map">
MERGE INTO PMS_PROBLEM_GROUP USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
REGION = #{region}
, STEP1 = #{step1}
, STEP2 = #{step2}
, CAR_OBJID = #{carObjId}
, PROD_OBJID = #{prodObjId}
, TEST_TYPE_OBJID = #{testTypeObjId}
, TITLE = #{title}
, RES_PIC = #{resPIC}
WHEN NOT MATCHED THEN
INSERT (
OBJID
, REGION
, STEP1
, STEP2
, CAR_OBJID
, PROD_OBJID
, TEST_TYPE_OBJID
, TITLE
, RES_PIC
, WRITER
, REGDATE
, STATUS
) VALUES (
#{objId}
, #{region}
, #{step1}
, #{step2}
, #{carObjId}
, #{prodObjId}
, #{testTypeObjId}
, #{title}
, #{resPIC}
, #{writer}
, SYSDATE
, 'create'
)
</update>
<!-- //통합문제점 검사 그룹 상세 -->
<select id="getProblemGroupInfo" parameterType="map" resultType="map">
SELECT A.OBJID
, A.REGION
, A.STEP1
, A.STEP2
, (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
, 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
, (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.TEST_TYPE_OBJID
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
, A.TITLE
, A.RES_PIC
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_NAME
, (SELECT EMAIL FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_EMAIL
, (SELECT USER_TYPE_NAME FROM USER_INFO WHERE USER_ID = A.RES_PIC) AS RES_PIC_USER_TYPE_NAME
, 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
, (SELECT EMAIL FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_EMAIL
, (SELECT USER_TYPE_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_TYPE_NAME
, A.DISTRIBUTE_DATE AS DISTRIBUTE_DATE_ORG
, TO_CHAR(A.DISTRIBUTE_DATE, 'YYYY-MM-DD') AS DISTRIBUTE_DATE
, TO_CHAR(A.RES_DISTRIBUTE_DATE, 'YYYY-MM-DD') AS RES_DISTRIBUTE_DATE
, A.APPROVAL_STATUS
, A.CURRENT_ROUTE_OBJID AS ROUTE_OBJID
, (SELECT APPROVAL_OBJID FROM ROUTE WHERE OBJID = A.CURRENT_ROUTE_OBJID) AS APPROVAL_OBJID
, A.REGDATE AS REGDATE_ORG
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, A.STATUS
, DECODE(A.STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', A.STEP1) AS STEP1_TITLE
FROM PMS_PROBLEM_GROUP A
WHERE 1=1
<choose>
<when test="objId != null and !''.equals(objId)">
AND OBJID = #{objId}
</when>
<when test="targetObjId != null and !''.equals(targetObjId)">
AND OBJID = #{targetObjId}
</when>
<otherwise>
AND 1=2
</otherwise>
</choose>
</select>
<!-- //통합문제점 검사 제기자 메일배포 -->
<update id="distributeProblemGroupInfo" parameterType="map">
UPDATE PMS_PROBLEM_GROUP SET DISTRIBUTE_DATE = SYSDATE WHERE OBJID = #{targetObjId}
</update>
<!-- //통합문제점 검사 조치자 메일배포 -->
<update id="resDistributeProblemGroupInfo" parameterType="map">
UPDATE PMS_PROBLEM_GROUP SET RES_DISTRIBUTE_DATE = SYSDATE WHERE OBJID = #{targetObjId}
</update>
<!-- //통합문제점관리 문제점 저장 -->
<update id="saveProblemInfo" parameterType="map">
MERGE INTO PMS_PROBLEM_INFO USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE SET
TYPE1 = #{type1}
, TYPE2 = #{type2}
, IMPUTATION = #{imputation}
, PART_NO = #{partNo}
, REQ_DATE = TO_DATE(#{reqDate}, 'YYYY-MM-DD')
, RES_PLAN_DATE = TO_DATE(#{resPlanDate}, 'YYYY-MM-DD')
, SUBJECT = #{subject}
, PROBLEM_CONTENTS = #{problemContents}
, PROBLEM_REASON_CONTENTS = #{problemReasonContents}
, UNMANAGE_TYPE = #{unManageType}
, RESPONSE_CONTENTS = #{responseContents}
, RES_MODIFY_DATE = TO_DATE(#{resModifyDate}, 'YYYY-MM-DD')
, REFLECT_PLAN_DATE = TO_DATE(#{reflectPlanDate}, 'YYYY-MM-DD')
, REFLECT_RESULT = #{reflectResult}
, CONTINUAL_MNG_TYPE = #{continualMngType}
WHEN NOT MATCHED THEN
INSERT (
OBJID
, TARGET_OBJID
, TYPE1
, TYPE2
, IMPUTATION
, REQ_DATE
, PART_NO
, RES_PLAN_DATE
, SUBJECT
, PROBLEM_CONTENTS
, PROBLEM_REASON_CONTENTS
, UNMANAGE_TYPE
, RESPONSE_CONTENTS
, RES_MODIFY_DATE
, REFLECT_PLAN_DATE
, REFLECT_RESULT
, CONTINUAL_MNG_TYPE
, WRITER
, REGDATE
, STATUS
) VALUES (
#{objId}
, #{targetObjId}
, #{type1}
, #{type2}
, #{imputation}
, TO_DATE(#{reqDate}, 'YYYY-MM-DD')
, #{partNo}
, TO_DATE(#{resPlanDate}, 'YYYY-MM-DD')
, #{subject}
, #{problemContents}
, #{problemReasonContents}
, #{unManageType}
, #{responseContents}
, #{resModifyDate}
, #{reflectPlanDate}
, #{reflectResult}
, #{continualMngType}
, #{writer}
, SYSDATE
, 'create'
)
</update>
<!-- //통합문제점관리 검사별 문제점 목록 count -->
<select id="getProblemListCnt" parameterType="map" resultType="map">
SELECT
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(*) AS TOTAL_CNT
FROM PMS_PROBLEM_INFO A
WHERE 1=1
AND A.TARGET_OBJID = #{targetObjId}
)
</select>
<!-- //통합문제점관리 검사별 문제점 목록 -->
<select id="getProblemList" parameterType="map" resultType="map">
SELECT *
FROM(
SELECT
A.*,ROWNUM AS RNUM
FROM (
SELECT A.OBJID
, A.TARGET_OBJID
, A.TYPE1
, A.TYPE2
, A.IMPUTATION
, A.REQ_DATE AS REQ_DATE_ORG
, TO_CHAR(A.REQ_DATE, 'YYYY-MM-DD') AS REQ_DATE
, A.PART_NO
, (SELECT PART_NAME FROM PART_INFO WHERE PART_NO = A.PART_NO AND IS_LAST = 1) AS PART_NAME
, A.RES_PLAN_DATE AS RES_PLAN_DATE_ORG
, TO_CHAR(A.RES_PLAN_DATE, 'YYYY-MM-DD') AS RES_PLAN_DATE
, A.SUBJECT
, A.PROBLEM_CONTENTS
, A.PROBLEM_REASON_CONTENTS
, A.UNMANAGE_TYPE
, A.RESPONSE_CONTENTS
, A.RES_MODIFY_DATE AS RES_MODIFY_DATE_ORG
, TO_CHAR(A.RES_MODIFY_DATE, 'YYYY-MM-DD') AS RES_MODIFY_DATE
, A.REFLECT_PLAN_DATE AS REFLECT_PLAN_DATE_ORG
, TO_CHAR(A.REFLECT_PLAN_DATE, 'YYYY-MM-DD') AS REFLECT_PLAN_DATE
, A.REFLECT_RESULT
, A.CONTINUAL_MNG_TYPE
, 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') REGDATE
, A.STATUS
, DECODE(A.CONTINUAL_MNG_TYPE, 'Y', '대상', 'N', '비대상', A.CONTINUAL_MNG_TYPE) AS CONTINUAL_MNG_TYPE_TITLE
, DECODE(A.TYPE1, 'design', '설계', 'mold', '금형', 'quality', '품질', 'facilities', '설비', A.TYPE1) AS TYPE1_TITLE
FROM PMS_PROBLEM_INFO A
WHERE 1=1
AND A.TARGET_OBJID = #{targetObjId}
) A
WHERE 1=1
)WHERE 1=1
<if test="PAGE_END != null and PAGE_END !=''">
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
</if>
<if test="PAGE_START != null and PAGE_STRART!=''">
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
</if>
</select>
<!-- //통합문제점관리 문제점 상세 -->
<select id="getProblemInfo" parameterType="map" resultType="map">
SELECT A.OBJID
, A.TARGET_OBJID
, A.TYPE1
, A.TYPE2
, A.IMPUTATION
, A.REQ_DATE AS REQ_DATE_ORG
, TO_CHAR(A.REQ_DATE, 'YYYY-MM-DD') AS REQ_DATE
, A.PART_NO
, (SELECT PART_NAME FROM PART_INFO WHERE PART_NO = A.PART_NO AND IS_LAST = 1) AS PART_NAME
, A.RES_PLAN_DATE AS RES_PLAN_DATE_ORG
, TO_CHAR(A.RES_PLAN_DATE, 'YYYY-MM-DD') AS RES_PLAN_DATE
, A.SUBJECT
, A.PROBLEM_CONTENTS
, A.PROBLEM_REASON_CONTENTS
, A.UNMANAGE_TYPE
, A.RESPONSE_CONTENTS
, A.RES_MODIFY_DATE AS RES_MODIFY_DATE_ORG
, TO_CHAR(A.RES_MODIFY_DATE, 'YYYY-MM-DD') AS RES_MODIFY_DATE
, A.REFLECT_PLAN_DATE AS REFLECT_PLAN_DATE_ORG
, TO_CHAR(A.REFLECT_PLAN_DATE, 'YYYY-MM-DD') AS REFLECT_PLAN_DATE
, A.REFLECT_RESULT
, A.CONTINUAL_MNG_TYPE
, 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') REGDATE
, A.STATUS
FROM PMS_PROBLEM_INFO A
WHERE 1=1
AND OBJID = #{objId}
</select>
<!-- //통합문제점관리 문제점 상태변경(확인결과 반영) -->
<update id="changeProblemStatusInfo" parameterType="map">
UPDATE PMS_PROBLEM_INFO SET STATUS = #{status} WHERE OBJID = #{objId}
</update>
<!-- //통합문제점관리 미완료된 count 조회 -->
<select id="getUnCompleteProblemCnt" parameterType="map" resultType="int">
SELECT COUNT(*) AS CNT
FROM PMS_PROBLEM_INFO
WHERE 1=1
AND TARGET_OBJID = #{targetObjId}
AND UPPER(STATUS) = 'CREATE'
</select>
<!-- //문제점 검사 (group)의 상태를 완료로 바꾼다. -->
<update id="updateProblemGroupComplete" parameterType="map">
UPDATE PMS_PROBLEM_GROUP SET STATUS = 'complete' WHERE OBJID = #{targetObjId}
</update>
<!-- //통합문제점관리 문제점의 과거차 대상여부 변경 -->
<update id="changeProblemContinualMngTypeInfo" parameterType="map">
UPDATE PMS_PROBLEM_INFO SET CONTINUAL_MNG_TYPE = #{type} WHERE OBJID = #{objId}
</update>
<!-- //통합문제점관리 문제점의 과거차 대상여부를 대상으로 변경시 최종 승인여부를 다시 초기화 시킨다. -->
<update id="initializeProblemContinualMngTypeResultInfo" parameterType="map">
UPDATE PMS_PROBLEM_INFO SET CONTINUAL_MNG_TYPE_RESULT = '' WHERE OBJID = #{objId}
</update>
<!-- //과거차 문제점 승인요청 목록 -->
<select id="getProblemContinualMngApplyReqList" 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.*
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.REGDATE
, B.PROBLEM_CONTENTS
, B.RESPONSE_CONTENTS AS SUGGEST_CONTENTS
FROM PMS_PROBLEM_GROUP A, PMS_PROBLEM_INFO B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND B.CONTINUAL_MNG_TYPE = 'Y'
AND B.CONTINUAL_MNG_TYPE_RESULT IS NULL
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.REGDATE
, A.PROBLEM_CONTENTS
, A.SUGGEST_CONTENTS
FROM PMS_STRUCTURE_REVIEW_REPORT A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
AND A.CONTINUAL_MNG_TYPE = 'Y'
AND A.CONTINUAL_MNG_TYPE_RESULT IS NULL
)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
</select>
<!-- //과거차 문제점 승인요청 COUNT -->
<select id="getProblemContinualMngApplyReqListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_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 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
FROM PMS_PROBLEM_GROUP A, PMS_PROBLEM_INFO B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND B.CONTINUAL_MNG_TYPE = 'Y'
AND B.CONTINUAL_MNG_TYPE_RESULT IS NULL
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 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
FROM PMS_STRUCTURE_REVIEW_REPORT A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
AND A.CONTINUAL_MNG_TYPE = 'Y'
AND A.CONTINUAL_MNG_TYPE_RESULT IS NULL
) PMS_PROBLEM_GROUP_INFO
WHERE 1=1
)WHERE 1=1
</select>
<!-- //과거차 문제점 승인처리 -->
<insert id="insertProblemContinualMngApplyResult" parameterType="map">
INSERT INTO PMS_PROBLEM_CONTINUAL_HISTORY(
OBJID
, TARGET_OBJID
, RESULT_COMMENT
, RESULT
, WRITER
, REGDATE
, TARGET_TYPE
) VALUES (
#{objId}
, #{targetObjId}
, #{resultComment}
, #{result}
, #{writer}
, SYSDATE
, #{targetType}
)
</insert>
<!-- //과거차 문제점 승인처리 후, 해당 문제점의 과거차문제점 대상여부 및 최종 관리대상여부 처리 -->
<update id="updateProblemInfoContinualMngType" parameterType="map">
UPDATE PMS_PROBLEM_INFO A SET
A.CONTINUAL_MNG_TYPE = #{result}
, A.CONTINUAL_MNG_TYPE_RESULT = #{result}
, A.CONTINUAL_MNG_REVIEW_TYPE = #{continualMngReviewType}
, A.CONTINUAL_MNG_RECHOICE_TYPE = #{continualMngRechoiceType}
<if test='continualMngRechoiceType != null and "Y".equals(continualMngRechoiceType)'>
, A.CONTINUAL_MNG_TYPE1 = #{continualMngType1}
, A.CONTINUAL_MNG_TYPE2 = #{continualMngType2}
</if>
<if test='continualMngRechoiceType != null and "N".equals(continualMngRechoiceType)'>
, A.CONTINUAL_MNG_TYPE1 = A.TYPE1
, A.CONTINUAL_MNG_TYPE2 = A.TYPE2
</if>
WHERE OBJID = #{targetObjId}
</update>
<!-- //과거차 문제점 승인결과 목록 -->
<select id="getProblemContinualMngApplyResultList" parameterType="map" resultType="map">
SELECT *
FROM(
SELECT PMS_STRUCTURE_REVIEW.* , ROW_NUMBER() OVER(ORDER BY REGDATE DESC NULLS LAST) RNUM
FROM(
SELECT PMS_STRUCTURE_REVIEW_REPORT.*
FROM(
SELECT A.*
, B.WRITER AS APPLY_USER_ID
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS APPLY_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS APPLY_USER_NAME
, B.REGDATE AS APPLY_DATE_ORG
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS APPLY_DATE
, B.RESULT
, B.RESULT_COMMENT
, DECODE(B.RESULT, 'Y', '승인', 'N', '반려', B.RESULT) AS RESULT_TITLE
, DECODE(A.DATA_TYPE, 'problem', '문제점', 'structure', '구조검토 제안서', A.DATA_TYPE) AS DATA_TYPE_TITLE
, DECODE(A.REGION, 'D', '국내', 'F', '해외', A.REGION) AS REGION_TITLE
, DECODE(A.STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', A.STEP1) AS STEP1_TITLE
, DECODE(A.CONTINUAL_MNG_TYPE1, 'design', '설계', 'mold', '금형/단품', 'facilities', '조립/설비', 'etc', '부자재/기타', A.CONTINUAL_MNG_TYPE1) AS CONTINUAL_MNG_TYPE1_TITLE
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(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'
) A, PMS_PROBLEM_CONTINUAL_HISTORY B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND B.RESULT IS NOT NULL
)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>
<if test="search_result != null and search_result != '' ">
AND RESULT = #{search_result}
</if>
)PMS_STRUCTURE_REVIEW
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>
<!-- //과거차 문제점 승인결과 목록 COUNT -->
<select id="getProblemContinualMngApplyResultListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_CNT
FROM(
SELECT *
FROM(
SELECT PMS_STRUCTURE_REVIEW_REPORT.*
FROM(
SELECT A.*
, B.WRITER AS APPLY_USER_ID
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS APPLY_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS APPLY_USER_NAME
, B.REGDATE AS APPLY_DATE_ORG
, TO_CHAR(B.REGDATE, 'YYYY-MM-DD') AS APPLY_DATE
, B.RESULT
, B.RESULT_COMMENT
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 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.CONTINUAL_MNG_REVIEW_TYPE
, B.CONTINUAL_MNG_RECHOICE_TYPE
, B.CONTINUAL_MNG_TYPE1
, B.CONTINUAL_MNG_TYPE2
, B.SUBJECT
FROM PMS_PROBLEM_GROUP A, PMS_PROBLEM_INFO B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
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 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.CONTINUAL_MNG_REVIEW_TYPE
, A.CONTINUAL_MNG_RECHOICE_TYPE
, A.CONTINUAL_MNG_TYPE1
, A.CONTINUAL_MNG_TYPE2
, A.SUBJECT
FROM PMS_STRUCTURE_REVIEW_REPORT A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
) A, PMS_PROBLEM_CONTINUAL_HISTORY B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND B.RESULT IS NOT NULL
)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>
<if test="search_result != null and search_result != '' ">
AND RESULT = #{search_result}
</if>
)WHERE 1=1
)WHERE 1=1
)WHERE 1=1
</select>
<!-- //과거차 문제점 목록 -->
<select id="getProblemContinualMngList" parameterType="map" resultType="map">
SELECT *
FROM (
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
, B.PROBLEM_CONTENTS
, B.RESPONSE_CONTENTS AS SUGGEST_CONTENTS
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
, A.PROBLEM_CONTENTS
, A.SUGGEST_CONTENTS
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
) WHERE 1=1
</select>
<!-- //과거차 문제점 목록 Count-->
<select id="getProblemContinualMngListCnt" parameterType="map" resultType="map">
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
TOTAL_CNT
FROM (
SELECT COUNT(1) TOTAL_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>
)WHERE 1=1
</select>
<!-- //과거차반영 이력 목록조회 -->
<select id="getProblemContinualReflectList" parameterType="map" resultType="map">
SELECT ROW_NUMBER() OVER(ORDER BY REFLECT_T.REGDATE_ORG DESC) AS RNUM
, REFLECT_T.*
FROM (
SELECT A.OBJID
, A.TARGET_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.PART_NO
, (SELECT PART_NAME FROM PART_INFO WHERE PART_NO = A.PART_NO AND UPPER(STATUS) = 'COMPLETE' AND IS_LAST = 1) AS PART_NAME
, A.STEP1
, A.STEP2
, TO_CHAR(A.REFLECT_DATE, 'YYYY-MM-DD') AS REFLECT_DATE
, A.REFLECT_RESULT
, A.REFLECT_CONTENTS
, 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
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, A.REGDATE AS REGDATE_ORG
, (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 = A.OBJID) AS REL_TASK_CNT
FROM PMS_PROBLEM_CONTINUAL_REFLECT A
WHERE 1=1
AND A.TARGET_OBJID = #{targetObjId}
) REFLECT_T
WHERE 1=1
</select>
<!-- //과거차 반영이력 상세조회 -->
<select id="getProblemContinualRelfectInfo" parameterType="map" resultType="map">
SELECT A.OBJID
, A.TARGET_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.PART_NO
, (SELECT PART_NAME FROM PART_INFO WHERE PART_NO = A.PART_NO AND UPPER(STATUS) = 'COMPLETE' AND IS_LAST = 1) AS PART_NAME
, A.STEP1
, A.STEP2
, TO_CHAR(A.REFLECT_DATE, 'YYYY-MM-DD') AS REFLECT_DATE
, A.REFLECT_RESULT
, A.REFLECT_CONTENTS
, 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
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
, A.REGDATE AS REGDATE_ORG
FROM PMS_PROBLEM_CONTINUAL_REFLECT A
WHERE 1=1
AND A.OBJID = #{objId}
ORDER BY A.REGDATE DESC
</select>
<!-- //과거차 반영이력 저장 -->
<update id="saveProblemContinualReflectHistoryInfo" parameterType="map">
MERGE INTO PMS_PROBLEM_CONTINUAL_REFLECT USING DUAL ON (OBJID = #{objId})
WHEN MATCHED THEN
UPDATE
SET
OEM_OBJID = #{oemObjId}
, CAR_OBJID = #{carObjId}
, PART_NO = #{partNo}
, STEP1 = #{step1}
, STEP2 = #{step2}
, REFLECT_DATE = TO_DATE(#{reflectDate}, 'yyyy-mm-dd')
, REFLECT_RESULT = #{reflectResult}
, REFLECT_CONTENTS = #{reflectContents}
WHEN NOT MATCHED THEN
INSERT (
OBJID
, TARGET_OBJID
, OEM_OBJID
, CAR_OBJID
, PART_NO
, STEP1
, STEP2
, REFLECT_DATE
, REFLECT_RESULT
, REFLECT_CONTENTS
, WRITER
, REGDATE
) VALUES (
#{objId}
, #{targetObjId}
, #{oemObjId}
, #{carObjId}
, #{partNo}
, #{step1}
, #{step2}
, TO_DATE(#{reflectDate}, 'YYYY-MM-DD')
, #{reflectResult}
, #{reflectContents}
, #{writer}
, sysdate
)
</update>
<!-- //jmpark end -->
<!-- ******************************************************************************************* -->
<!-- ******************************************************************************************* -->
<!-- //edhwang start -->
<!-- //edhwang end -->
<!-- ******************************************************************************************* -->
<!-- ******************************************************************************************* -->
<!-- //dhchoi start -->
<!-- //dhchoi end -->
<!-- ******************************************************************************************* -->
</mapper>