비고만 없애놓고 결재상신 올려놓음

This commit is contained in:
leeheejin
2025-12-17 14:31:25 +09:00
parent 7add878853
commit 7c33c8b4ad
4 changed files with 142 additions and 33 deletions

View File

@@ -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>

View File

@@ -67,6 +67,11 @@ $(document).ready(function(){
fn_registResultPopUp();
});
// 결재상신
$("#btnApproval").click(function(){
fn_approval();
});
fn_search();
});
@@ -217,6 +222,35 @@ function fn_FileRegist(objId, docType, docTypeName){
fn_centerPopup(popup_width, popup_height, url);
}
// 결재상신
function fn_approval(){
var selected = _tabulGrid.getSelectedData();
if(selected.length == 0){
Swal.fire("결재상신할 데이터를 선택해주세요.");
return;
}
if(selected.length > 1){
Swal.fire("한번에 한개의 결재만 가능합니다.");
return;
}
var title = fnc_checkNull(selected[0].ECR_NO) + " " + fnc_checkNull(selected[0].PART_NO);
var objId = fnc_checkNull(selected[0].OBJID);
Swal.fire({
title: '결재상신',
text: '결재상신 하시겠습니까?',
icon: 'question',
showCancelButton: true,
confirmButtonText: '확인',
cancelButtonText: '취소'
}).then((result) => {
if(result.isConfirmed){
window.open("/approval/registApproval.do?targetType=ECR&targetObjId="+objId+"&approvalTitle="+encodeURIComponent(title)+"&callbackFnc=fn_search","registApproval","width=700,height=700");
}
});
}
</script>
<body>
@@ -233,6 +267,7 @@ function fn_FileRegist(objId, docType, docTypeName){
<span><%=menuName%></span>
</h2>
<div class="btnArea">
<input type="button" class="plm_btns" value="결재상신" id="btnApproval">
<input type="button" class="plm_btns" value="ECR 등록" id="btnRegistEcr">
<input type="button" class="plm_btns" value="ECR 결과등록" id="btnRegistResult">
<input type="button" class="plm_btns" value="조회" id="btnSearch">

View File

@@ -204,12 +204,14 @@ function fn_save(){
<textarea name="ISSUE_CONTENT" id="ISSUE_CONTENT" rows="4" style="width:100%;" required reqTitle="이슈사항" type="text">${info.issue_content}</textarea>
</td>
</tr>
<!-- 비고 주석처리
<tr>
<td class="input_title"><label>비고</label></td>
<td colspan="3">
<textarea name="REMARK" id="REMARK" rows="2" style="width:100%;">${info.remark}</textarea>
</td>
</tr>
-->
</table>
</div>

View File

@@ -353,13 +353,7 @@ function fn_save(){
<tr>
<td class="input_title"><label>이슈사항</label></td>
<td colspan="3">
<textarea rows="4" style="width:100%;" readonly>${info.issue_content}</textarea>
</td>
</tr>
<tr>
<td class="input_title"><label>비고</label></td>
<td colspan="3">
<textarea rows="2" style="width:100%;" readonly>${info.remark}</textarea>
<textarea rows="10" style="width:100%;" readonly>${info.issue_content}</textarea>
</td>
</tr>
</table>