품질관리_수입검사요청, 관리 수정
This commit is contained in:
@@ -105,7 +105,14 @@ var columns = [
|
|||||||
{headerHozAlign:'center', hozAlign:'left', minWidth:120, widthGrow:2, title:'품번', field:'PART_NO'},
|
{headerHozAlign:'center', hozAlign:'left', minWidth:120, widthGrow:2, title:'품번', field:'PART_NO'},
|
||||||
{headerHozAlign:'center', hozAlign:'left', minWidth:150, widthGrow:3, title:'품명', field:'PART_NAME'},
|
{headerHozAlign:'center', hozAlign:'left', minWidth:150, widthGrow:3, title:'품명', field:'PART_NAME'},
|
||||||
{headerHozAlign:'center', hozAlign:'left', minWidth:130, widthGrow:2, title:'공급업체', field:'PARTNER_NAME'},
|
{headerHozAlign:'center', hozAlign:'left', minWidth:130, widthGrow:2, title:'공급업체', field:'PARTNER_NAME'},
|
||||||
{headerHozAlign:'center', hozAlign:'center', minWidth:80, widthGrow:1, title:'입고결과', field:'DELIVERY_STATUS'},
|
{headerHozAlign:'center', hozAlign:'center', minWidth:80, widthGrow:1, title:'입고결과', field:'DELIVERY_STATUS',
|
||||||
|
formatter:fnc_createGridAnchorTag,
|
||||||
|
cellClick:function(e, cell){
|
||||||
|
var objId = fnc_checkNull(cell.getData().OBJID);
|
||||||
|
var DELIVERY_STATUS = fnc_checkNull(cell.getData().DELIVERY_STATUS);
|
||||||
|
fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS);
|
||||||
|
}
|
||||||
|
},
|
||||||
{headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1, title:'요청일', field:'REQUEST_DATE'},
|
{headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1, title:'요청일', field:'REQUEST_DATE'},
|
||||||
{headerHozAlign:'center', hozAlign:'center', minWidth:80, widthGrow:1, title:'요청자', field:'REQUEST_USER_NAME'},
|
{headerHozAlign:'center', hozAlign:'center', minWidth:80, widthGrow:1, title:'요청자', field:'REQUEST_USER_NAME'},
|
||||||
{headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1, title:'검사여부', field:'INSPECTION_YN'},
|
{headerHozAlign:'center', hozAlign:'center', minWidth:100, widthGrow:1, title:'검사여부', field:'INSPECTION_YN'},
|
||||||
@@ -184,6 +191,23 @@ function fn_excelDownload(){
|
|||||||
form.submit();
|
form.submit();
|
||||||
form.action = "";
|
form.action = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fn_deliveryAcceptanceViewPopUp(objId,DELIVERY_STATUS){
|
||||||
|
var popup_width = 1560;
|
||||||
|
var popup_height = 1050;
|
||||||
|
|
||||||
|
var hiddenForm = document.hiddenForm;
|
||||||
|
var target = "deliveryAcceptancePopUp";
|
||||||
|
var url = "/purchaseOrder/deliveryAcceptanceFormPopUp_new.do";
|
||||||
|
fn_centerPopup(popup_width, popup_height, "", target);
|
||||||
|
|
||||||
|
hiddenForm.action = url;
|
||||||
|
hiddenForm.PURCHASE_ORDER_MASTER_OBJID.value = objId;
|
||||||
|
hiddenForm.DELIVERY_STATUS.value = DELIVERY_STATUS;
|
||||||
|
hiddenForm.actionType.value = 'view'; // 뷰 전용으로 설정
|
||||||
|
hiddenForm.target = target;
|
||||||
|
hiddenForm.submit();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -191,6 +215,7 @@ function fn_excelDownload(){
|
|||||||
<input type="hidden" name="OBJID" id="OBJID">
|
<input type="hidden" name="OBJID" id="OBJID">
|
||||||
<input type="hidden" name="PURCHASE_ORDER_NO" id="PURCHASE_ORDER_NO">
|
<input type="hidden" name="PURCHASE_ORDER_NO" id="PURCHASE_ORDER_NO">
|
||||||
<input type="hidden" name="PURCHASE_ORDER_MASTER_OBJID" id="PURCHASE_ORDER_MASTER_OBJID">
|
<input type="hidden" name="PURCHASE_ORDER_MASTER_OBJID" id="PURCHASE_ORDER_MASTER_OBJID">
|
||||||
|
<input type="hidden" name="DELIVERY_STATUS" id="DELIVERY_STATUS">
|
||||||
<input type="hidden" name="actionType" id="actionType">
|
<input type="hidden" name="actionType" id="actionType">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -150,6 +150,14 @@ function fn_search(){
|
|||||||
value: selectedProjectNos
|
value: selectedProjectNos
|
||||||
}).appendTo('#form1');
|
}).appendTo('#form1');
|
||||||
|
|
||||||
|
// 수입검사 진행 리스트는 요청완료 건만 조회
|
||||||
|
$('input[name="request_status_filter"]').remove();
|
||||||
|
$('<input>').attr({
|
||||||
|
type: 'hidden',
|
||||||
|
name: 'request_status_filter',
|
||||||
|
value: '요청완료'
|
||||||
|
}).appendTo('#form1');
|
||||||
|
|
||||||
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/quality/incomingInspectionGridList.do", columns, true);
|
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/quality/incomingInspectionGridList.do", columns, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -626,40 +626,68 @@ function fn_openPartDetailPopUp(partObjId) {
|
|||||||
function fn_openImageFilePopUp(objId) {
|
function fn_openImageFilePopUp(objId) {
|
||||||
var popup_width = 650;
|
var popup_width = 650;
|
||||||
var popup_height = 550;
|
var popup_height = 550;
|
||||||
var url = "/common/ImageRegistPopup.do?targetObjId=" + objId + "&docType=INSPECTION_DEFECT_IMAGE&docTypeName=검사이미지&callbackFnc=fn_refreshRightGrid";
|
var url = "/common/ImageRegistPopup.do?targetObjId=" + objId + "&docType=INSPECTION_DEFECT_IMAGE&docTypeName=검사이미지";
|
||||||
var popup = window.open(url, "imageFilePopUp", "width=" + popup_width + ",height=" + popup_height + ",scrollbars=yes,resizable=yes");
|
var popup = window.open(url, "imageFilePopUp", "width=" + popup_width + ",height=" + popup_height + ",scrollbars=yes,resizable=yes");
|
||||||
|
|
||||||
// 팝업 닫힘 감지하여 우측 그리드 새로고침
|
// 팝업 닫힘 감지하여 해당 행의 파일 카운트만 업데이트
|
||||||
var checkPopup = setInterval(function() {
|
fn_watchPopupClose(popup, objId, 'IMAGE_FILE_CNT', 'INSPECTION_DEFECT_IMAGE');
|
||||||
if(popup.closed) {
|
|
||||||
clearInterval(checkPopup);
|
|
||||||
fn_refreshRightGrid();
|
|
||||||
}
|
|
||||||
}, 500);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 첨부파일 팝업
|
// 첨부파일 팝업
|
||||||
function fn_openAttachFilePopUp(objId) {
|
function fn_openAttachFilePopUp(objId) {
|
||||||
var popup_width = 800;
|
var popup_width = 800;
|
||||||
var popup_height = 300;
|
var popup_height = 300;
|
||||||
var params = "?targetObjId=" + objId + "&docType=INSPECTION_DEFECT_FILE&docTypeName=검사첨부&callbackFnc=fn_refreshRightGrid";
|
var params = "?targetObjId=" + objId + "&docType=INSPECTION_DEFECT_FILE&docTypeName=검사첨부";
|
||||||
var url = "/projectConcept/FileRegistPopup.do" + params;
|
var url = "/common/FileRegistPopup.do" + params;
|
||||||
var popup = window.open(url, "attachFilePopUp", "width=" + popup_width + ",height=" + popup_height + ",scrollbars=yes,resizable=yes");
|
var popup = window.open(url, "attachFilePopUp", "width=" + popup_width + ",height=" + popup_height + ",scrollbars=yes,resizable=yes");
|
||||||
|
|
||||||
// 팝업 닫힘 감지하여 우측 그리드 새로고침
|
// 팝업 닫힘 감지하여 해당 행의 파일 카운트만 업데이트
|
||||||
|
fn_watchPopupClose(popup, objId, 'ATTACH_FILE_CNT', 'INSPECTION_DEFECT_FILE');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 팝업 닫힘 감지 및 파일 카운트 업데이트
|
||||||
|
function fn_watchPopupClose(popup, objId, fieldName, docType) {
|
||||||
var checkPopup = setInterval(function() {
|
var checkPopup = setInterval(function() {
|
||||||
if(popup.closed) {
|
if(popup.closed) {
|
||||||
clearInterval(checkPopup);
|
clearInterval(checkPopup);
|
||||||
fn_refreshRightGrid();
|
// 파일 카운트 조회 후 해당 행만 업데이트
|
||||||
|
fn_updateRightGridFileCnt(objId, fieldName, docType);
|
||||||
}
|
}
|
||||||
}, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 우측 그리드 새로고침 (파일 업로드 후 콜백)
|
// 우측 그리드 파일 카운트 업데이트
|
||||||
function fn_refreshRightGrid() {
|
function fn_updateRightGridFileCnt(objId, fieldName, docType) {
|
||||||
if(selectedDetailObjid) {
|
$.ajax({
|
||||||
fn_searchRightGrid(selectedDetailObjid);
|
url: "/common/getFileList.do",
|
||||||
}
|
type: "POST",
|
||||||
|
data: { targetObjId: objId, docType: docType },
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
var cnt = data ? data.length : 0;
|
||||||
|
var rows = rightGrid.getRows();
|
||||||
|
rows.forEach(function(row) {
|
||||||
|
if(row.getData().OBJID === objId) {
|
||||||
|
var updateData = {};
|
||||||
|
updateData[fieldName] = cnt;
|
||||||
|
row.update(updateData);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 공통 fnc_tabulCallbackFnc 오버라이드 (이 페이지에서는 rightGrid 사용)
|
||||||
|
function fnc_tabulCallbackFnc(objId, docType, columnField, fileCnt) {
|
||||||
|
var rows = rightGrid.getRows();
|
||||||
|
rows.forEach(function(row) {
|
||||||
|
if(row.getData().OBJID === objId) {
|
||||||
|
var updateData = {};
|
||||||
|
var targetField = (columnField && columnField !== '') ? columnField : 'FILE_CNT';
|
||||||
|
updateData[targetField] = fileCnt;
|
||||||
|
row.update(updateData);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// =====================================================
|
// =====================================================
|
||||||
|
|||||||
@@ -711,9 +711,9 @@
|
|||||||
,DEFECT.INSPECTOR_NAME_DISPLAY AS INSPECTOR_NAME
|
,DEFECT.INSPECTOR_NAME_DISPLAY AS INSPECTOR_NAME
|
||||||
/* 검사일: YYYY-MM-DD 외 N건 형태 */
|
/* 검사일: YYYY-MM-DD 외 N건 형태 */
|
||||||
,DEFECT.INSPECTION_DATE_DISPLAY AS INSPECTION_DATE
|
,DEFECT.INSPECTION_DATE_DISPLAY AS INSPECTION_DATE
|
||||||
/* 검사결과: 하나라도 NG면 NG */
|
/* 검사결과: 하나라도 NG면 NG, 검사 대상(스킵 제외) 모두 검사완료면 OK, 일부만 검사면 검사중 */
|
||||||
,(CASE WHEN DEFECT.NG_COUNT > 0 THEN 'NG'
|
,(CASE WHEN DEFECT.NG_COUNT > 0 THEN 'NG'
|
||||||
WHEN DEFECT.DEFECT_TOTAL_COUNT > 0 AND DEFECT.DEFECT_TOTAL_COUNT = DEFECT.INSPECTED_COUNT THEN 'OK'
|
WHEN DEFECT.INSPECTION_TARGET_COUNT > 0 AND DEFECT.INSPECTION_TARGET_COUNT = DEFECT.INSPECTED_COUNT THEN 'OK'
|
||||||
WHEN DEFECT.INSPECTED_COUNT > 0 THEN '검사중'
|
WHEN DEFECT.INSPECTED_COUNT > 0 THEN '검사중'
|
||||||
ELSE '' END) AS INSPECTION_RESULT
|
ELSE '' END) AS INSPECTION_RESULT
|
||||||
|
|
||||||
@@ -743,7 +743,7 @@
|
|||||||
FROM INCOMING_INSPECTION_DETAIL
|
FROM INCOMING_INSPECTION_DETAIL
|
||||||
GROUP BY PURCHASE_ORDER_MASTER_OBJID
|
GROUP BY PURCHASE_ORDER_MASTER_OBJID
|
||||||
) AS IID ON POM.OBJID::VARCHAR = IID.PURCHASE_ORDER_MASTER_OBJID
|
) AS IID ON POM.OBJID::VARCHAR = IID.PURCHASE_ORDER_MASTER_OBJID
|
||||||
/* 불량상세 테이블에서 검사일/검사자/검사결과 집계 */
|
/* 불량상세 테이블에서 검사일/검사자/검사결과 집계 (스킵 항목 제외) */
|
||||||
LEFT OUTER JOIN (
|
LEFT OUTER JOIN (
|
||||||
SELECT IID2.PURCHASE_ORDER_MASTER_OBJID
|
SELECT IID2.PURCHASE_ORDER_MASTER_OBJID
|
||||||
/* 검사자: 여러명이면 "XXX 외 N건" 형태로 표시 */
|
/* 검사자: 여러명이면 "XXX 외 N건" 형태로 표시 */
|
||||||
@@ -762,7 +762,9 @@
|
|||||||
THEN TO_CHAR(MIN(IDF.INSPECTION_DATE), 'YYYY-MM-DD')
|
THEN TO_CHAR(MIN(IDF.INSPECTION_DATE), 'YYYY-MM-DD')
|
||||||
ELSE ''
|
ELSE ''
|
||||||
END AS INSPECTION_DATE_DISPLAY
|
END AS INSPECTION_DATE_DISPLAY
|
||||||
,COUNT(*) AS DEFECT_TOTAL_COUNT
|
/* 검사 대상 건수 (스킵 제외, 검사인 항목만) */
|
||||||
|
,COUNT(CASE WHEN IID2.INSPECTION_YN = '검사' THEN 1 END) AS INSPECTION_TARGET_COUNT
|
||||||
|
/* 검사결과 입력된 건수 */
|
||||||
,COUNT(CASE WHEN IDF.INSPECTION_RESULT IS NOT NULL AND IDF.INSPECTION_RESULT != '' THEN 1 END) AS INSPECTED_COUNT
|
,COUNT(CASE WHEN IDF.INSPECTION_RESULT IS NOT NULL AND IDF.INSPECTION_RESULT != '' THEN 1 END) AS INSPECTED_COUNT
|
||||||
,COUNT(CASE WHEN IDF.INSPECTION_RESULT = 'NG' THEN 1 END) AS NG_COUNT
|
,COUNT(CASE WHEN IDF.INSPECTION_RESULT = 'NG' THEN 1 END) AS NG_COUNT
|
||||||
FROM INCOMING_INSPECTION_DETAIL IID2
|
FROM INCOMING_INSPECTION_DETAIL IID2
|
||||||
@@ -851,6 +853,11 @@
|
|||||||
WHEN IID.INSPECTED_COUNT > 0 THEN '검사중'
|
WHEN IID.INSPECTED_COUNT > 0 THEN '검사중'
|
||||||
ELSE '' END) = #{search_inspection_result}
|
ELSE '' END) = #{search_inspection_result}
|
||||||
</if>
|
</if>
|
||||||
|
<!-- 요청현황 필터 (수입검사 진행 리스트에서 요청완료 건만 조회) -->
|
||||||
|
<if test="request_status_filter != null and request_status_filter == '요청완료'">
|
||||||
|
AND REQ.DELIVERY_TOTAL_COUNT = REQ.SELECTED_COUNT
|
||||||
|
AND REQ.SELECTED_COUNT > 0
|
||||||
|
</if>
|
||||||
ORDER BY POM.REGDATE DESC
|
ORDER BY POM.REGDATE DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user