|
|
|
|
@@ -1012,10 +1012,35 @@
|
|
|
|
|
<!-- 공정검사 마스터 목록 조회 -->
|
|
|
|
|
<select id="getProcessInspectionList" parameterType="map" resultType="map">
|
|
|
|
|
SELECT PIM.OBJID
|
|
|
|
|
, PIM.INSPECTION_DATE
|
|
|
|
|
, PIM.INSPECTOR_ID
|
|
|
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PIM.INSPECTOR_ID) AS INSPECTOR_NAME
|
|
|
|
|
<!-- 프로젝트명 (외 N건) -->
|
|
|
|
|
/* 검사일 (외 N건) - 디테일 테이블에서 집계 */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(DISTINCT PID.INSPECTION_DATE) > 1
|
|
|
|
|
THEN MIN(PID.INSPECTION_DATE) || ' 외 ' || (COUNT(DISTINCT PID.INSPECTION_DATE) - 1) || '건'
|
|
|
|
|
WHEN COUNT(DISTINCT PID.INSPECTION_DATE) = 1
|
|
|
|
|
THEN MIN(PID.INSPECTION_DATE)
|
|
|
|
|
ELSE ''
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID AND PID.INSPECTION_DATE IS NOT NULL AND PID.INSPECTION_DATE != ''
|
|
|
|
|
) AS INSPECTION_DATE
|
|
|
|
|
/* 검사자 (외 N건) - 디테일 테이블에서 집계 */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(DISTINCT PID.INSPECTOR_ID) > 1
|
|
|
|
|
THEN (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = MIN(PID.INSPECTOR_ID)) || ' 외 ' || (COUNT(DISTINCT PID.INSPECTOR_ID) - 1) || '건'
|
|
|
|
|
WHEN COUNT(DISTINCT PID.INSPECTOR_ID) = 1
|
|
|
|
|
THEN (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = MIN(PID.INSPECTOR_ID))
|
|
|
|
|
ELSE ''
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID AND PID.INSPECTOR_ID IS NOT NULL AND PID.INSPECTOR_ID != ''
|
|
|
|
|
) AS INSPECTOR_NAME
|
|
|
|
|
/* 제품구분 (외 N건) */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(DISTINCT PID.PROJECT_OBJID) > 1
|
|
|
|
|
THEN (SELECT CODE_NAME(PRODUCT) FROM PROJECT_MGMT WHERE OBJID = MIN(PID.PROJECT_OBJID)) || ' 외 ' || (COUNT(DISTINCT PID.PROJECT_OBJID) - 1) || '건'
|
|
|
|
|
ELSE (SELECT CODE_NAME(PRODUCT) FROM PROJECT_MGMT WHERE OBJID = MIN(PID.PROJECT_OBJID))
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS PRODUCT_NAME
|
|
|
|
|
/* 프로젝트명 (외 N건) */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(DISTINCT PID.PROJECT_OBJID) > 1
|
|
|
|
|
THEN (SELECT PROJECT_NO FROM PROJECT_MGMT WHERE OBJID = MIN(PID.PROJECT_OBJID)) || ' 외 ' || (COUNT(DISTINCT PID.PROJECT_OBJID) - 1) || '건'
|
|
|
|
|
@@ -1023,7 +1048,7 @@
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS PROJECT_NO
|
|
|
|
|
<!-- 품번 (외 N건) -->
|
|
|
|
|
/* 품번 (외 N건) */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(*) > 1
|
|
|
|
|
THEN MIN(PID.PART_NO) || ' 외 ' || (COUNT(*) - 1) || '건'
|
|
|
|
|
@@ -1031,7 +1056,7 @@
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS PART_NO
|
|
|
|
|
<!-- 품명 (외 N건) -->
|
|
|
|
|
/* 품명 (외 N건) */
|
|
|
|
|
, (SELECT
|
|
|
|
|
CASE WHEN COUNT(*) > 1
|
|
|
|
|
THEN MIN(PID.PART_NAME) || ' 외 ' || (COUNT(*) - 1) || '건'
|
|
|
|
|
@@ -1039,56 +1064,86 @@
|
|
|
|
|
END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS PART_NAME
|
|
|
|
|
<!-- 불량수량 합계 -->
|
|
|
|
|
, (SELECT COALESCE(SUM(PID.DEFECT_QTY), 0) FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID) AS DEFECT_QTY
|
|
|
|
|
<!-- 작업환경상태 (하나라도 불량이면 불량) -->
|
|
|
|
|
/* 검사수량 합계 */
|
|
|
|
|
, (SELECT COALESCE(SUM(PID.INSPECTION_QTY), 0) FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID) AS INSPECTION_QTY
|
|
|
|
|
/* 불량수량 합계 */
|
|
|
|
|
, (SELECT COALESCE(SUM(PID.DEFECT_QTY), 0) FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID) AS DEFECT_QTY
|
|
|
|
|
/* 작업환경상태 (하나라도 불량이면 불량) */
|
|
|
|
|
, (SELECT CASE WHEN COUNT(CASE WHEN PID.WORK_ENV_STATUS = '불량' THEN 1 END) > 0 THEN '불량' ELSE '양호' END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS WORK_ENV_STATUS
|
|
|
|
|
<!-- 측정기 (하나라도 불량이면 불량) -->
|
|
|
|
|
/* 측정기 (하나라도 불량이면 불량) */
|
|
|
|
|
, (SELECT CASE WHEN COUNT(CASE WHEN PID.MEASURING_DEVICE = '불량' THEN 1 END) > 0 THEN '불량' ELSE '양호' END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS MEASURING_DEVICE
|
|
|
|
|
<!-- 검사결과 (하나라도 NG면 NG) -->
|
|
|
|
|
/* 검사결과 (하나라도 NG면 NG) */
|
|
|
|
|
, (SELECT CASE WHEN COUNT(CASE WHEN PID.INSPECTION_RESULT = 'NG' THEN 1 END) > 0 THEN 'NG' ELSE 'OK' END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
) AS INSPECTION_RESULT
|
|
|
|
|
, PIM.REMARK
|
|
|
|
|
FROM PROCESS_INSPECTION_MASTER PIM
|
|
|
|
|
WHERE 1=1
|
|
|
|
|
/* 프로젝트번호 */
|
|
|
|
|
<if test="search_project_no != null and search_project_no != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.PROJECT_OBJID = #{search_project_no})
|
|
|
|
|
</if>
|
|
|
|
|
/* 제품구분 */
|
|
|
|
|
<if test="productType != null and productType != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
JOIN PROJECT_MGMT PM ON PM.OBJID = PID.PROJECT_OBJID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND UPPER(PM.PROJECT_NO) LIKE UPPER('%' || #{search_project_no} || '%'))
|
|
|
|
|
AND PM.PRODUCT = #{productType})
|
|
|
|
|
</if>
|
|
|
|
|
<if test="search_part_no != null and search_part_no != ''">
|
|
|
|
|
/* 품번 */
|
|
|
|
|
<if test="search_part_objid != null and search_part_objid != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND UPPER(PID.PART_NO) LIKE UPPER('%' || #{search_part_no} || '%'))
|
|
|
|
|
AND PID.PART_OBJID = #{search_part_objid})
|
|
|
|
|
</if>
|
|
|
|
|
/* 품명 */
|
|
|
|
|
<if test="search_part_name != null and search_part_name != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND UPPER(PID.PART_NAME) LIKE UPPER('%' || #{search_part_name} || '%'))
|
|
|
|
|
AND PID.PART_OBJID = #{search_part_name})
|
|
|
|
|
</if>
|
|
|
|
|
/* 작업환경상태 */
|
|
|
|
|
<if test="search_work_env_status != null and search_work_env_status != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.WORK_ENV_STATUS = CASE WHEN #{search_work_env_status} = 'OK' THEN '양호' ELSE '불량' END)
|
|
|
|
|
</if>
|
|
|
|
|
/* 측정기 */
|
|
|
|
|
<if test="search_measuring_device != null and search_measuring_device != ''">
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.MEASURING_DEVICE = CASE WHEN #{search_measuring_device} = 'OK' THEN '양호' ELSE '불량' END)
|
|
|
|
|
</if>
|
|
|
|
|
/* 검사자 */
|
|
|
|
|
<if test="search_inspector != null and search_inspector != ''">
|
|
|
|
|
AND (
|
|
|
|
|
UPPER(PIM.INSPECTOR_ID) LIKE UPPER('%' || #{search_inspector} || '%')
|
|
|
|
|
OR UPPER((SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PIM.INSPECTOR_ID)) LIKE UPPER('%' || #{search_inspector} || '%')
|
|
|
|
|
)
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.INSPECTOR_ID = #{search_inspector})
|
|
|
|
|
</if>
|
|
|
|
|
/* 검사일 (시작) */
|
|
|
|
|
<if test="search_inspection_date_from != null and search_inspection_date_from != ''">
|
|
|
|
|
AND PIM.INSPECTION_DATE <![CDATA[>=]]> #{search_inspection_date_from}
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.INSPECTION_DATE <![CDATA[>=]]> #{search_inspection_date_from})
|
|
|
|
|
</if>
|
|
|
|
|
/* 검사일 (종료) */
|
|
|
|
|
<if test="search_inspection_date_to != null and search_inspection_date_to != ''">
|
|
|
|
|
AND PIM.INSPECTION_DATE <![CDATA[<=]]> #{search_inspection_date_to}
|
|
|
|
|
AND EXISTS (SELECT 1 FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = PIM.OBJID
|
|
|
|
|
AND PID.INSPECTION_DATE <![CDATA[<=]]> #{search_inspection_date_to})
|
|
|
|
|
</if>
|
|
|
|
|
/* 검사결과 */
|
|
|
|
|
<if test="search_inspection_result != null and search_inspection_result != ''">
|
|
|
|
|
AND (SELECT CASE WHEN COUNT(CASE WHEN PID.INSPECTION_RESULT = 'NG' THEN 1 END) > 0 THEN 'NG' ELSE 'OK' END
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID WHERE PID.MASTER_OBJID = PIM.OBJID) = #{search_inspection_result}
|
|
|
|
|
</if>
|
|
|
|
|
ORDER BY PIM.INSPECTION_DATE DESC, PIM.REG_DATE DESC
|
|
|
|
|
ORDER BY PIM.REG_DATE DESC
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 공정검사 마스터 상세 조회 -->
|
|
|
|
|
@@ -1112,6 +1167,7 @@
|
|
|
|
|
, (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = PID.PROCESS_CD) AS PROCESS_NAME
|
|
|
|
|
, PID.PROJECT_OBJID
|
|
|
|
|
, (SELECT PROJECT_NO FROM PROJECT_MGMT WHERE OBJID = PID.PROJECT_OBJID) AS PROJECT_NO
|
|
|
|
|
, (SELECT CODE_NAME(PRODUCT) FROM PROJECT_MGMT WHERE OBJID = PID.PROJECT_OBJID) AS PRODUCT_NAME
|
|
|
|
|
, PID.PART_OBJID
|
|
|
|
|
, PID.PART_NO
|
|
|
|
|
, PID.PART_NAME
|
|
|
|
|
@@ -1123,9 +1179,16 @@
|
|
|
|
|
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE OBJID::VARCHAR = PID.DEPT_CD) AS DEPT_NAME
|
|
|
|
|
, PID.USER_ID
|
|
|
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PID.USER_ID) AS USER_NAME
|
|
|
|
|
, PID.INSPECTION_DATE
|
|
|
|
|
, PID.INSPECTOR_ID
|
|
|
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PID.INSPECTOR_ID) AS INSPECTOR_NAME
|
|
|
|
|
, PID.REMARK
|
|
|
|
|
, PID.ACTION_STATUS
|
|
|
|
|
, PID.INSPECTION_RESULT
|
|
|
|
|
/* 이미지파일 카운트 */
|
|
|
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO F WHERE F.TARGET_OBJID = PID.OBJID AND F.DOC_TYPE = 'PROCESS_INSPECTION_IMAGE' AND UPPER(F.STATUS) = 'ACTIVE') AS IMAGE_FILE_CNT
|
|
|
|
|
/* 첨부파일 카운트 */
|
|
|
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO F WHERE F.TARGET_OBJID = PID.OBJID AND F.DOC_TYPE = 'PROCESS_INSPECTION_FILE' AND UPPER(F.STATUS) = 'ACTIVE') AS ATTACH_FILE_CNT
|
|
|
|
|
FROM PROCESS_INSPECTION_DETAIL PID
|
|
|
|
|
WHERE PID.MASTER_OBJID = #{MASTER_OBJID}
|
|
|
|
|
ORDER BY PID.REG_DATE
|
|
|
|
|
@@ -1176,6 +1239,8 @@
|
|
|
|
|
, MEASURING_DEVICE
|
|
|
|
|
, DEPT_CD
|
|
|
|
|
, USER_ID
|
|
|
|
|
, INSPECTION_DATE
|
|
|
|
|
, INSPECTOR_ID
|
|
|
|
|
, REMARK
|
|
|
|
|
, ACTION_STATUS
|
|
|
|
|
, INSPECTION_RESULT
|
|
|
|
|
@@ -1195,6 +1260,8 @@
|
|
|
|
|
, #{MEASURING_DEVICE}
|
|
|
|
|
, #{DEPT_CD}
|
|
|
|
|
, #{USER_ID}
|
|
|
|
|
, #{INSPECTION_DATE}
|
|
|
|
|
, #{INSPECTOR_ID}
|
|
|
|
|
, #{REMARK}
|
|
|
|
|
, #{ACTION_STATUS}
|
|
|
|
|
, #{INSPECTION_RESULT}
|
|
|
|
|
@@ -1213,6 +1280,8 @@
|
|
|
|
|
, MEASURING_DEVICE = #{MEASURING_DEVICE}
|
|
|
|
|
, DEPT_CD = #{DEPT_CD}
|
|
|
|
|
, USER_ID = #{USER_ID}
|
|
|
|
|
, INSPECTION_DATE = #{INSPECTION_DATE}
|
|
|
|
|
, INSPECTOR_ID = #{INSPECTOR_ID}
|
|
|
|
|
, REMARK = #{REMARK}
|
|
|
|
|
, ACTION_STATUS = #{ACTION_STATUS}
|
|
|
|
|
, INSPECTION_RESULT = #{INSPECTION_RESULT}
|
|
|
|
|
@@ -1776,7 +1845,8 @@
|
|
|
|
|
, CCS.QTY
|
|
|
|
|
, CCS.CUSTOMER_OBJID
|
|
|
|
|
, (SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = CCS.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
|
|
|
|
, CCS.MODEL_NAME
|
|
|
|
|
, CCS.MODEL_NAME AS PRODUCT_TYPE
|
|
|
|
|
, CODE_NAME(CCS.MODEL_NAME) AS PRODUCT_TYPE_NAME
|
|
|
|
|
, CCS.PRODUCT_NAME
|
|
|
|
|
, CCS.PART_NO
|
|
|
|
|
, CCS.PRODUCT_NO
|
|
|
|
|
@@ -1786,8 +1856,11 @@
|
|
|
|
|
, CCS.SERIAL_NO
|
|
|
|
|
, CCS.MANUFACTURER
|
|
|
|
|
, CCS.COMPLAINT_CONTENT
|
|
|
|
|
, CCS.ACTION_TYPE
|
|
|
|
|
, CODE_NAME(CCS.ACTION_TYPE) AS ACTION_TYPE_NAME
|
|
|
|
|
, CCS.ACTION_CONTENT
|
|
|
|
|
, CCS.BLAME_DECISION
|
|
|
|
|
, CASE CCS.BLAME_DECISION WHEN 'R' THEN 'RPS' WHEN 'C' THEN '고객사' WHEN 'O' THEN '외주업체' ELSE CCS.BLAME_DECISION END AS BLAME_DECISION_NAME
|
|
|
|
|
, CCS.STATUS
|
|
|
|
|
, CCS.REMARK
|
|
|
|
|
, CCS.ACTION_DATE
|
|
|
|
|
@@ -1806,8 +1879,8 @@
|
|
|
|
|
<if test="search_customer_objid != null and search_customer_objid != ''">
|
|
|
|
|
AND CCS.CUSTOMER_OBJID = #{search_customer_objid}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="search_model_name != null and search_model_name != ''">
|
|
|
|
|
AND UPPER(CCS.MODEL_NAME) LIKE UPPER('%' || #{search_model_name} || '%')
|
|
|
|
|
<if test="search_product_type != null and search_product_type != ''">
|
|
|
|
|
AND CCS.MODEL_NAME = #{search_product_type}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="search_product_no != null and search_product_no != ''">
|
|
|
|
|
AND UPPER(CCS.PRODUCT_NO) LIKE UPPER('%' || #{search_product_no} || '%')
|
|
|
|
|
@@ -1856,7 +1929,8 @@
|
|
|
|
|
, CCS.QTY
|
|
|
|
|
, CCS.CUSTOMER_OBJID
|
|
|
|
|
, (SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = CCS.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
|
|
|
|
, CCS.MODEL_NAME
|
|
|
|
|
, CCS.MODEL_NAME AS PRODUCT_TYPE
|
|
|
|
|
, CODE_NAME(CCS.MODEL_NAME) AS PRODUCT_TYPE_NAME
|
|
|
|
|
, CCS.PRODUCT_NAME
|
|
|
|
|
, CCS.PART_NO
|
|
|
|
|
, CCS.PRODUCT_NO
|
|
|
|
|
@@ -1866,8 +1940,11 @@
|
|
|
|
|
, CCS.SERIAL_NO
|
|
|
|
|
, CCS.MANUFACTURER
|
|
|
|
|
, CCS.COMPLAINT_CONTENT
|
|
|
|
|
, CCS.ACTION_TYPE
|
|
|
|
|
, CODE_NAME(CCS.ACTION_TYPE) AS ACTION_TYPE_NAME
|
|
|
|
|
, CCS.ACTION_CONTENT
|
|
|
|
|
, CCS.BLAME_DECISION
|
|
|
|
|
, CASE CCS.BLAME_DECISION WHEN 'R' THEN 'RPS' WHEN 'C' THEN '고객사' WHEN 'O' THEN '외주업체' ELSE CCS.BLAME_DECISION END AS BLAME_DECISION_NAME
|
|
|
|
|
, CCS.STATUS
|
|
|
|
|
, CCS.REMARK
|
|
|
|
|
, CCS.ACTION_DATE
|
|
|
|
|
@@ -1962,6 +2039,7 @@
|
|
|
|
|
, STATUS = #{STATUS}
|
|
|
|
|
, REMARK = #{REMARK}
|
|
|
|
|
, MOD_DATE = NOW()
|
|
|
|
|
, ACTION_TYPE = #{ACTION_TYPE}
|
|
|
|
|
WHERE OBJID = #{OBJID}
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|