대시보드 총인설비 계산 로직 추가

This commit is contained in:
2025-09-11 11:15:58 +09:00
parent 8b2efad803
commit 32939d8b1a
+65 -1
View File
@@ -753,31 +753,40 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
// (0) 전체변수
let summerDay = 0;
let noNullSummerDay = 0;
let totalInflBodAvgSummer = 0;
let totalInflTnAvgSummer = 0;
let totalInflTpAvgSummer = 0;
let totalEfflBodAvgSummer = 0;
let totalEfflTnAvgSummer = 0;
let totalEfflTpAvgSummer = 0;
let totalTpInflAvgSummer = 0;
let winterDay = 0;
let noNullWinterDay = 0;
let totalInflBodAvgWinter = 0;
let totalInflTnAvgWinter = 0;
let totalInflTpAvgWinter = 0;
let totalEfflBodAvgWinter = 0;
let totalEfflTnAvgWinter = 0;
let totalEfflTpAvgWinter = 0;
let totalTpInflAvgWinter = 0;
// 전체 대상
qltyData.forEach((item: any) => {
const month = item.msrDt.substring(4, 6); // 월 추출
if(month === '01' || month === '02'){
winterDay += 1;
if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){
noNullWinterDay+=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);
const tpInfl = nullToZero(item.tpInflWqltTp);
totalInflBodAvgWinter += inflbod;
totalInflTnAvgWinter += infltn;
@@ -785,15 +794,19 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
totalEfflBodAvgWinter += effbod;
totalEfflTnAvgWinter += efftn;
totalEfflTpAvgWinter += efftp;
winterDay += 1;
totalTpInflAvgWinter += tpInfl;
}else if(month === '06' || month === '07' || month === '08'){
summerDay += 1;
if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){
noNullSummerDay+=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);
const tpInfl = nullToZero(item.tpInflWqltTp);
totalInflBodAvgSummer += inflbod;
totalInflTnAvgSummer += infltn;
@@ -801,6 +814,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
totalEfflBodAvgSummer += effbod;
totalEfflTnAvgSummer += efftn;
totalEfflTpAvgSummer += efftp;
totalTpInflAvgSummer += tpInfl;
}
});
@@ -811,6 +825,10 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[9].winterAll = qltyDataSetting(totalInflTpAvgWinter, winterDay, 3);
orgData[10].winterAll = qltyDataSetting(totalEfflTpAvgWinter, winterDay, 3);
//총인설비
orgData[11].winterAll = qltyDataSetting(totalTpInflAvgWinter, noNullWinterDay, 3);
orgData[12].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);
@@ -818,10 +836,16 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[9].summerAll = qltyDataSetting(totalInflTpAvgSummer, summerDay, 3);
orgData[10].summerAll = qltyDataSetting(totalEfflTpAvgSummer, summerDay, 3);
//총인설비
orgData[11].summerAll = qltyDataSetting(totalTpInflAvgSummer, noNullSummerDay, 3);
orgData[12].summerAll = qltyDataSetting(totalEfflTpAvgSummer, summerDay, 3);
// (1) 청천시 변수
// (1-1) 날짜 count
let chungchunSummerDay = 0;
let chungchunWinterDay = 0;
let noNullChungchunSummerDay = 0;
let noNullChungchunWinterDay = 0;
// (1-2) 하절기
let chungchunInflBodAvgSummer = 0;
@@ -830,17 +854,21 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
let chungchunEfflBodAvgSummer = 0;
let chungchunEfflTnAvgSummer = 0;
let chungchunEfflTpAvgSummer = 0;
let chungchunTpInflAvgSummer = 0;
// (1-3) 동절기 (최대, 최소, 평균 다 필요)
let chungchunInflBodAvg = 0;
let chungchunInflTnAvg = 0;
let chungchunInflTpAvg = 0;
let chungchunTpInflAvg = 0;
let chungchunInflBodMax = 0;
let chungchunInflTnMax= 0;
let chungchunInflTpMax = 0;
let chungchunTpInflMax = 0;
let chungchunInflBodMin = 99999999;
let chungchunInflTnMin = 99999999;
let chungchunInflTpMin = 99999999;
let chungchunTpInflMin = 99999999;
let chungchunEfflBodAvg = 0;
let chungchunEfflTnAvg = 0;
@@ -857,6 +885,9 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
const month = item.msrDt.substring(4, 6); // 월 추출
if(month === '01' || month === '02'){
chungchunWinterDay += 1;
if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){
noNullChungchunWinterDay+=1;
}
const inflbod = nullToZero(item.inflAssctBfrWqltBod);
const infltn = nullToZero(item.inflAssctBfrWqltTn);
@@ -864,10 +895,12 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
const effbod = nullToZero(item.efflWqltBod);
const efftn = nullToZero(item.efflWqltTn);
const efftp = nullToZero(item.efflWqltTp);
const tpInfl = nullToZero(item.tpInflWqltTp);
chungchunInflBodAvg += inflbod;
chungchunInflTnAvg += infltn;
chungchunInflTpAvg += infltp;
chungchunTpInflAvg += tpInfl;
chungchunEfflBodAvg += effbod;
chungchunEfflTnAvg += efftn;
chungchunEfflTpAvg += efftp;
@@ -875,6 +908,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
if(chungchunInflBodMax < inflbod) chungchunInflBodMax = inflbod;
if(chungchunInflTnMax < infltn) chungchunInflTnMax = infltn;
if(chungchunInflTpMax < infltp) chungchunInflTpMax = infltp;
if(chungchunTpInflMax < tpInfl) chungchunTpInflMax = tpInfl;
if(chungchunEfflBodMax < effbod) chungchunEfflBodMax = effbod;
if(chungchunEfflTnMax < efftn) chungchunEfflTnMax = efftn;
if(chungchunEfflTpMax < efftp) chungchunEfflTpMax = efftp;
@@ -882,11 +916,15 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
if(chungchunInflBodMin > inflbod) chungchunInflBodMin = inflbod;
if(chungchunInflTnMin > infltn) chungchunInflTnMin = infltn;
if(chungchunInflTpMin > infltp) chungchunInflTpMin = infltp;
if(chungchunTpInflMin > tpInfl) chungchunTpInflMin = tpInfl;
if(chungchunEfflBodMin > effbod) chungchunEfflBodMin = effbod;
if(chungchunEfflTnMin > efftn) chungchunEfflTnMin = efftn;
if(chungchunEfflTpMin > efftp) chungchunEfflTpMin = efftp;
}else if(month === '06' || month === '07' || month === '08'){
chungchunSummerDay += 1;
if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){
noNullChungchunSummerDay+=1;
}
const inflbod = nullToZero(item.inflAssctBfrWqltBod);
const infltn = nullToZero(item.inflAssctBfrWqltTn);
@@ -894,6 +932,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
const effbod = nullToZero(item.efflWqltBod);
const efftn = nullToZero(item.efflWqltTn);
const efftp = nullToZero(item.efflWqltTp);
const tpInfl = nullToZero(item.tpInflWqltTp);
chungchunInflBodAvgSummer += inflbod;
chungchunInflTnAvgSummer += infltn;
@@ -901,6 +940,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
chungchunEfflBodAvgSummer += effbod;
chungchunEfflTnAvgSummer += efftn;
chungchunEfflTpAvgSummer += efftp;
chungchunTpInflAvgSummer += tpInfl;
}
});
@@ -913,6 +953,10 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[9].summerRain = qltyDataSetting(chungchunInflTpAvgSummer, chungchunSummerDay, 3);
orgData[10].summerRain = qltyDataSetting(chungchunEfflTpAvgSummer, chungchunSummerDay, 3);
// 총인설비
orgData[11].summerRain = qltyDataSetting(chungchunTpInflAvgSummer, noNullChungchunSummerDay, 3);
orgData[12].summerRain = qltyDataSetting(chungchunEfflTpAvgSummer, chungchunSummerDay, 3);
// 동절기
orgData[5].winterSunnyAvg = qltyDataSetting(chungchunInflBodAvg, chungchunWinterDay, 1);
orgData[6].winterSunnyAvg = qltyDataSetting(chungchunEfflBodAvg, chungchunWinterDay, 1);
@@ -921,12 +965,18 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[9].winterSunnyAvg = qltyDataSetting(chungchunInflTpAvg, chungchunWinterDay, 3);
orgData[10].winterSunnyAvg = qltyDataSetting(chungchunEfflTpAvg, chungchunWinterDay, 3);
// 총인설비
orgData[11].winterSunnyAvg = qltyDataSetting(chungchunTpInflAvg, noNullChungchunWinterDay, 3);
orgData[12].winterSunnyAvg = qltyDataSetting(chungchunInflTpAvg, chungchunWinterDay, 3);
orgData[5].winterSunnyMax = roundUp(chungchunInflBodMax, 1).toFixed(1);
orgData[6].winterSunnyMax = roundUp(chungchunEfflBodMax, 1).toFixed(1);
orgData[7].winterSunnyMax = roundUp(chungchunInflTnMax, 3).toFixed(3);
orgData[8].winterSunnyMax = roundUp(chungchunEfflTnMax, 3).toFixed(3);
orgData[9].winterSunnyMax = roundUp(chungchunInflTpMax, 3).toFixed(3);
orgData[10].winterSunnyMax = roundUp(chungchunEfflTpMax, 3).toFixed(3);
orgData[11].winterSunnyMax = roundUp(chungchunTpInflMax, 3).toFixed(3);
orgData[12].winterSunnyMax = roundUp(chungchunInflTpMax, 3).toFixed(3);
orgData[5].winterSunnyMin = chungchunInflBodMin === 99999999 ? '0.0' : roundUp(chungchunInflBodMin, 1).toFixed(1);
orgData[6].winterSunnyMin = chungchunEfflBodMin === 99999999 ? '0.0' : roundUp(chungchunEfflBodMin, 1).toFixed(1);
@@ -934,9 +984,12 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[8].winterSunnyMin = chungchunEfflTnMin === 99999999 ? '0.000' : roundUp(chungchunEfflTnMin, 3).toFixed(3);
orgData[9].winterSunnyMin = chungchunInflTpMin === 99999999 ? '0.000' : roundUp(chungchunInflTpMin, 3).toFixed(3);
orgData[10].winterSunnyMin = chungchunEfflTpMin === 99999999 ? '0.000' : roundUp(chungchunEfflTpMin, 3).toFixed(3);
orgData[11].winterSunnyMin = chungchunTpInflMin === 99999999 ? '0.000' : roundUp(chungchunTpInflMin, 3).toFixed(3);
orgData[12].winterSunnyMin = chungchunInflTpMin === 99999999 ? '0.000' : roundUp(chungchunInflTpMin, 3).toFixed(3);
// 강우시 변수
let rainSummerDay = 0;
let noNullRainSummerDay = 0;
let rainInflBodAvg = 0;
let rainInflTnAvg = 0;
@@ -944,12 +997,16 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
let rainEfflBodAvg = 0;
let rainEfflTnAvg = 0;
let rainEfflTpAvg = 0;
let rainTpInflAvg = 0;
// 강우시
qltyRainData.forEach((item: any) => {
const month = item.msrDt.substring(4, 6); // 월 추출
if(month === '06' || month === '07' || month === '08'){
rainSummerDay += 1;
if(item.tpInflWqltTp != null && item.tpInflWqltTp != 0){
noNullRainSummerDay+=1;
}
const inflbod = nullToZero(item.inflAssctBfrWqltBod);
const infltn = nullToZero(item.inflAssctBfrWqltTn);
@@ -957,6 +1014,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
const effbod = nullToZero(item.efflWqltBod);
const efftn = nullToZero(item.efflWqltTn);
const efftp = nullToZero(item.efflWqltTp);
const tpInfl = nullToZero(item.tpInflWqltTp);
rainInflBodAvg += inflbod;
rainInflTnAvg += infltn;
@@ -964,6 +1022,7 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
rainEfflBodAvg += effbod;
rainEfflTnAvg += efftn;
rainEfflTpAvg += efftp;
rainTpInflAvg += tpInfl;
}
});
@@ -974,6 +1033,11 @@ const calcWaterQltyData = async (data: any[], searchYear : string|undefined, fcl
orgData[8].summerThree = qltyDataSetting(rainEfflTnAvg, rainSummerDay, 3);
orgData[9].summerThree = qltyDataSetting(rainInflTpAvg, rainSummerDay, 3);
orgData[10].summerThree = qltyDataSetting(rainEfflTpAvg, rainSummerDay, 3);
// 총인설비
orgData[11].summerThree = qltyDataSetting(rainTpInflAvg, noNullRainSummerDay, 3);
orgData[12].summerThree = qltyDataSetting(rainInflTpAvg, rainSummerDay, 3);
return orgData;
} else {
return orgData;