From a77cc6a876811ca48db070fa321af835c74a1f67 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Mon, 26 May 2025 17:40:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=83=98=ED=94=8C=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/fcltReg/pbnstReg/index.tsx | 122 +++++++++++------- .../ruseFcltMng/fcltReg/pbnstReg/type.tsx | 108 +++++++--------- .../fcltReg/pbnstReg/mngReg/mngRegForm.tsx | 15 +-- 3 files changed, 123 insertions(+), 122 deletions(-) diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx index 423e28c08..aaafb9ba4 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx @@ -2,19 +2,29 @@ import { z } from "zod"; import type { TableUpperProps } from "../rainReg"; import { fetchType, getFetch, postFectch } from "@/components/lib/api"; import type { chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList"; -import { exampleData, fcBizSchema, type customPbnst, type pubHasuType } from "./type"; +import { + exampleData, + fcBizSchema, + type customPbnst, + type pubHasuType, +} from "./type"; import type { SelectDataType } from "@common/business_components/ui"; -import { pbnstMngUpHeadListExport, pbnstOrgwtHeadListRxport, pbnstMngNmExport, pubFacHeadListExport, pplInstlsHeadListExport, pbnstDemandHeadListExport } from "./headList"; - +import { + pbnstMngUpHeadListExport, + pbnstOrgwtHeadListRxport, + pbnstMngNmExport, + pubFacHeadListExport, + pplInstlsHeadListExport, + pbnstDemandHeadListExport, +} from "./headList"; const selectLabel: SelectDataType[] = [{ text: "test", val: "1" }]; -const pubFacHeadList= pubFacHeadListExport; -const pbnstMngUpHeadList = pbnstMngUpHeadListExport -const pbnstOrgwtHeadList =pbnstOrgwtHeadListRxport -const pbnstMngNm= pbnstMngNmExport; -const pplInstlsHeadLisat =pplInstlsHeadListExport -const pbnstDemandHeadList= pbnstDemandHeadListExport - +const pubFacHeadList = pubFacHeadListExport; +const pbnstMngUpHeadList = pbnstMngUpHeadListExport; +const pbnstOrgwtHeadList = pbnstOrgwtHeadListRxport; +const pbnstMngNm = pbnstMngNmExport; +const pplInstlsHeadLisat = pplInstlsHeadListExport; +const pbnstDemandHeadList = pbnstDemandHeadListExport; export type pubFacState = { pbnst: { @@ -22,13 +32,13 @@ export type pubFacState = { pubFacHeadList: TableUpperProps[]; pbnstMngUpHeadList: TableUpperProps[]; pbnstMngNm: chHeadType[]; - pbnstHasuRes: pubHasuType[] + pbnstHasuRes: pubHasuType[]; pbnstRes: customPbnst | null; // 배열에서 단일 객체 또는 null로 변경 pbnstBizCycle: SelectDataType[]; selectLabel: SelectDataType[]; - pbnstOrgwtHeadList:TableUpperProps[] - pplInstlsHeadLisat:TableUpperProps[] - pbnstDemandHeadList:TableUpperProps[] + pbnstOrgwtHeadList: TableUpperProps[]; + pplInstlsHeadLisat: TableUpperProps[]; + pbnstDemandHeadList: TableUpperProps[]; }; }; type pubFacActions = { @@ -36,6 +46,7 @@ type pubFacActions = { pbnstRegInit: (sgg: string) => void; pbnstRegSearch: (txt: string | undefined, sgg: string) => void; pbnstReg: (txt: string | undefined) => void; + pbnstUpdate(pbnstRes: customPbnst) : Promise; }; export type pubFacType = pubFacState & pubFacActions; @@ -46,49 +57,43 @@ export const pubFacStateExport: pubFacState = { pubFacHeadList: pubFacHeadList, pbnstMngUpHeadList: pbnstMngUpHeadList, pbnstMngNm: pbnstMngNm, - pbnstOrgwtHeadList:pbnstOrgwtHeadList, + pbnstOrgwtHeadList: pbnstOrgwtHeadList, pbnstHasuRes: [], pbnstRes: null, // 초기값을 null로 변경 - pbnstBizCycle:[{text:'없음', val:'1'}], + pbnstBizCycle: [{ text: "없음", val: "1" }], selectLabel: selectLabel, - pplInstlsHeadLisat:pplInstlsHeadLisat, - pbnstDemandHeadList:pbnstDemandHeadList, + pplInstlsHeadLisat: pplInstlsHeadLisat, + pbnstDemandHeadList: pbnstDemandHeadList, }, }; const checkWrRegList = async () => { - const wrRegList = await getFetch( - "wr", - `/reuseFc/pubFc` - ); + const wrRegList = await getFetch("wr", `/reuseFc/pubFc`); return wrRegList; -} +}; +const hasuListFetch = async (txt: string | undefined) => { + const checkWrRegListRes = await checkWrRegList(); -const hasuListFetch = async (txt: string | undefined ) => { - - const checkWrRegListRes = await checkWrRegList() - - -// prcsFclt/ruseInfo/1/20/A/11/0/1/SW + // prcsFclt/ruseInfo/1/20/A/11/0/1/SW const rainRes = await postFectch( - `/prcsFclt/ruseInfo/1/10/A/11` + "/0" + "/1" +"/SW" - ,checkWrRegListRes, - fetchType.COMMON ); + `/prcsFclt/ruseInfo/1/10/A/11` + "/0" + "/1" + "/SW", + checkWrRegListRes, + fetchType.COMMON + ); - const hasuList = rainRes.data.map((item: any) => { + const hasuList = rainRes.data.map((item: any) => { return { ...item, - ruse: item.ruse===false ? 'N' : 'Y', }; - }) - - + ruse: item.ruse === false ? "N" : "Y", + }; + }); return hasuList; }; -const getBizCycle = (fcBizs: z.infer[] ) => { - const pbnstBizCycle =fcBizs.map((item: z.infer) => { +const getBizCycle = (fcBizs: z.infer[]) => { + const pbnstBizCycle = fcBizs.map((item: z.infer) => { return { text: `${item.cycl}차`, val: item.cycl, @@ -96,22 +101,20 @@ const getBizCycle = (fcBizs: z.infer[] ) => { }); return pbnstBizCycle; -} +}; export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { return { - pubHasuInit: async (txt: string | undefined) => { try { - const pbnstHasuRes = await hasuListFetch(txt); - console.log('qwe ',pbnstHasuRes) + console.log("qwe ", pbnstHasuRes); return set((state: pubFacState) => ({ ...state, pbnst: { ...state.pbnst, - pbnstHasuRes:pbnstHasuRes, + pbnstHasuRes: pbnstHasuRes, isInit: false, }, })); @@ -124,16 +127,16 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { try { //const pbnstRes = await initFetch(txt); - const pbnstRes = exampleData; + const pbnstRes = exampleData; - const pbnstBizCycle = pbnstRes ? getBizCycle(pbnstRes.fcBizs) : []; // pbnstRes가 null일 수 있으므로 체크 + const pbnstBizCycle = pbnstRes ? getBizCycle(pbnstRes.fcBizs) : []; // pbnstRes가 null일 수 있으므로 체크 return set((state: pubFacState) => ({ ...state, pbnst: { ...state.pbnst, pbnstRes: pbnstRes, - pbnstBizCycle:pbnstBizCycle, + pbnstBizCycle: pbnstBizCycle, isInit: false, }, })); @@ -148,15 +151,15 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { `/api/v1/reuseFc/pubFc` + (txt ? `/${txt}` : "") + `/${sgg}` ); // API 응답이 pbnstRegZod 타입의 단일 객체라고 가정 - const pbnstBizCycle = pbnstRes && pbnstRes.fcBizs ? getBizCycle(pbnstRes.fcBizs) : []; - + const pbnstBizCycle = + pbnstRes && pbnstRes.fcBizs ? getBizCycle(pbnstRes.fcBizs) : []; return set((state: pubFacState) => ({ ...state, pbnst: { ...state.pbnst, pbnstReg: pbnstRes, - pbnstBizCycle:pbnstBizCycle, + pbnstBizCycle: pbnstBizCycle, isInit: false, }, })); @@ -179,5 +182,24 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { console.log(errorHasu); } }, + pbnstUpdate: async (pbnstRes: customPbnst) => { + try { + const response = await postFectch( + `/reuseFc/pubFc`, + JSON.stringify(pbnstRes) + ); + + return set((state: pubFacState) => ({ + ...state, + pbnst: { + ...state.pbnst, + pbnstRes: response.data, + isInit: false, + }, + })); + } catch (error) { + console.error("Error updating pbnst:", error); + } + }, }; }; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx index 043c8fedf..528f4c349 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx @@ -1,4 +1,5 @@ import { z } from "zod"; +import { TEST_UUID } from "../rainReg"; export type customPbnst = z.infer; @@ -63,9 +64,9 @@ const fcFileSchema = z.object({ filePath: z.string().default("test"), fileKnd: z.string().default("test"), regDt: z.date().default(new Date()), - rgtr: z.string().default("test"), + rgtr: z.string(), mdfcnDt: z.date().default(new Date()), - mdfr: z.string().default("test"), + mdfr: z.string(), }); const fcOperSchema = z.object({ @@ -73,11 +74,11 @@ const fcOperSchema = z.object({ pbnstRuseFcltFk: z.number().default(0), operMthd: z.string(), rprtvBzenty: z.string(), - bgngDt: z.date().default(new Date()), - endDt: z.date().default(new Date()), - regDt: z.date().default(new Date()), - rgtr: z.string().default("test"), - mdfcnDt: z.date().default(new Date()), + bgngDt: z.string(), + endDt: z.string(), + regDt: z.date().nullish(), + rgtr: z.string(), + mdfcnDt: z.date(), mdfr: z.string().default("test"), }); @@ -88,10 +89,10 @@ const fcOrgwtSchema = z.object({ tmsYn: z.string(), dschgFmYn: z.string(), dtlPstnExpln: z.string(), - regDt: z.date().default(new Date()), - rgtr: z.string().default("test"), - mdfcnDt: z.date().default(new Date()), - mdfr: z.string().default("test"), + regDt: z.date().nullish(), + rgtr: z.string(), + mdfcnDt: z.date().nullish(), + mdfr: z.string(), }); const fcPrfmncSchema = z.object({ @@ -112,10 +113,10 @@ const fcPrfmncSchema = z.object({ farmUswtr: z.string(), ugwtChr: z.string(), indstUswtr: z.string(), - regDt: z.date().default(new Date()), - rgtr: z.string().default("test"), - mdfcnDt: z.date().default(new Date()), - mdfr: z.string().default("test"), + regDt: z.date().nullish(), + rgtr: z.string(), + mdfcnDt: z.date().nullish(), + mdfr: z.string(), }); export const fcBizSchema = z.object({ @@ -183,9 +184,9 @@ export const fcBizSchema = z.object({ fcOrgwts: z.array(fcOrgwtSchema), pplInstls: z.array(pplInstlSchema), flg: z.string(), - regDt: z.string(), + regDt: z.string().nullish(), rgtr: z.string(), - mdfcnDt: z.string(), + mdfcnDt: z.string().nullish(), mdfr: z.string(), }); @@ -219,19 +220,17 @@ export type pubHasuType = z.infer; //관경 제외 export const exampleData = { pbnstRuseFcltPk: 1, - swtrmtFcltFk: "SWTRMT-001", + swtrmtFcltFk: "11000SW001R", ruseUtztnFcltNm: "재이용시설 A", fcltCpct: "100", ruseCpct: "90", splyExtraCpct: "10", - regDt: new Date("2025-05-21T11:03:26.434810"), - rgtr: "admin", - mdfr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), + rgtr: TEST_UUID, + mdfr: TEST_UUID, fcFiles: [], fcBizs: [ { - pbnstRuseFcltBizPk: 10, + pbnstRuseFcltBizPk: 1, pbnstRuseFcltFk: 1, cycl: "1", seCd: "A010", @@ -292,7 +291,7 @@ export const exampleData = { archCstClcln: "380", pplCstClcln: "290", ruseFcltCstClcln: "4800", - pplInstls:[ + pplInstls: [ { ruseFcltBizFk: "10", pdmt: "관경", @@ -308,35 +307,33 @@ export const exampleData = { ], fcOrgwts: [ { - pbnstRuseFcltBizFk: 10, - swtrmtFcltFk: 1, + pbnstRuseFcltBizFk: 1, + swtrmtFcltFk: "11000SW001R", orgwtWtritQnt: "100", tmsYn: "Y", dschgFmYn: "N", dtlPstnExpln: "배출 위치", - regDt: new Date("2025-05-21T11:03:26.434810"), + regDt: "20250221", rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), + mdfcnDt: "20250321", mdfr: "admin", }, { - pbnstRuseFcltBizFk: 10, - swtrmtFcltFk: 2, + pbnstRuseFcltBizFk: 1, + swtrmtFcltFk: "11000SW001R", orgwtWtritQnt: "153", tmsYn: "Y", dschgFmYn: "N", dtlPstnExpln: "배출 위치22", - regDt: new Date("2025-05-21T11:03:26.434810"), + regDt: "20250221", rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), + mdfcnDt: "20250421", mdfr: "admin", }, ], flg: "N", - regDt: "2022-01-01", - rgtr: "admin", - mdfcnDt: "2022-02-01", - mdfr: "admin", + rgtr: TEST_UUID, + mdfr: TEST_UUID, }, { pbnstRuseFcltBizPk: 11, @@ -400,7 +397,7 @@ export const exampleData = { archCstClcln: "380", pplCstClcln: "290", ruseFcltCstClcln: "4800", - pplInstls:[ + pplInstls: [ { ruseFcltBizFk: "11", pdmt: "관경", @@ -422,10 +419,8 @@ export const exampleData = { tmsYn: "Y", dschgFmYn: "N", dtlPstnExpln: "배출 위치1", - regDt: new Date("2025-05-21T11:03:26.434810"), - rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), - mdfr: "admin", + rgtr: TEST_UUID, + mdfr: TEST_UUID, }, { pbnstRuseFcltBizFk: 11, @@ -434,17 +429,13 @@ export const exampleData = { tmsYn: "Y", dschgFmYn: "N", dtlPstnExpln: "배출 위치", - regDt: new Date("2025-05-21T11:03:26.434810"), - rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), - mdfr: "admin", + rgtr: TEST_UUID, + mdfr: TEST_UUID, }, ], flg: "N", - regDt: "2022-01-01", - rgtr: "manager", - mdfcnDt: "2022-02-01", - mdfr: "manager", + rgtr: TEST_UUID, + mdfr: TEST_UUID, }, ], fcOpers: [ @@ -453,24 +444,19 @@ export const exampleData = { pbnstRuseFcltFk: 1, operMthd: "위탁", rprtvBzenty: "기관명", - bgngDt: new Date("2025-05-21T11:03:26.434810"), - endDt: new Date("2025-05-21T11:03:26.434810"), - regDt: new Date("2025-05-21T11:03:26.434810"), - rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), - mdfr: "admin", + bgngDt: "20230930", + mdfcnDt:"20231230", + rgtr: TEST_UUID, + mdfr: TEST_UUID, }, { pbnstRuseFcltOperInfoPk: 101, pbnstRuseFcltFk: 1, operMthd: "직영", rprtvBzenty: "기관명", - bgngDt: new Date("2025-05-21T11:03:26.434810"), - endDt: new Date("2025-05-21T11:03:26.434810"), - regDt: new Date("2025-05-21T11:03:26.434810"), - rgtr: "admin", - mdfcnDt: new Date("2025-05-21T11:03:26.434810"), - mdfr: "admin", + bgngDt: "20241130", + rgtr:TEST_UUID , + mdfr: TEST_UUID, }, ], }; diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx index f17ce757b..247e66103 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx @@ -36,7 +36,7 @@ const formSchema = z.object({ }); export function PbnstMngForm({ data }: { data: customPbnst }) { - const { pbnst } = useWrStore((state) => state); + const { pbnst, pbnstUpdate } = useWrStore((state) => state); const { pbnstMngUpHeadList} = pbnst; const [ruseOperData, setRuseOperData] = useState(); const [planFiles, setPlanFiles] = useState(null); @@ -62,11 +62,6 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { name: "fcOpers", }); - // const selectOptions = data?.map((item) => ({ - // text: item.fcltNm, - // val: item.pbnstRuseFcltPk, - // })) || [{ text: "없음", val: "1" }]; - const onSelectValue = (val: string) => {}; useEffect(() => { @@ -77,6 +72,8 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { // 2. Define a submit handler. function onSubmit(values: z.infer) { console.log(values); + + pbnstUpdate(values); } const testFile = () => { @@ -141,11 +138,7 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { ({ - ...item, - bgngDt: item.bgngDt.toLocaleDateString() || "", - endDt: item.endDt.toLocaleDateString() || "", - }))} + tableData={fcOpersField} headList={pbnst.pbnstMngUpHeadList} upHeadList={pbnst.pbnstMngNm} >