From c3f8c792826e4817e2f1ae612465b9f993358426 Mon Sep 17 00:00:00 2001 From: mind-one005 Date: Tue, 1 Jul 2025 00:23:15 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=95=EC=9A=B0=ED=8C=8C=EC=9D=BC=EB=AA=85?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../popupComponent/chart/aplcnYms.ts | 104 +++++++++++++++--- 1 file changed, 88 insertions(+), 16 deletions(-) diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts index 53b4c7954..c9106fb16 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts @@ -27,6 +27,34 @@ export type TInftwtAnlsRslt = { anlsTm: string; predcOilq:number; } +export type TRdiiAnls = { + rainInfwtAnlsSn:number; + aplcnYm: string; + enoCd: string; + ctpvCd: string; + sggCd: string; + swageTmplntCd: string; + swageTmplntNm: string; + swtrmtZoneCd: string; + swtrmtZoneNm: string; + atflCd: string; + atflId: string; + atflInpNm: string; + atflHrPttnNm: string; + atflMpngNm: string; + atflRainNm: string; + atflNm: string; + drtwSwtcRt:number; + anlsInfo: string; + scsYn: string; + srcNm: string; // 출처이름 +}; +export type TRdiiAnlsRslt = { + rainInfwtAnlsSn: number; + pplMngNo: string; + anlsTm: string; + predcOilq:number; +} export type TOilqData = { inftwtAnlsSn: number; // 침입수분석 일련번호 pplMngNo: string; // 관로관리번호 @@ -45,18 +73,10 @@ const getOptionsAplcnYm = (yyyymms: string[]): { text: string; val: string }[] = yyyymms1.unshift({ val: '0', text: '선택' }); return yyyymms1; }; -export const getOptionsInftwtAnlsInfo = (anlsArr: TInftwtAnls[]): { text: string; val: number }[] => { - const options = anlsArr.map(anls => ({ - text: anls.anlsInfo, - val: anls.inftwtAnlsSn, - })); - options.unshift({ val: 0, text: '선택' }); - return options; -}; -const selectAplcnYms = async() => { // 상수사용월 +const selectAplcnYms = async(gubun:string) => { // 상수사용월 try { const queryString = ''; - const result = await getData(`v1/inftwtAnlsRslt/aplcnYm${queryString ? `?${queryString}` : ''}`); + const result = await getData(`v1/${gubun}/aplcnYm${queryString ? `?${queryString}` : ''}`); if (result && result.length > 0) { console.log("selectAplcnYms", result); return getOptionsAplcnYm(result); @@ -65,26 +85,34 @@ const selectAplcnYms = async() => { // 상수사용월 console.error(error); } }; -export const useAplcnYms = () => { +export const useAplcnYms = (gubun:string) => { const [data, setData] = useState<{ text: string; val: string }[]>([]); useEffect(() => { - const fetch = async () => { - const result = await selectAplcnYms(); + const fetch = async (gubun:string) => { + const result = await selectAplcnYms(gubun); if (result) setData(result); }; - fetch(); + fetch(gubun); }, []); return data; }; +export const getOptionsInftwtAnlsInfo = (anlsArr: TInftwtAnls[]): { text: string; val: number }[] => { + const options = anlsArr.map(anls => ({ + text: anls.anlsInfo, + val: anls.inftwtAnlsSn, + })); + options.unshift({ val: 0, text: '선택' }); + return options; +}; export const selectInftwtAnls = async(aplcnYm:String) => { // 침입수분석 try { const queryString = aplcnYm ? `aplcnYm=${aplcnYm}` : ''; const result = await getData(`v1/inftwtAnls${queryString ? `?${queryString}` : ''}`); if (result && result.numberOfElements > 0) { - //console.log("selectInftwtAnls", result.content); + console.log("selectInftwtAnls", result.content); return result.content; } } catch (error) { @@ -106,7 +134,7 @@ export const selectInftwtAnlsRslt = async(inftwtAnlsSn:number, pplMngNo:string) } const result = await getData(`v1/inftwtAnlsRslt/ppl/${inftwtAnlsSn}/${pplMngNo}`); if (result && result.numberOfElements > 0) { - //console.log("selectInftwtAnlsRslt", result.content); + console.log("selectInftwtAnlsRslt", result.content); return result.content; } } catch (error) { @@ -135,3 +163,47 @@ export const selectOilq = async(inftwtAnlsSn:number, pplMngNo:string) => { // console.error(error); } }; + +export const getOptionsRdiiAnlsInfo = (anlsArr: TRdiiAnls[]): { text: string; val: number }[] => { + const options = anlsArr.map(anls => ({ + text: anls.anlsInfo, + val: anls.rainInfwtAnlsSn, + })); + options.unshift({ val: 0, text: '선택' }); + return options; +}; + +export const selectRdiiAnls = async(aplcnYm:String) => { // 침입수분석 + try { + const queryString = aplcnYm ? `aplcnYm=${aplcnYm}` : ''; + const result = await getData(`v1/rdiiAnls${queryString ? `?${queryString}` : ''}`); + if (result && result.numberOfElements > 0) { + console.log("selectRdiiAnls", result.content); + return result.content; + } + } catch (error) { + console.error(error); + } +}; +export const getChartDataRdiiAnlsRslt = (arr: TRdiiAnlsRslt[]): { label: string; val: number }[] => { + const options = arr.map(anlsRslt => ({ + label: anlsRslt.anlsTm, + val: anlsRslt.predcOilq, + })); + return options; +}; +export const selectRdiiAnlsRslt = async(rainInfwtAnlsSn:number, pplMngNo:string) => { // 침입수분석 결과 + try { + if ((rainInfwtAnlsSn === undefined || rainInfwtAnlsSn === 0) || !pplMngNo) { + console.warn("RdiiAnlsSn or pplMngNo is not provided"); + return []; + } + const result = await getData(`v1/rdiiAnlsRslt/ppl/${rainInfwtAnlsSn}/${pplMngNo}`); + if (result && result.numberOfElements > 0) { + console.log("selectRdiiAnlsRslt", result.content); + return result.content; + } + } catch (error) { + console.error(error); + } +};