From 8abe0a8585203639d94be1425fe15f0db60fa3d7 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Thu, 30 Jul 2026 16:23:09 +0900 Subject: [PATCH 1/3] =?UTF-8?q?GW=20=ED=81=B4=EB=9D=BC=EC=9D=B4=EC=96=B8?= =?UTF-8?q?=ED=8A=B8=20=ED=95=B4=EC=A7=80=20=EC=B2=98=EB=A6=AC=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80=20-=20BLOCK/DELETE=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=EB=B0=A9=EC=8B=9D=20=EC=A7=80=EC=9B=90=20-=20APP=20?= =?UTF-8?q?=EC=8A=B9=EC=9D=B8=20=EC=8B=9C=20GW=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=20=EC=84=A4=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=83=81=EC=84=B8=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20-=20DELETE=20=EC=9A=94=EC=B2=AD=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=A4=91=20=ED=81=B4=EB=9D=BC=EC=9D=B4=EC=96=B8?= =?UTF-8?q?=ED=8A=B8=20=EC=83=81=ED=83=9C=20=EB=8F=99=EA=B8=B0=ED=99=94=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0=20-=20JSP=EC=97=90=20GW?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=EB=B0=A9=EC=8B=9D=20=EC=84=A0=ED=83=9D=20?= =?UTF-8?q?UI=20=EB=B0=8F=20=EC=8A=B9=EC=9D=B8=20=EA=B2=B0=EA=B3=BC=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../approval/portalAppApprovalManPopup.jsp | 33 ++++++++++++++- .../approval/PortalApprovalManController.java | 4 +- .../approval/PortalApprovalManService.java | 28 +++++++++++-- .../app/PortalAppApprovalListener.java | 40 +++++++++++++++++-- .../approval/app/PortalAppApprovalUI.java | 4 ++ 5 files changed, 98 insertions(+), 11 deletions(-) diff --git a/WebContent/jsp/onl/apim/approval/portalAppApprovalManPopup.jsp b/WebContent/jsp/onl/apim/approval/portalAppApprovalManPopup.jsp index 7d3e5bd..1803542 100644 --- a/WebContent/jsp/onl/apim/approval/portalAppApprovalManPopup.jsp +++ b/WebContent/jsp/onl/apim/approval/portalAppApprovalManPopup.jsp @@ -56,11 +56,16 @@ $("#expectEndDate").datepicker().inputmask("yyyy-mm-dd", {'autoUnmask': true}); $("#btn_app_approve").click(function () { - if (confirm("승인하시겠습니까?")) { + var isDeleteReq = (currentRequestType === 'DELETE'); + var gwAction = (isDeleteReq && $('#chkGwDelete').is(':checked')) ? 'DELETE' : 'BLOCK'; + var confirmMsg = isDeleteReq + ? "해지 승인 시 포털 인증키(Credential)는 삭제되며,\n게이트웨이 클라이언트는 [" + (gwAction === 'DELETE' ? "완전 삭제" : "차단(비활성화)") + "] 처리됩니다.\n승인하시겠습니까?" + : "승인하시겠습니까?"; + if (confirm(confirmMsg)) { $.ajax({ type: "POST", url: url, - data: {cmd: "APPROVE", id: key}, + data: {cmd: "APPROVE", id: key, gwAction: gwAction}, success: function (args) { <%--alert("<%= localeMessage.getString("approval.approveSuccess") %>");--%> alert("승인되었습니다."); @@ -176,6 +181,8 @@ }); }); + var currentRequestType = null; // 현재 신청 유형 (DELETE 승인 시 GW 처리방식 선택 노출용) + function detail(key) { $.ajax({ type: "POST", @@ -216,6 +223,21 @@ document.getElementById("btn_app_reject").style.display = "none"; } + // API 이용해지(DELETE) 건: 승인 가능 상태의 현재 승인자에게만 GW 처리방식 선택 노출 + currentRequestType = data.requestType; + var inProgress = data.approvalStatus.code === 'REQUESTED' || data.approvalStatus.code === 'PROCESSING'; + if (data.requestType === 'DELETE' && isCurrentApprover && inProgress) { + $("#gwActionSection").show(); + } else { + $("#gwActionSection").hide(); + } + // 처리 완료된 해지 건은 어떤 방식으로 실행됐는지 표시 + if (data.requestType === 'DELETE' && data.gwAction) { + $("#gwActionResult").text("GW 처리방식: " + (data.gwAction === 'DELETE' ? "완전 삭제" : "차단(비활성화)")).show(); + } else { + $("#gwActionResult").hide(); + } + // 삭제된 승인자(USERID 없음)로 진행 불가한 건: 요청됨/진행중 상태면 승인자가 아니어도 강제 반려 허용 var hasDeletedApprover = data.approvers.some(approver => !approver.user || !approver.user.USERID @@ -370,6 +392,13 @@ + +