강우영향일 기준 강우일 운영현황 나오도록 수정

This commit is contained in:
Your Name
2025-07-26 20:45:09 +09:00
parent 2fc4f9512f
commit 1207754092
+36 -24
View File
@@ -942,40 +942,52 @@ const calcValue = (operationalStatus, data, keyTxt='INFL_ASSCT_BFR_WQLT_TP') =>
operationalStatus.winterSunnyMax = data.winterSunny ? Number(Math.round(data.winterSunny.MAX_INFL_ASSCT_BFR_WQLT_TP * 1000) / 1000).toFixed(3).toString() : '';
}
// 강우영향일이면서 강우량이 3미만의 날짜를 강우량으로 대입
// 강우영향일 계산 및 강우량 덮어씌우기
export const calRainEffectDayRainManage = (data: RainManageListProps[]) => {
console.log('data', data);
// 강우영향일 계산 (강우량이 3 초과이면 무조건 강우영향일)
for(let idx = 0; idx < data.length; idx++) {
const item = data[idx];
const rainDay = Number(item?.infoRnDay?.toString().trim()) >= 3 ? 1 : 0;
let rainEffectDay = 0;
let effectRain = Number(item?.infoRnDay?.toString().trim());
if(item){
if(idx < data.length - 2) {
if(rainDay == 1) {
rainEffectDay = 1;
} else {
if(idx >= 2) {
if(Number(data[idx-1]?.infoRnDay) >= 3 || Number(data[idx-2]?.infoRnDay) >= 3) {
rainEffectDay = 1;
effectRain = Number(data[idx-1]?.infoRnDay) >= 3 ? Number(data[idx-1]?.infoRnDay) : Number(data[idx-2]?.infoRnDay);
}
}
}
} else if(idx < data.length - 1) {
if(rainDay == 1 || Number(data[idx+1]?.infoRnDay) >= 3) {
rainEffectDay = 1;
effectRain = Number(data[idx+1]?.infoRnDay) >= 3 ? Number(data[idx+1]?.infoRnDay) : Number(data[idx]?.infoRnDay);
}
if(item.infoRnDay && Number(item.infoRnDay) > 3) {
item.rainEffectDay = 1;
} else {
rainEffectDay = rainDay;
effectRain = Number(item?.infoRnDay?.toString().trim());
item.rainEffectDay = 0;
}
item.rainEffectDay = rainEffectDay;
item.infoRnDay = effectRain;
}
}
// 이틀 전, 하루 전이 강우영향일(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;
}
}
}
}
let rtnData : RainManageListProps[] = [];
rtnData = data.filter((item: RainManageListProps) => item.rainEffectDay === 1);
console.log('rtnData', rtnData);