diff --git a/apps/fo/app/pages/dashboard/rainManage/page.tsx b/apps/fo/app/pages/dashboard/rainManage/page.tsx index ea20eb92c..9bceed75e 100644 --- a/apps/fo/app/pages/dashboard/rainManage/page.tsx +++ b/apps/fo/app/pages/dashboard/rainManage/page.tsx @@ -45,6 +45,7 @@ export default function RainManageTab({searchYear = '', fcltyList = []}: facilit }, [searchYear]); return ( +
{}} > + ☞ 일수에 강우영향일 포함됨 +
) } diff --git a/apps/fo/app/store/flowRate/index.tsx b/apps/fo/app/store/flowRate/index.tsx index 38cb4e2e6..fecf65e44 100644 --- a/apps/fo/app/store/flowRate/index.tsx +++ b/apps/fo/app/store/flowRate/index.tsx @@ -320,37 +320,49 @@ export const flowRateSearchReducer:(set:(fn: (state: FlowRateSearchType) => Flow } }); - // facilityPrecipitation의 rainEffectDay 계산 로직을 적용 + // 강우영향일 계산 (강우량이 3 초과이면 무조건 강우영향일) for(let idx = 0; idx < data.length; idx++) { const item = data[idx]; - const rainDay = Number(item.infoRnDay) >= 3 ? 1 : 0; - let rainEffectDay = 0; - - if(idx < data.length - 2) { - if(rainDay == 1) { - rainEffectDay = 1; + if(item){ + if(item.infoRnDay && Number(item.infoRnDay) > 3) { + item.rainEffectDay = 1; } else { - if(idx >= 2) { - if(Number(data[idx-1].infoRnDay) >= 3 || Number(data[idx-2].infoRnDay) >= 3) { - rainEffectDay = 1; - } - } + item.rainEffectDay = 0; } - } else if(idx < data.length - 1) { - if(rainDay == 1 || Number(data[idx+1].infoRnDay) >= 3) { - rainEffectDay = 1; - } - } else { - rainEffectDay = rainDay; } - - tmpData.push({ - ...item, - rainEffectDay: rainEffectDay, - }); } - const rtnData = tmpData.map((item: FlowRateModalProps) => { + // 이틀 전, 하루 전이 강우영향일(3 이상)인 경우 해당 날도 강우영향일로 설정 + for(let idx = 0; idx < data.length; idx++) { + if(data[idx]) { + // 하루 전이 강우영향일(3 이상)인 경우 + if(idx > 0 && data[idx-1]?.infoRnDay && Number(data[idx-1]?.infoRnDay) >= 3) { + data[idx]!.rainEffectDay = 1; + } + // 이틀 전이 강우영향일(3 이상)인 경우 + if(idx > 1 && data[idx-2]?.infoRnDay && Number(data[idx-2]?.infoRnDay) >= 3) { + data[idx]!.rainEffectDay = 1; + } + } + } + + for(let idx = 0; idx < data.length; idx++) { + if(data[idx] && data[idx]?.rainEffectDay === 1) { + if(idx > 1){ + if(data[idx-1]?.infoRnDay && Number(data[idx-1]?.infoRnDay) > 3) { + data[idx]!.infoRnDay = data[idx-1]!.infoRnDay; + } + } + if(idx > 2){ + if(data[idx-2]?.infoRnDay && Number(data[idx-2]?.infoRnDay) > 3) { + data[idx]!.infoRnDay = data[idx-2]!.infoRnDay; + } + } + } + } + + console.log('data', data); + const rtnData = data.map((item: FlowRateModalProps) => { item.totInflAmnt = Number(item.inflAmnt || 0) + Number(item.sumFlow || 0) + Number(item.returnAmnt || 0) dataFormSetting(item); return item;