diff --git a/apps/wr/app/store/map/ruseMap/index.tsx b/apps/wr/app/store/map/ruseMap/index.tsx index a42355f81..6333846b4 100644 --- a/apps/wr/app/store/map/ruseMap/index.tsx +++ b/apps/wr/app/store/map/ruseMap/index.tsx @@ -1,4 +1,4 @@ -import { fetchType, getFetch } from "@/components/lib/api"; +import { fetchType, getFetch, postFectch } from "@/components/lib/api"; import type { CommonTableProps } from "../../common/type/header"; import type { WaterReuseFacility } from "../../ruseFcltMng/fcltSttn/pbnstSttn/type"; import { @@ -16,7 +16,7 @@ export type ruseMapState = { ruseMapCount: number; isInit: boolean; fclts: string[]; - ruseDetailList:customPbnst[] + ruseDetailList: customPbnst[]; ruseMapHeadList: CommonTableProps[]; ruseMapNodeList: CommonTableProps[]; }; @@ -32,16 +32,17 @@ type ruseMapActions = { fclts: string[] ) => void; ruseMapDetail: (ruseFcltId: string) => Promise; - getRuseMaplList :(ruseFcltId: string) => void; + getRuseMaplList: (bscFctCd: string) => void; }; + export type ruseMapType = ruseMapState & ruseMapActions; export const ruseMapStateExport: ruseMapState = { ruseMap: { isInit: false, ruseMapRes: [], - ruseDetailList:[], + ruseDetailList: [], fclts: [], ruseMapCount: 1, ruseMapHeadList: pbnSttHeadListExport, @@ -109,15 +110,36 @@ export const ruseMapActionsExport: (set: any) => ruseMapActions = ( console.log(errorHasu); throw errorHasu; // 호출부에서 catch 가능하도록 } - },getRuseMaplList:async(bscFctCd: string) =>{ + }, + getRuseMaplList: async (bscFctCd: string) => { try { - const ruseDetailList = await getFetch("wr", `/reuseFc/pubFc/${bscFctCd}`); + const ruseDetailList = await getFetch( + fetchType.WR, + `/reuseFc/pubFc/${bscFctCd}` + ); + const year = new Date().getFullYear(); + const data = [bscFctCd]; + const rusePrfList = await postFectch( + `/reuseFc/pubDetailList/${year}/0/1/10`, + data, + fetchType.WR + ); + const dataList = ruseDetailList.map((ruse) => { + const matchRuse = rusePrfList?.data.find( + (prf) => prf.pbnstRuseFcltId === ruse.pbnstRuseFcltId + ); + return { + ...ruse, + prfList: matchRuse.prfList, + }; + }); + console.log("/dataList ", dataList); set((state: ruseMapState) => { return { ...state, ruseMap: { ...state.ruseMap, - ruseDetailList: ruseDetailList, + ruseDetailList: dataList, }, }; }); @@ -125,7 +147,6 @@ export const ruseMapActionsExport: (set: any) => ruseMapActions = ( console.log(errorHasu); throw errorHasu; // 호출부에서 catch 가능하도록 } - } - + }, }; }; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx index f8bb81b88..226de8f17 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx @@ -231,6 +231,30 @@ export const fcBizSchema = z.object({ mdfr: z.string().nullish(), }); +const PrfSchema = z.object({ + pbnstRuseFcltId: z.string(), + ym: z.string(), // 예: "202310" + wshwtr: z.number(), + coolUswtr: z.number(), + cleanUswtr: z.number(), + drwtUswtr: z.number(), + dltnUswtr: z.number(), + ithlRswtr: z.number(), + ithlEtcUswtr: z.number(), + cleanToilUswtr: z.number(), + resn: z.number(), + lndwtr: z.number(), + hydUswtr: z.number(), + rvrKeepUswtr: z.number(), + farmUswtr: z.number(), + ugwtChr: z.number(), + indstUswtr: z.number(), + regDt: z.date().default(new Date()).nullish(), + rgtr: z.string().nullish(), + mdfcnDt: z.date().default(new Date()).nullish(), + mdfr: z.string().nullish(), +}); + export const pbnstRegZod = z.object({ pbnstRuseFcltId: z.string().default(""), swtrmtFcltId: z.string().default(""), @@ -258,11 +282,14 @@ export const pbnstRegZod = z.object({ fcBizs: z.array(fcBizSchema).default([]), fcOpers://z.array(fcOperSchema).default([]), z .array(fcOperSchema) - .min(1, { message: "재이용시설의 운영정보를 최소 하나를 등록해주세요" }) + .min(1, { message: "재이용시설의 운영정보를 최소 하나를 등록해주세요" }), + prfList: z.array(PrfSchema).nullish(), }); -export const pbnstRegArrayZod = z.array(pbnstRegZod); + + +export const pbnstRegArrayZod = z.array(pbnstRegZod); export type PbnstRegArrrayType = z.infer; export type fcBizType = z.infer; diff --git a/apps/wr/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal.tsx b/apps/wr/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal.tsx index b6ac72eb6..d7ad10a76 100644 --- a/apps/wr/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal.tsx +++ b/apps/wr/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal.tsx @@ -223,17 +223,24 @@ export function PbnstSttnModal({ data, titleVisible,isMap}: { data: customPbnst; } }; useEffect(() => { - if (pbnstSttn.pbnstSttnRes && data) { - const prfList = pbnstSttn.pbnstSttnRes.find( - (item) => item.pbnstRuseFcltId === data.pbnstRuseFcltId - )?.prfList; + if(isMap){ + if(data.prfList &&data.prfList.length>0){ + getTablePrfData(data.prfList); + } + }else{ - if (prfList) { - - getTablePrfData(prfList); + if (pbnstSttn.pbnstSttnRes && data) { + const prfList = pbnstSttn.pbnstSttnRes.find( + (item) => item.pbnstRuseFcltId === data.pbnstRuseFcltId + )?.prfList; + + if (prfList) { + + getTablePrfData(prfList); + } } } - }, [pbnstSttn.pbnstSttnRes, data]); + }, [pbnstSttn.pbnstSttnRes, data,isMap]); useEffect(() => {