From 5357a65b912c21c4d4503ca4690d3efb0cf2dbd9 Mon Sep 17 00:00:00 2001 From: jsyang Date: Wed, 27 Aug 2025 09:55:42 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20tn,tp=20?= =?UTF-8?q?=EB=B6=88=EC=9D=BC=EC=B9=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/fo/app/store/dashboard/index.tsx | 75 +++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/apps/fo/app/store/dashboard/index.tsx b/apps/fo/app/store/dashboard/index.tsx index d772d72b3..64cef9723 100644 --- a/apps/fo/app/store/dashboard/index.tsx +++ b/apps/fo/app/store/dashboard/index.tsx @@ -736,6 +736,10 @@ const fetchMainGraph = async (searchYear: string|undefined, fcltyCd: string|unde // 수질 데이터 청천시, 강우시 재계산 const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcltyCd : string|undefined) => { + const nullToZero = (value: any) => { + return value === null || value === undefined || value === '' ? 0 : Number(value); + }; + const orgData = data; const res = await fetchMainGraph(searchYear, fcltyCd); if(res.data.wqltObjs.length> 0) { @@ -744,6 +748,73 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl const qltyChungchunData = CalcRainEffect(clone(qltyData), 'SUNNY', 'RAIN_DAY'); const qltyRainData = CalcRainEffect(clone(qltyData), 'RAIN', 'RAIN_DAY'); + // (0) 전체변수 + let summerDay = 0; + let totalInflBodAvgSummer = 0; + let totalInflTnAvgSummer = 0; + let totalInflTpAvgSummer = 0; + let totalEfflBodAvgSummer = 0; + let totalEfflTnAvgSummer = 0; + let totalEfflTpAvgSummer = 0; + + let winterDay = 0; + let totalInflBodAvgWinter = 0; + let totalInflTnAvgWinter = 0; + let totalInflTpAvgWinter = 0; + let totalEfflBodAvgWinter = 0; + let totalEfflTnAvgWinter = 0; + let totalEfflTpAvgWinter = 0; + + // 전체 대상 + qltyData.forEach((item: any) => { + const month = item.msrDt.substring(4, 6); // 월 추출 + if(month === '01' || month === '02'){ + const inflbod = nullToZero(item.inflAssctBfrWqltBod); + const infltn = nullToZero(item.inflAssctBfrWqltTn); + const infltp = nullToZero(item.inflAssctBfrWqltTp); + const effbod = nullToZero(item.efflWqltBod); + const efftn = nullToZero(item.efflWqltTn); + const efftp = nullToZero(item.efflWqltTp); + + totalInflBodAvgWinter += inflbod; + totalInflTnAvgWinter += infltn; + totalInflTpAvgWinter += infltp; + totalEfflBodAvgWinter += effbod; + totalEfflTnAvgWinter += efftn; + totalEfflTpAvgWinter += efftp; + winterDay += 1; + }else if(month === '06' || month === '07' || month === '08'){ + summerDay += 1; + const inflbod = nullToZero(item.inflAssctBfrWqltBod); + const infltn = nullToZero(item.inflAssctBfrWqltTn); + const infltp = nullToZero(item.inflAssctBfrWqltTp); + const effbod = nullToZero(item.efflWqltBod); + const efftn = nullToZero(item.efflWqltTn); + const efftp = nullToZero(item.efflWqltTp); + + totalInflBodAvgSummer += inflbod; + totalInflTnAvgSummer += infltn; + totalInflTpAvgSummer += infltp; + totalEfflBodAvgSummer += effbod; + totalEfflTnAvgSummer += efftn; + totalEfflTpAvgSummer += efftp; + } + }); + + orgData[5].winterAll = qltyDataSetting(totalInflBodAvgWinter, winterDay, 1); + orgData[6].winterAll = qltyDataSetting(totalEfflBodAvgWinter, winterDay, 1); + orgData[7].winterAll = qltyDataSetting(totalInflTnAvgWinter, winterDay, 3); + orgData[8].winterAll = qltyDataSetting(totalEfflTnAvgWinter, winterDay, 3); + orgData[9].winterAll = qltyDataSetting(totalInflTpAvgWinter, winterDay, 3); + orgData[10].winterAll = qltyDataSetting(totalEfflTpAvgWinter, winterDay, 3); + + orgData[5].summerAll = qltyDataSetting(totalInflBodAvgSummer, summerDay, 1); + orgData[6].summerAll = qltyDataSetting(totalEfflBodAvgSummer, summerDay, 1); + orgData[7].summerAll = qltyDataSetting(totalInflTnAvgSummer, summerDay, 3); + orgData[8].summerAll = qltyDataSetting(totalEfflTnAvgSummer, summerDay, 3); + orgData[9].summerAll = qltyDataSetting(totalInflTpAvgSummer, summerDay, 3); + orgData[10].summerAll = qltyDataSetting(totalEfflTpAvgSummer, summerDay, 3); + // (1) 청천시 변수 // (1-1) 날짜 count let chungchunSummerDay = 0; @@ -778,10 +849,6 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl let chungchunEfflTnMin = 99999999; let chungchunEfflTpMin = 99999999; - const nullToZero = (value: any) => { - return value === null || value === undefined || value === '' ? 0 : Number(value); - }; - // 청천시 qltyChungchunData.forEach((item: any) => { const month = item.msrDt.substring(4, 6); // 월 추출