From 4be56402d804abfc0736cd88fae8097a6ea1d387 Mon Sep 17 00:00:00 2001 From: jangwoong Date: Wed, 21 Oct 2026 11:42:30 +0900 Subject: [PATCH] =?UTF-8?q?[as=20fr]=202=EC=B0=A8=20=EA=B2=B0=EC=9E=AC=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=EC=8B=9C=20=EB=B2=84=ED=8A=BC=202=EC=B0=A8?= =?UTF-8?q?=EA=B2=B0=EC=9E=AC=EC=8B=9C=20=EA=B2=80=ED=86=A0=EC=9D=98?= =?UTF-8?q?=EA=B2=AC=20=ED=8C=9D=EC=97=85=20=EB=9C=A8=EC=A7=80=20=EB=AA=BB?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/as/docs/pm2/01.pm2-deploy-and-control.md | 1 + .../pages/fnrs-cnsltn/lib/button-config.ts | 19 +++++++++++++++---- .../ui/components/floating-action-buttons.tsx | 9 ++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/apps/as/docs/pm2/01.pm2-deploy-and-control.md b/apps/as/docs/pm2/01.pm2-deploy-and-control.md index e2f8a68a4..9a676f336 100644 --- a/apps/as/docs/pm2/01.pm2-deploy-and-control.md +++ b/apps/as/docs/pm2/01.pm2-deploy-and-control.md @@ -3,6 +3,7 @@ 본 문서는 ONA 프론트엔드 모노레포 프로젝트(`frontend_as`)에서 **PM2를 활용한 애플리케이션 배포, 실행, 중지 및 모니터링 명령**을 체계적으로 정리한 가이드입니다. --- +pnpm --filter=as... build ## 1. 개요 및 아키텍처 diff --git a/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts b/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts index a232a0639..222adb75c 100644 --- a/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts +++ b/apps/as/src/pages/fnrs-cnsltn/lib/button-config.ts @@ -330,6 +330,7 @@ export interface GetButtonConfigsOptions { isForkJoin?: boolean; branchSeCd?: "SP" | "SF" | "TOTAL_AGG" | "MAIN" | string; branchSttsCd?: "WAITING" | "IN_PROGRESS" | "COMPLETED" | "SUPPLEMENT" | "REJECTED" | string; + isSecondApproval?: boolean; } const PENDING_APPROVAL_ACTIONS = new Set([ @@ -354,14 +355,19 @@ function resolveRoleUser01AtrzButtonActions( // 본인 브랜치가 보완요청 중이면 'SL' 맵핑 적용 (검토/승인 버튼 숨김, 실무협의서관리만 노출) effectiveStatus = "SL"; break; - case "IN_PROGRESS": + case "IN_PROGRESS": { // 본인 브랜치가 정상 진행 중이면 원천 상태('TE' 또는 'RK') 정상 적용! - effectiveStatus = prgrsSttsComCd === "RK" ? "RK" : "TE"; + // 2차 결재 중이거나(isSecondApproval) 원천 상태가 'RK'이면 'RK', 1차 검토이면 'TE' + const isSecondReview = Boolean(options?.isSecondApproval || prgrsSttsComCd === "RK"); + effectiveStatus = isSecondReview ? "RK" : "TE"; break; - case "COMPLETED": + } + case "COMPLETED": { // 본인 브랜치 승인 완료 후 타 브랜치 대기 중이면 조회 전용 맵 적용 - effectiveStatus = prgrsSttsComCd === "RK" ? "RR" : "TP"; + const isSecondReview = Boolean(options?.isSecondApproval || prgrsSttsComCd === "RK"); + effectiveStatus = isSecondReview ? "RR" : "TP"; break; + } case "WAITING": return [FNRS_CNSLTN_VIEW_BUTTON_ACTION.pwrkCnsltnDocMng]; } @@ -387,6 +393,11 @@ function resolveRoleUser01AtrzButtonActions( } return actions.filter((action) => { + // 2차 결재(조치결과서 검토) 단계에서는 '검토 결과 조회' 버튼 비활성화 (1차 기술검토 전용) + if (options?.isSecondApproval && action === FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwRsltInq) { + return false; + } + const needsPendingApproval = PENDING_APPROVAL_ACTIONS.has(action); if (needsPendingApproval && options?.hasPendingApprovalRequest === false) return false; diff --git a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx index 0e9c87181..6d865fb68 100644 --- a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx +++ b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx @@ -192,8 +192,12 @@ function FloatingActionButtons({ draftGenLatest?.pwrkCnsltnDocNo ?? costVrfcLatest?.pwrkCnsltnDocNo; + const isSecondApproval = useMemo(() => { + return elaprDocPrgrsList.some((row) => Number(row.elaprCycl) === 2); + }, [elaprDocPrgrsList]); + const elaprPrgrsForPending = - prgrsSttsComCd === "RK" + isSecondApproval || prgrsSttsComCd === "RK" ? elaprDocPrgrsList.filter((row) => Number(row.elaprCycl) === 2) : elaprDocPrgrsList; const hasPendingApprovalRequest = hasCurrentUserPendingApprovalRequest( @@ -318,6 +322,7 @@ function FloatingActionButtons({ isForkJoin, branchSeCd: userBranchSeCd, branchSttsCd: userBranchSttsCd, + isSecondApproval, }); }, [ canRetryCostVrfc, @@ -333,6 +338,7 @@ function FloatingActionButtons({ isForkJoin, isPwrkCnsltnLoading, isRvwLoginUserLoading, + isSecondApproval, needsAiAutoLatest, needsAtrzResolve, needsElaprPrgrsCheck, @@ -924,6 +930,7 @@ function FloatingActionButtons({ )} {shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwRsltInq) && + !isSecondApproval && !( isForkJoin && (userPendingBranchSeCd === "TOTAL_AGG" || userPendingAtrzSeComCd === "ATRZ04")