diff --git a/apps/as/src/entities/elapr/ui/elapr-apln-picker-grid.tsx b/apps/as/src/entities/elapr/ui/elapr-apln-picker-grid.tsx
index 7f7a88911..c8c84e1c6 100644
--- a/apps/as/src/entities/elapr/ui/elapr-apln-picker-grid.tsx
+++ b/apps/as/src/entities/elapr/ui/elapr-apln-picker-grid.tsx
@@ -90,6 +90,7 @@ function ElaprAplnPickerGrid({
? isExternalLoading
: aplnQuery.isPending && Boolean(elaprTmpltId);
const pickingRow = pickingRowKey ? rows.find((r) => r.rowKey === pickingRowKey) : undefined;
+ const excludedVisibleRows = visibleRows.filter((r) => r.atrzSeComCd !== "ATRZ01");
function handleDragEnd(event: DragEndEvent) {
const { active, over } = event;
@@ -149,7 +150,7 @@ function ElaprAplnPickerGrid({
) : !isReady ? (
결재서식을 선택하세요.
- ) : visibleRows.length === 0 ? (
+ ) : excludedVisibleRows.length === 0 ? (
등록된 결재선이 없습니다. [결재선 추가]로 결재자를 등록하세요.
@@ -174,10 +175,10 @@ function ElaprAplnPickerGrid({
r.rowKey)}
+ items={excludedVisibleRows.map((r) => r.rowKey)}
strategy={verticalListSortingStrategy}
>
- {visibleRows.map((row, index) => (
+ {excludedVisibleRows.map((row, index) => (
{
if (needsAtrzResolve && isRvwLoginUserLoading) return [];
@@ -317,12 +319,11 @@ function FloatingActionButtons({
return;
}
- const isResultReply = prgrsSttsComCd === "RR";
const payload = buildTechReviewReplyPayload(
data,
checklistFormState,
"ENV",
- isResultReply ? "EP" : "RB",
+ "EP",
"CP",
getReviewOpinionFormData(),
opnrNm,
@@ -336,6 +337,36 @@ function FloatingActionButtons({
techReviewOpinionRef?.current?.resetForm();
}
+ async function handleRvwOpnnRplyClick() {
+ const { percent } = computeReviewStepChecklistProgress(
+ data.cklstResultList ?? [],
+ checklistFormState.results,
+ "ENV",
+ );
+
+ if (percent !== 100) {
+ alert("모든 체크리스트 항목을 체크해야 검토 의견 회신이 가능합니다.");
+ return;
+ }
+
+ const payload = buildTechReviewReplyPayload(
+ data,
+ checklistFormState,
+ "ENV",
+ "RB",
+ "CP",
+ getReviewOpinionFormData(),
+ opnrNm,
+ );
+
+ await executeAction({
+ action: FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwOpnnRply,
+ request: payload,
+ successMessage: "검토 의견 회신이 완료되었습니다.",
+ });
+ techReviewOpinionRef?.current?.resetForm();
+ }
+
async function handleRqstTechRvwClick() {
if (prgrsSttsComCd === "LE") {
const { percent } = computeReviewStepChecklistProgress(
@@ -365,7 +396,7 @@ function FloatingActionButtons({
await executeAction({
action: FNRS_CNSLTN_VIEW_BUTTON_ACTION.rqstActnRvw,
request: payload,
- successMessage: "조치결과 검토의뢰가 완료되었습니다.",
+ successMessage: "조치 결과 검토 의뢰가 완료되었습니다.",
});
}
@@ -570,6 +601,11 @@ function FloatingActionButtons({
결과 회신
)}
+ {shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwOpnnRply) && (
+
+ )}
{shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.rvwRply) && (