diff --git a/apps/fo/app/pages/(with-layout)/facilityWaterQlty/page.tsx b/apps/fo/app/pages/(with-layout)/facilityWaterQlty/page.tsx index be4902bf0..98f5ba57a 100644 --- a/apps/fo/app/pages/(with-layout)/facilityWaterQlty/page.tsx +++ b/apps/fo/app/pages/(with-layout)/facilityWaterQlty/page.tsx @@ -134,7 +134,7 @@ export default function ProcessFacilitySearch() { initializeCommonData(); searchFacilityWaterQltyList(1, 10, selectSearchYear[0]?.val || "0"); } - }, [isInit, initializeCommonData, searchFacilityWaterQltyList]); + }, [isInit, initializeCommonData, searchFacilityWaterQltyList, selectSearchYear]); useEffect(() => { if (excelList && excelList.length > 0) { diff --git a/apps/fo/app/store/dashboard/index.tsx b/apps/fo/app/store/dashboard/index.tsx index 4440b1dca..ea751542f 100644 --- a/apps/fo/app/store/dashboard/index.tsx +++ b/apps/fo/app/store/dashboard/index.tsx @@ -1090,7 +1090,6 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) dataFormSettingPlan(el, 0); } - set((state: DashBoardType) => ({ ...state, PlanFclty: { @@ -1130,9 +1129,21 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) // 유량 - 유입 if (operationalStatusList?.[0]) { // 연간 - const yearAvg = data.yearData===null?'':(data.yearData.AVG_INFL_AMNT?data.yearData.AVG_INFL_AMNT:0)+(data.yearData.AVG_SUM_FLOW?data.yearData.AVG_SUM_FLOW:0)+(data.yearData.AVG_RETURN_AMNT?data.yearData.AVG_RETURN_AMNT:0); - const yearMax = data.yearData===null?'':(data.yearData.MAX_INFL_AMNT?data.yearData.MAX_INFL_AMNT:0)+(data.yearData.MAX_SUM_FLOW?data.yearData.MAX_SUM_FLOW:0)+(data.yearData.MAX_RETURN_AMNT?data.yearData.MAX_RETURN_AMNT:0); - const yearMin = data.yearData===null?'':(data.yearData.MIN_INFL_AMNT?data.yearData.MIN_INFL_AMNT:0)+(data.yearData.MIN_SUM_FLOW?data.yearData.MIN_SUM_FLOW:0)+(data.yearData.MIN_RETURN_AMNT?data.yearData.MIN_RETURN_AMNT:0); + const yearAvg = data.yearData===null ? '' : ( + (data.yearData.AVG_INFL_AMNT?data.yearData.AVG_INFL_AMNT:0) + + (data.yearData.AVG_SUM_FLOW?data.yearData.AVG_SUM_FLOW:0) + + (data.yearData.AVG_RETURN_AMNT?data.yearData.AVG_RETURN_AMNT:0) + ); + const yearMax = data.yearData===null ? '' : ( + (data.yearData.MAX_INFL_AMNT?data.yearData.MAX_INFL_AMNT:0) + + (data.yearData.MAX_SUM_FLOW?data.yearData.MAX_SUM_FLOW:0) + + (data.yearData.MAX_RETURN_AMNT?data.yearData.MAX_RETURN_AMNT:0) + ); + const yearMin = data.yearData===null ? '' : ( + (data.yearData.MIN_INFL_AMNT?data.yearData.MIN_INFL_AMNT:0) + + (data.yearData.MIN_SUM_FLOW?data.yearData.MIN_SUM_FLOW:0) + + (data.yearData.MIN_RETURN_AMNT?data.yearData.MIN_RETURN_AMNT:0) + ); operationalStatusList[0].yearAvg = yearAvg; operationalStatusList[0].yearMax = yearMax; @@ -1140,18 +1151,15 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) // 여름 operationalStatusList[0].summerAll = data.summer === null ? '' : ( (data.summer.AVG_INFL_AMNT ? data.summer.AVG_INFL_AMNT : 0) + - (data.summer.AVG_SUM_FLOW ? data.summer.AVG_SUM_FLOW : 0) + - (data.summer.AVG_TP_INFL_WQLT_TP ? data.summer.AVG_TP_INFL_WQLT_TP : 0) + (data.summer.AVG_SUM_FLOW ? data.summer.AVG_SUM_FLOW : 0) ); operationalStatusList[0].summerThree = data.summerRainy === null ? '' : ( (data.summerRainy.AVG_INFL_AMNT ? data.summerRainy.AVG_INFL_AMNT : 0) + - (data.summerRainy.AVG_SUM_FLOW ? data.summerRainy.AVG_SUM_FLOW : 0) + - (data.summerRainy.AVG_TP_INFL_WQLT_TP ? data.summerRainy.AVG_TP_INFL_WQLT_TP : 0) + (data.summerRainy.AVG_SUM_FLOW ? data.summerRainy.AVG_SUM_FLOW : 0) ); operationalStatusList[0].summerRain = data.summerSunny === null ? '' : ( (data.summerSunny.AVG_INFL_AMNT ? data.summerSunny.AVG_INFL_AMNT : 0) + - (data.summerSunny.AVG_SUM_FLOW ? data.summerSunny.AVG_SUM_FLOW : 0) + - (data.summerSunny.AVG_TP_INFL_WQLT_TP ? data.summerSunny.AVG_TP_INFL_WQLT_TP : 0) + (data.summerSunny.AVG_SUM_FLOW ? data.summerSunny.AVG_SUM_FLOW : 0) ); // 겨울 operationalStatusList[0].winterAll = data.winter === null ? '' : ( @@ -1251,17 +1259,6 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) } }); - operationalStatusList[0].yearAvg = roundUp(Number(operationalStatusList[0].yearAvg) + (yearSumFlow&&Number(yearSumFlow) != 0?Number(yearSumFlow / yearDay):0), 0); - operationalStatusList[0].yearMax = roundUp(Number(operationalStatusList[0].yearMax) + Number(maxYearSumFlow), 0); - operationalStatusList[0].yearMin = roundUp(Number(operationalStatusList[0].yearMin) + Number(minYearSumFlow), 0); - operationalStatusList[0].summerAll = roundUp(Number(operationalStatusList[0].summerAll) + (summerSumFlow&&Number(summerSumFlow)!=0?Number(summerSumFlow / summerDay):0), 0); - operationalStatusList[0].summerThree = roundUp(Number(operationalStatusList[0].summerThree) + (summerRainDaySumFlow&&Number(summerRainDaySumFlow)!=0?Number(summerRainDaySumFlow / summerRainDay):0), 0); - operationalStatusList[0].summerRain = roundUp(Number(operationalStatusList[0].summerRain) + (summerChungchunSumFlow&&Number(summerChungchunSumFlow)!=0?Number(summerChungchunSumFlow / summerChungchunDay):0), 0); - operationalStatusList[0].winterAll = roundUp(Number(operationalStatusList[0].winterAll) + (winterSumFlow&&Number(winterSumFlow)!=0?Number(winterSumFlow / winterDay):0), 0); - operationalStatusList[0].winterSunnyMin = roundUp(Number(operationalStatusList[0].winterSunnyMin) + Number(minWinterChungchunSumFlow), 0); - operationalStatusList[0].winterSunnyMax = roundUp(Number(operationalStatusList[0].winterSunnyMax) + (winterChungchunSumFlow&&Number(winterChungchunSumFlow)!=0?Number(winterChungchunSumFlow / winterChungchuDay):0), 0); - operationalStatusList[0].winterSunnyAvg = roundUp(Number(operationalStatusList[0].winterSunnyAvg) + Number(maxWinterChungchunSumFlow), 0); - // 연계처리수 yearAvgSumFlow = Number((yearSumFlow&&Number(yearSumFlow)!=0)?(yearSumFlow / yearDay):''); yearMaxSumFlow = maxYearSumFlow; @@ -1274,6 +1271,17 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) winterSunnyAvg = winterChungchunSumFlow&&Number(winterChungchunSumFlow)!=0?(winterChungchunSumFlow / winterChungchuDay):0; winterSunnyMax = maxWinterChungchunSumFlow; + operationalStatusList[0].yearAvg = roundUp(Number(operationalStatusList[0].yearAvg), 0) + roundUp(yearAvgSumFlow, 0); + operationalStatusList[0].yearMax = roundUp(Number(operationalStatusList[0].yearMax), 0) + roundUp(yearMaxSumFlow, 0); + operationalStatusList[0].yearMin = roundUp(Number(operationalStatusList[0].yearMin), 0) + roundUp(yearMinSumFlow, 0); + operationalStatusList[0].summerAll = roundUp(Number(operationalStatusList[0].summerAll), 0) + roundUp(summerAll, 0); + operationalStatusList[0].summerThree = roundUp(Number(operationalStatusList[0].summerThree), 0) + roundUp(summerThree, 0); + operationalStatusList[0].summerRain = roundUp(Number(operationalStatusList[0].summerRain), 0) + roundUp(summerRain, 0); + operationalStatusList[0].winterAll = roundUp(Number(operationalStatusList[0].winterAll), 0) + roundUp(winterAll, 0); + operationalStatusList[0].winterSunnyMin = roundUp(Number(operationalStatusList[0].winterSunnyMin), 0) + roundUp(winterSunnyMin, 0); + operationalStatusList[0].winterSunnyMax = roundUp(Number(operationalStatusList[0].winterSunnyMax), 0) + roundUp(winterSunnyMax, 0); + operationalStatusList[0].winterSunnyAvg = roundUp(Number(operationalStatusList[0].winterSunnyAvg), 0) + roundUp(winterSunnyAvg, 0); + // 지하수유입량 const usage = chungcunSumFlow / calData.length; const summerUsage = sumSummerChungcunFlow / summerChungchunDay; @@ -1295,7 +1303,6 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) const summerLowRain = data.summerBod&&data.summerBod.INFO_RN_DAY&&data.summerBod.INFO_RN_DAY!='null'?Number(data.summerBod.INFO_RN_DAY):0; operationalStatusList[0].rdi = winterAvgBod===0?0:roundUp(summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod), 2); operationalStatusList[0].rdiRain = summerLowRain; - dataFormSetting(operationalStatusList[0]); } if(operationalStatusList[0] && operationalStatusList[7]){ @@ -1338,9 +1345,54 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType) operationalStatusList[2].winterSunnyMax = winterSunnyMax; dataFormSetting(operationalStatusList[2]); } + + if (operationalStatusList[0]) { + // 안전하게 숫자 변환하는 함수 + const toNum = (val) => { + if (val === null || val === undefined || val === '' || val === '0') return 0; + return Number(val.toString().replaceAll(',', '')) || 0; + }; + + operationalStatusList[0].summerAll = + toNum(operationalStatusList[1]?.summerAll) + + toNum(operationalStatusList[2]?.summerAll) + + toNum(operationalStatusList[3]?.summerAll); + + operationalStatusList[0].summerThree = + toNum(operationalStatusList[1]?.summerThree) + + toNum(operationalStatusList[2]?.summerThree) + + toNum(operationalStatusList[3]?.summerThree); + + operationalStatusList[0].summerRain = + toNum(operationalStatusList[1]?.summerRain) + + toNum(operationalStatusList[2]?.summerRain) + + toNum(operationalStatusList[3]?.summerRain); + + operationalStatusList[0].winterAll = + toNum(operationalStatusList[1]?.winterAll) + + toNum(operationalStatusList[2]?.winterAll) + + toNum(operationalStatusList[3]?.winterAll); + + operationalStatusList[0].winterSunnyMin = + toNum(operationalStatusList[1]?.winterSunnyMin) + + toNum(operationalStatusList[2]?.winterSunnyMin) + + toNum(operationalStatusList[3]?.winterSunnyMin); + + operationalStatusList[0].winterSunnyMax = + toNum(operationalStatusList[1]?.winterSunnyMax) + + toNum(operationalStatusList[2]?.winterSunnyMax) + + toNum(operationalStatusList[3]?.winterSunnyMax); + + operationalStatusList[0].winterSunnyAvg = + toNum(operationalStatusList[1]?.winterSunnyAvg) + + toNum(operationalStatusList[2]?.winterSunnyAvg) + + toNum(operationalStatusList[3]?.winterSunnyAvg); + + dataFormSetting(operationalStatusList[0]); + } } - // + // 총인설비가 없을 경우 제외 if(data.yearData.TP_INFL_WQLT_TP === null || data.yearData.TP_INFL_WQLT_TP === undefined || data.yearData.TP_INFL_WQLT_TP === 'null') { operationalStatusList = operationalStatusList.slice(0, 10); }