[as] chore: 보완요청 사항 적용

This commit is contained in:
2026-09-14 10:16:16 +09:00
parent a7e0d8f826
commit 6c4b8a52dc
10 changed files with 35 additions and 11 deletions
@@ -64,7 +64,7 @@ export const sewerBscPlanFnrsCstItemSchema = z.object({
/** 백엔드 SewerBscPlanApplySaveRequestDto.SewerBscPlanSplmntDmndItem */
export const sewerBscPlanSplmntDmndItemSchema = z.object({
splmntDmndSn: z.number().nullish(),
splmntArtclComCd: z.string().optional(),
splmntArtclComCd: z.string().nullish(),
splmntDmndCn: z.string().optional(),
splmntDmndDt: z.string().optional(),
splmntDmndAtchFileGroupId: z.string().optional(),
@@ -6,6 +6,7 @@ export const FNRS_CNSLTN_VIEW_BUTTON_ACTION = {
envoSbmsn: "envoSbmsn",
rjct: "rjct",
sncnAprv: "sncnAprv",
lclRply: "lclRply",
rvwRply: "rvwRply",
rqstTechRvw: "rqstTechRvw",
fileSplmnt: "fileSplmnt",
@@ -39,6 +40,7 @@ const ROLE_STATUS_BUTTON_ACTIONS: Record<string, Record<string, FnrsCnsltnViewBu
},
ROLE_USER04: {
ST: [FNRS_CNSLTN_VIEW_BUTTON_ACTION.envoSbmsn, FNRS_CNSLTN_VIEW_BUTTON_ACTION.rjct],
RM: [FNRS_CNSLTN_VIEW_BUTTON_ACTION.lclRply],
EP: [FNRS_CNSLTN_VIEW_BUTTON_ACTION.sncnAprv],
},
ROLE_USER03: {
@@ -86,7 +86,7 @@ export const fnrsCnsltnRegistSchema = z.object({
splmntDmndList: z.array(
z.object({
splmntDmndSn: z.number().nullish(),
splmntArtclComCd: z.string().nullable(),
splmntArtclComCd: z.string().nullish(),
splmntArtclCdNm: z.string().nullish(),
splmntDmndCn: z.string().optional(),
splmntDmndDt: z.string().optional(),
@@ -272,6 +272,19 @@ function FloatingActionButtons({
});
}
async function handleLclRplyClick() {
const payload: DocPrgrsUpdateRequestDto = {
docNo,
docSeComCd,
prgrsSttsComCd: "RB",
};
await executeAction({
action: FNRS_CNSLTN_VIEW_BUTTON_ACTION.lclRply,
request: payload,
successMessage: "지자체 회신이 완료되었습니다.",
});
}
async function handleRjctClick() {
const payload: DocPrgrsUpdateRequestDto = {
docNo,
@@ -491,6 +504,11 @@ function FloatingActionButtons({
환경청제출
</Button>
)}
{shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.lclRply) && (
<Button onClick={handleLclRplyClick} disabled={isProcessing}>
지자체회신
</Button>
)}
{shouldShowButton(FNRS_CNSLTN_VIEW_BUTTON_ACTION.rjct) && (
<Button color="red" onClick={handleRjctClick} disabled={isProcessing}>
반려
@@ -733,6 +751,7 @@ const buttonActionHandlers: Record<FnrsCnsltnViewButtonAction, ActionHandler> =
envoSbmsn: handleChangePrgrsSttsComCd,
rjct: handleChangePrgrsSttsComCd,
sncnAprv: handleChangePrgrsSttsComCd,
lclRply: handleChangePrgrsSttsComCd,
rvwRply: handleTechReview,
rqstTechRvw: handleRequestExamine,
fileSplmnt: handleDmndSplmnt,
@@ -32,7 +32,7 @@ function BusinessCostSection({ bizCstList }: BusinessCostSectionProps) {
<TableHead colSpan={2}>증감</TableHead>
</TableRow>
<TableRow>
<TableHead className="w-[12rem]">(C-B)</TableHead>
<TableHead className="w-[12rem]">(C-A)</TableHead>
<TableHead className="w-[6rem]">%</TableHead>
</TableRow>
</TableHeader>
@@ -280,7 +280,10 @@ const TechReviewOpinionSection = forwardRef<
<SectionCollapsible title={`${REVIEW_STEP_LABELS.KECO} 검토의견`}>
<div className="space-y-6">
{kecoRvwList.length > 0 ? <TechReviewOpinionTable items={kecoRvwList} /> : null}
{/*
재원협의에서 환경공단 검토의견은 자동 생성
{renderOpinionForm("KECO")}
*/}
</div>
</SectionCollapsible>
) : null}
@@ -22,10 +22,10 @@ export function mapDetailToFormData(data: InstlSncnMngDetResponse): InstlSncnReg
bizCn: detDto.bizCn,
taskSeComCd: parseTaskSeComCdFromApi(detDto.taskSeComCd),
sncnSeComCd: detDto.sncnSeComCd,
dsgnrNm: detDto.dsgnrNm,
dsgnrTelno: detDto.dsgnrTelno,
dsgnrOgdpNm: detDto.dsgnrOgdpNm,
dsgnrEmlAddr: detDto.dsgnrEmlAddr,
dsgnrNm: detDto.dsgnrNm ?? "",
dsgnrTelno: detDto.dsgnrTelno ?? "",
dsgnrOgdpNm: detDto.dsgnrOgdpNm ?? "",
dsgnrEmlAddr: detDto.dsgnrEmlAddr ?? "",
aplcntNm: detDto.aplcntNm ?? "",
aplcntMblTelno: detDto.aplcntMblTelno ?? "",
aplcntOgdpNm: detDto.aplcntOgdpNm ?? "",
@@ -78,7 +78,7 @@ export const instlSncnRegistSchema = z.object({
splmntDmndList: z.array(
z.object({
splmntDmndSn: z.number().nullish(),
splmntArtclComCd: z.string().optional(),
splmntArtclComCd: z.string().nullish(),
splmntArtclCdNm: z.string().nullish(),
splmntDmndCn: z.string().optional(),
splmntDmndDt: z.string().optional(),
@@ -32,7 +32,7 @@ function BusinessCostSection({ bizCstList }: BusinessCostSectionProps) {
<TableHead colSpan={2}>증감</TableHead>
</TableRow>
<TableRow>
<TableHead className="w-[12rem]">(C-B)</TableHead>
<TableHead className="w-[12rem]">(C-A)</TableHead>
<TableHead className="w-[6rem]">%</TableHead>
</TableRow>
</TableHeader>
@@ -18,7 +18,7 @@ import {
} from "@common/components";
import { buildAcntgCostItems, recalculateBizCstTotals } from "../lib/business-cost-form-utils";
import { calcDiffPercent } from "../lib/format-utils";
import { calcDiffPercent } from "../lib/format-utils";
interface BusinessCostFormData {
bizCstList: Array<{
@@ -95,7 +95,7 @@ function BusinessCostFormSection() {
<TableHead colSpan={2}>증감</TableHead>
</TableRow>
<TableRow>
<TableHead className="w-[12rem]">(C-B)</TableHead>
<TableHead className="w-[12rem]">(C-A)</TableHead>
<TableHead className="w-[6rem]">%</TableHead>
</TableRow>
</TableHeader>