숫자 우측정렬, 자릿수 수정

This commit is contained in:
2025-08-19 15:04:38 +09:00
parent 5b3bbf0204
commit 3746dcf005
12 changed files with 170 additions and 118 deletions
+24 -13
View File
@@ -4,6 +4,26 @@
item: Record<string, unknown>;
}
export const roundNumber = (value : any, decimals: number) => {
if (typeof value === 'number') {
return addCommas((Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals)).toFixed(decimals));
} else if (typeof value === 'string' && !isNaN(Number(value))) {
return addCommas(Number(value).toFixed(decimals));
}
}
export const addCommas = (value: string | number): any => {
if (typeof value === 'number') {
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",").split('.').map((part, index) =>
index === 0 ? part : part.replace(/(\d{3})/g, '$1,')
).join('.');
} else if (typeof value === 'string') {
return value.includes('.')?value.split('.').map((part, index) =>
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
).join('.'):String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
}
export default function DataForm({ type, column, item }: DataFormProps) {
if(item) {
const value = item[column];
@@ -27,28 +47,19 @@ export default function DataForm({ type, column, item }: DataFormProps) {
break;
case 'float1':
if(value) {
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 10) / 10).split('.').map((part, index) =>
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
).join('.')
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
item[column] = roundNumber(value, 1);
}
break;
case 'float2':
if(value) {
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 100) / 100).split('.').map((part, index) =>
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
).join('.')
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
item[column] = roundNumber(value, 2);
}
break;
case 'float3':
if(value) {
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 1000) / 1000).split('.').map((part, index) =>
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
).join('.')
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
item[column] = roundNumber(value, 3);
}
break;
}
}
}
}
@@ -6,6 +6,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@
import { useEffect, useState } from "react";
import DashBoardChartModal from "./modal/page";
import LoadingOverlay from "@common/business_components/ui/loadingBar";
import DataForm, { roundNumber } from "@/app/components/common/DataForm";
export type facilityInfoProps = {
searchYear?: string;
@@ -224,7 +225,7 @@ export default function ProcessFacilitySearch({searchYear = '', fcltyList = []}:
:(index < 5 || index > 5)&& (index!= 4) && (head.id ==='provisionalApproval'||head.id ==='now'||head.id ==='stepOne'||head.id ==='stepTwo'||head.id ==='stepThree'||head.id ==='stepFour')
?<TableCell className="text-right" style={{ whiteSpace: 'pre-line' }} key={head.id+index}>{el[head.id]}</TableCell>
:(head.id === "provisionalApproval" && index === 4)
?<TableCell colSpan={6} className="text-right border border-[var(--border)] text-[rgb(100,119,132)]" style={{ whiteSpace: 'pre-line' }} key={head.id+index}>{Math.round((Number(waterUsage1)+Number(waterUsage2)+Number(waterUsage3))/3 * 100)/100}</TableCell>
?<TableCell colSpan={6} className="text-right border border-[var(--border)] text-[rgb(100,119,132)]" style={{ whiteSpace: 'pre-line' }} key={head.id+index}>{roundNumber(String((Number(waterUsage1)+Number(waterUsage2)+Number(waterUsage3))/3), 0)}</TableCell>
:((head.id ==='now'||head.id ==='stepOne'||head.id ==='stepTwo'||head.id ==='stepThree'||head.id ==='stepFour') )
?null
:(head.id === 'item' && index != 5)?
@@ -6,6 +6,7 @@ import { downloadExcel, UITab, UiTable } from "@common/business_components/ui";
import { Button, TabsContent } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
import type { ReturnType } from "../../../../components/common/FacilityTermModalHeader";
import { roundUp } from "@/app/store/common";
const tabList = [
{ value: 'tab_term_year', label: '연간' },
@@ -104,39 +105,35 @@ export default function FlowRateModal(props: { fcltyName: string; facilityCd: st
avginfoRnDay += infoRnDay;
});
console.log('maxtotInflAmnt', maxtotInflAmnt, 'maxinflAmnt', maxinflAmnt, 'maxsumFlow', maxsumFlow, 'maxreturnAmnt', maxreturnAmnt, 'maxefflAmnt', maxefflAmnt, 'maxinfoRnDay', maxinfoRnDay);
console.log('mintotInflAmnt', mintotInflAmnt, 'mininflAmnt', mininflAmnt, 'minsumFlow', minsumFlow, 'minreturnAmnt', minreturnAmnt, 'minefflAmnt', minefflAmnt, 'mininfoRnDay', mininfoRnDay);
console.log('avgtotInflAmnt', avgtotInflAmnt, 'avginflAmnt', avginflAmnt, 'avgsumFlow', avgsumFlow, 'avgreturnAmnt', avgreturnAmnt, 'avgefflAmnt', avgefflAmnt, 'avginfoRnDay', avginfoRnDay);
const newFilteredData = [
{
msrDt: '평균',
totInflAmnt: Math.round(avgtotInflAmnt / filteredData.length * 10) / 10,
inflAmnt: Math.round(avginflAmnt / filteredData.length * 10) / 10,
sumFlow: Math.round(avgsumFlow / filteredData.length * 10) / 10,
returnAmnt: Math.round(avgreturnAmnt / filteredData.length * 10) / 10,
efflAmnt: Math.round(avgefflAmnt / filteredData.length * 10) / 10,
infoRnDay: avginfoRnDay > 0 ? Math.round(avginfoRnDay / filteredData.length * 10) / 10 : 0,
totInflAmnt: roundUp((avgtotInflAmnt / filteredData.length), 0),
inflAmnt: roundUp((avginflAmnt / filteredData.length), 0),
sumFlow: roundUp((avgsumFlow / filteredData.length), 0),
returnAmnt: roundUp((avgreturnAmnt / filteredData.length), 0),
efflAmnt: roundUp((avgefflAmnt / filteredData.length), 0),
infoRnDay: avginfoRnDay > 0 ? roundUp((avginfoRnDay / filteredData.length), 1) : '0.0',
rainEffectDay: 0,
},
{
msrDt: '최대',
totInflAmnt: Math.round(maxtotInflAmnt * 10) / 10,
inflAmnt: Math.round(maxinflAmnt * 10) / 10,
sumFlow: Math.round(maxsumFlow * 10) / 10,
returnAmnt: Math.round(maxreturnAmnt * 10) / 10,
efflAmnt: Math.round(maxefflAmnt * 10) / 10,
infoRnDay: maxinfoRnDay > 0 ? (Math.round(maxinfoRnDay * 10) / 10).toFixed(1) : '0.0',
totInflAmnt: roundUp(maxtotInflAmnt, 0),
inflAmnt: roundUp(maxinflAmnt, 0),
sumFlow: roundUp(maxsumFlow, 0),
returnAmnt: roundUp(maxreturnAmnt, 0),
efflAmnt: roundUp(maxefflAmnt, 0),
infoRnDay: maxinfoRnDay > 0 ? roundUp(maxinfoRnDay, 1) : '0.0',
rainEffectDay: 0,
},
{
msrDt: '최소',
totInflAmnt: Math.round(mintotInflAmnt * 10) / 10,
inflAmnt: Math.round(mininflAmnt * 10) / 10,
sumFlow: Math.round(minsumFlow * 10) / 10,
returnAmnt: Math.round(minreturnAmnt * 10) / 10,
efflAmnt: Math.round(minefflAmnt * 10) / 10,
infoRnDay: mininfoRnDay > 0 ? (Math.round(mininfoRnDay * 10) / 10).toFixed(1) : '0.0',
totInflAmnt: roundUp(mintotInflAmnt, 0),
inflAmnt: roundUp(mininflAmnt, 0),
sumFlow: roundUp(minsumFlow, 0),
returnAmnt: roundUp(minreturnAmnt, 0),
efflAmnt: roundUp(minefflAmnt, 0),
infoRnDay: mininfoRnDay > 0 ? roundUp(mininfoRnDay, 1) : '0.0',
rainEffectDay: 0,
},
...filteredData
@@ -130,7 +130,7 @@ export default function ProcessFacilitySearch() {
initializeCommonData();
searchFlowRateList(1, 10, selectSearchYear[0]?.val || "0");
}
}, [isInit, initializeCommonData, searchFlowRateList]);
}, [isInit, initializeCommonData, searchFlowRateList, selectSearchYear]);
useEffect(() => {
if (excelList && excelList.length > 0) {
@@ -187,7 +187,7 @@ export default function ProcessFacilitySearch() {
queryClick={chkVal}
excelClick={excelDownload}
initClick={resetVal}
ref={ref} isAdmin={false} />
ref={ref} isAdmin={false}/>
<ListDiv>
<LoadingOverlay isLoading={isLoading} />
<div className="h-full w-full overflow-x-scroll">
+39 -31
View File
@@ -872,13 +872,13 @@ export const dashBoardInitState:DashBoardType = {
/**
* 데이터 폼 포맷설정
*/
export const dataFormSettingPlan=(item : planFcltyListProps) => {
DataForm({ type: 'float2', column: 'provisionalApproval', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float2', column: 'now', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'stepOne', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'stepTwo', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'stepThree', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'stepFour', item: item as unknown as Record<string, unknown>});
export const dataFormSettingPlan=(item : planFcltyListProps, decmials : number) => {
DataForm({ type: 'float'+decmials, column: 'provisionalApproval', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float'+decmials, column: 'now', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float'+decmials, column: 'stepOne', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float'+decmials, column: 'stepTwo', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float'+decmials, column: 'stepThree', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float'+decmials, column: 'stepFour', item: item as unknown as Record<string, unknown>});
}
export const dataFormSetting=(item : OperationalStatusListProps)=> {
@@ -896,23 +896,25 @@ export const dataFormSetting=(item : OperationalStatusListProps)=> {
DataForm({ type: 'float0', column: 'groundWaterSummer', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'groundWaterWinter', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'rainRate', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'rdi', item: item as unknown as Record<string, unknown>});
};
export const dataFormSettingWqlty=(item : OperationalStatusListProps)=> {
DataForm({ type: 'float2', column: 'yearAvg', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float2', column: 'yearMax', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'yearMin', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'summerAll', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'summerThree', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'summerRain', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'winterAll', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'winterSunnyAvg', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'winterSunnyMax', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'winterSunnyMin', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'groundWaterAvg', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'groundWaterSummer', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'groundWaterWinter', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'rainRate', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'yearAvg', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'yearMax', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'yearMin', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'summerAll', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'summerThree', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'summerRain', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'winterAll', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'winterSunnyAvg', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'winterSunnyMax', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'winterSunnyMin', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'groundWaterAvg', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'groundWaterSummer', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'groundWaterWinter', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'rainRate', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'rdi', item: item as unknown as Record<string, unknown>});
};
const changeValue=(operationalStatus, data, keyTxt = 'INFL_AMNT')=>{
@@ -938,7 +940,7 @@ const changeValue=(operationalStatus, data, keyTxt = 'INFL_AMNT')=>{
const winterAvgBod = data.winterSunny && data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD && data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD != 'null' ? Number(data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD) : 0;
const summerLowBod = data.summerBod && data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD && data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD != 'null' ? Number(data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD) : 0;
const summerLowRain = data.summerBod && data.summerBod.INFO_RN_DAY && data.summerBod.INFO_RN_DAY != 'null' ? Number(data.summerBod.INFO_RN_DAY) : 0;
operationalStatus.rdi = winterAvgBod === 0 ? 0 : summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod);
operationalStatus.rdi = winterAvgBod === 0 ? 0 : roundUp(summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod), 1);
operationalStatus.rdiRain = summerLowRain;
}
@@ -1128,9 +1130,15 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType)
if(index === 4){
el.provisionalApproval = rtnPlanData?rtnPlanData.ugwtUseSum:'';
}
if(index == 0 || index === 2){
dataFormSettingPlan(el, 1);
}else if(index == 4){
}else{
dataFormSettingPlan(el, 0);
}
// 임시시
dataFormSettingPlan(el);
set((state: DashBoardType) => ({
...state,
PlanFclty: {
@@ -1333,19 +1341,19 @@ export const dashBoardReducer:(set:(fn: (state: DashBoardType) => DashBoardType)
const winterAvgBod = data.winterSunny&&data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD&&data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD!='null'?Number(data.winterSunny.AVG_INFL_ASSCT_BFR_WQLT_BOD):0;
const summerLowBod = data.summerBod&&data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD&&data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD!='null'?Number(data.summerBod.MIN_INFL_ASSCT_BFR_WQLT_BOD):0;
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:summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod);
operationalStatusList[0].rdi = winterAvgBod===0?0:roundUp(summerLowFlow * ((winterAvgBod - summerLowBod) / winterAvgBod), 2);
operationalStatusList[0].rdiRain = summerLowRain;
dataFormSetting(operationalStatusList[0]);
}
if(operationalStatusList[0] && operationalStatusList[7]){
operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : data.yearData && data.yearData.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterAvg) / (data.yearData && data.yearData.AVG_INFL_AMNT ? Number(data.yearData.AVG_INFL_AMNT) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : data.summer && data.summer.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterSummer) / (data.summer && data.summer.AVG_INFL_AMNT ? Number(data.summer.AVG_INFL_AMNT) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : data.winter && data.winter.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterWinter) / (data.winter && data.winter.AVG_INFL_AMNT ? Number(data.winter.AVG_INFL_AMNT) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].rdi = operationalStatusList[0].rdi === null ? '' : data.summerBod && data.summerBod.INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].rdi) / (data.summerBod&&data.summerBod.INFL_AMNT&&data.summerBod.INFL_AMNT!='null'?Number(data.summerBod.INFL_AMNT):0) * 100) * 10) / 10+'%';
/* operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : Number(Number(operationalStatusList[0].groundWaterAvg) / Number(data.yearData.AVG_INFL_AMNT)) * 100;
operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : data.yearData && data.yearData.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterAvg.toString().replaceAll(',', '')) / (data.yearData && data.yearData.AVG_INFL_AMNT ? Number(data.yearData.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : data.summer && data.summer.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterSummer.toString().replaceAll(',','')) / (data.summer && data.summer.AVG_INFL_AMNT ? Number(data.summer.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : data.winter && data.winter.AVG_INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].groundWaterWinter.toString().replaceAll(',','')) / (data.winter && data.winter.AVG_INFL_AMNT ? Number(data.winter.AVG_INFL_AMNT.toString().replaceAll(',','')) : 0) * 100) * 10) / 10+'%';
operationalStatusList[7].rdi = operationalStatusList[0].rdi === null ? '' : data.summerBod && data.summerBod.INFL_AMNT === 0 ? '' : Math.round((Number(operationalStatusList[0].rdi.toString().replaceAll(',','')) / (data.summerBod&&data.summerBod.INFL_AMNT&&data.summerBod.INFL_AMNT!='null'?Number(data.summerBod.INFL_AMNT.toString().replaceAll(',','')):0) * 100) * 10) / 10+'%';
/* operationalStatusList[7].groundWaterAvg = operationalStatusList[0].groundWaterAvg === null ? '' : Number(Number(operationalStatusList[0].groundWaterAvg) / Number(data.yearData.AVG_INFL_AMNT)) * 100;
operationalStatusList[7].groundWaterSummer = operationalStatusList[0].groundWaterSummer === null ? '' : Number(Number(operationalStatusList[0].groundWaterSummer) / Number(data.summer.AVG_INFL_AMNT)) * 100;
operationalStatusList[7].groundWaterWinter = operationalStatusList[0].groundWaterWinter === null ? '' : Number(Number(operationalStatusList[0].groundWaterWinter) / Number(data.winter.AVG_INFL_AMNT)) * 100;*/
dataFormSetting(operationalStatusList[0]);
}
for(let i=1; i<operationalStatusList.length; i++){
@@ -449,8 +449,8 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType
item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, ''));
item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || '';
item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || '';
item.inflAssctAftWqltToc = Number(searchYear)<2021? "("+item.inflAssctAftWqltToc+")" : item.inflAssctAftWqltToc;
item.inflAssctBfrWqltToc = Number(searchYear)<2021? "("+item.inflAssctBfrWqltToc+")" : item.inflAssctBfrWqltToc;
item.efflWqltToc = Number(searchYear)<2021? "("+item.efflWqltToc+")" : item.efflWqltToc;
excelDownList.push({
시설코드: item.bscFctCd,
권역: item.rvbsn,
@@ -480,8 +480,8 @@ export const facilityWaterQltyReducer = (set: (fn: (state: FacilityWaterQltyType
item.fctCpc = parseFloat(item.fctCpc.toString().replace(/,/g, ''));
item.sidoNm = item.lclgvrnmntNm.split(' ')[0]?.toString() || '';
item.sggNm = item.lclgvrnmntNm.split(' ')[1]?.toString() || '';
item.inflAssctAftWqltToc = Number(searchYear)<2021? "("+item.inflAssctAftWqltToc+")" : item.inflAssctAftWqltToc;
item.inflAssctBfrWqltToc = Number(searchYear)<2021? "("+item.inflAssctBfrWqltToc+")" : item.inflAssctBfrWqltToc;
item.efflWqltToc = Number(searchYear)<2021? "("+item.efflWqltToc+")" : item.efflWqltToc;
});
}
set((state: FacilityWaterQltyType) => ({
+6 -6
View File
@@ -230,12 +230,12 @@ export type FlowRateSearchStore = FlowRateSearchType & FlowRateSearchActions;
const dataFormSetting=(item : flowRateListProps | FlowRateModalProps)=> {
DataForm({ type: 'date', column: 'msrDt', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'totInflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'inflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'sumFlow', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'efflWqltBod', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'returnAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'efflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'totInflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'inflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'sumFlow', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'efflWqltBod', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'returnAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'efflAmnt', item: item as unknown as Record<string, unknown>});
}
export const flowRateSearchInitState:FlowRateSearchType = {
+2 -2
View File
@@ -119,8 +119,8 @@ export type ExcelType = {
}
const dataFormSetting=(item : PlanSewageProps)=> {
DataForm({ type: 'float1', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'spareCapacity', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'spareCapacity', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'variableLoadPercent', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'classifiedSewerPercent', item: item as unknown as Record<string, unknown>});
};
+32 -7
View File
@@ -601,7 +601,7 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
res.data.forEach((item:facilityListProps) => {
DataForm({ type: 'date', column: 'cmplDt', item:item as unknown as Record<string, unknown>});
DataForm({ type: 'date', column: 'rnDt', item:item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'fctCpc', item:item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'fctCpc', item:item as unknown as Record<string, unknown>});
})
res.data.forEach(item => {
@@ -613,7 +613,6 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
if(pageSize>5000){
res.data.forEach(item => {
item.fctCpc = item.fctCpc ? parseFloat(item.fctCpc.toString().replace(/,/g, '')) : '';
excelDownList.push({
시설코드: item.bscFctCd,
권역: item.rvbsn,
@@ -633,10 +632,6 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
관리대행업자: item.mnstr,
})
})
}else{
res.data.forEach(item => {
item.fctCpc = item.fctCpc ? parseFloat(item.fctCpc.toString().replace(/,/g, '')) : '';
})
}
set((state:ProcessFacilityType) => ({
...state,
@@ -782,6 +777,29 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
}
});
sortedWaterQltyInfo.forEach(item => {
DataForm({ type: 'float1', column: 'plInflWqltBod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plInflWqltToc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plInflWqltCod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plInflWqltSs', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'plInflWqltTn', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'plInflWqltTp', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'dsInflWqltBod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'dsInflWqltToc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'dsInflWqltCod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'dsInflWqltSs', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'dsInflWqltTn', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'dsInflWqltTp', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plEfflWqltBod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plEfflWqltToc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plEfflWqltCod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'plEfflWqltSs', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'plEfflWqltTn', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'plEfflWqltTp', item: item as unknown as Record<string, unknown> });
});
// 법적수질정보 초기화 및 push
gridListLegalWaterQlty = [];
@@ -794,6 +812,14 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
totClfgrpcnt : Number(facilityWaterQltyInfo[0]?.totClfgrpcnt ?? 0),
});
gridListLegalWaterQlty.forEach(item => {
DataForm({ type: 'float1', column: 'bod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'cod', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'ss', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'tn', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float3', column: 'tp', item: item as unknown as Record<string, unknown> });
});
// 마지막 수질 데이터의 값을 gridListPlanInfo에 업데이트
if (sortedWaterQltyInfo.length > 0) {
const lastWaterQltyInfo = sortedWaterQltyInfo[sortedWaterQltyInfo.length - 1];
@@ -818,7 +844,6 @@ export const processFacilityReducer:(set:SetStateFunction)=>ProcessFacilityActio
plInflWqltTn: lastWaterQltyInfo?.plInflWqltTn === 'NULL' || lastWaterQltyInfo?.plInflWqltTn === undefined ? '' : lastWaterQltyInfo.plInflWqltTn,
plInflWqltTp: lastWaterQltyInfo?.plInflWqltTp === 'NULL' || lastWaterQltyInfo?.plInflWqltTp === undefined ? '' : lastWaterQltyInfo.plInflWqltTp
}],
}
}));
} else {
+4 -4
View File
@@ -206,12 +206,12 @@ export const rdiInitState: RdiType = {
}
const dataFormSetting=(item : RdiProps)=> {
DataForm({ type: 'float1', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'summerMinBodValue', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'winterAvgBodLowRainfall', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'rdiiValue', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'infoRnDay', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'inflAmnt', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'rdiiValue', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float1', column: 'infoRnDay', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'inflAmnt', item: item as unknown as Record<string, unknown>});
}
// Add type definitions for state setter function
+19 -9
View File
@@ -1,3 +1,4 @@
import DataForm from "@/app/components/common/DataForm";
import type { TableUpperProps } from "../dashboard";
import { getFetch } from "@/app/components/api";
export type { TableUpperProps };
@@ -108,9 +109,9 @@ const upHeadList3:TableUpperProps[] = [
const upHeadListSewageOccurDetail:TableUpperProps[] = [
{ id: "msrDt", title: "년월" },
{ id: "waterUsage", title: "물사용량(m³/일)" },
{ id: "swageChangePercent", title: "오수전환율(%)" },
{ id: "estimationSewage", title: "오수발생량 추정(m³/일)", row:0, rowSpan:2 },
{ id: "waterUsage", title: "물사용량(m³/일)", align:"right" },
{ id: "swageChangePercent", title: "오수전환율(%)", align:"right" },
{ id: "estimationSewage", title: "오수발생량 추정(m³/일)", row:0, rowSpan:2, align:"right" },
];
const sewageOccurList:SewageOccurProps[] = []
@@ -292,6 +293,15 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
return item;
}));
calData.forEach((item: SewageOccurProps) => {
DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'waterUsage', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'swageChangePercent', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'estimationSewage', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'sewageInputYear', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'sewageInputChungchun', item: item as unknown as Record<string, unknown> });
});
if(pageSize>5000){
calData.forEach((item: SewageOccurProps) => {
excelDownList.push({
@@ -371,9 +381,9 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
item.usege = item.sum/item.cnt *0.65
tableData.push({
msrDt: item.yr+'-'+(index+1>=10?String(index+1):'0'+(index+1)),
waterUsage: Math.round(item.usege*100) /100,
waterUsage: Math.round(item.usege*1) /1,
swageChangePercent: (Math.round((item.usege/item.usege*0.9) * 100) / 100) * 100,
estimationSewage: Math.round(item.usege*0.9 * 100) / 100
estimationSewage: Math.round(item.usege*0.9 * 1) / 1
})
if (item.usege > maxWaterUsage) {
maxWaterUsage = item.usege;
@@ -389,21 +399,21 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
const newData= [
{
msrDt: '평균',
waterUsage: Math.round(avgWaterUsage*100) /100,
waterUsage: Math.round(avgWaterUsage*1) /1,
swageChangePercent: 90,
estimationSewage: Math.round(avgWaterUsage*0.9*100) /100,
estimationSewage: Math.round(avgWaterUsage*0.9*1) /1,
},
{
msrDt: '최대',
waterUsage: Math.round(maxWaterUsage*100) /100,
swageChangePercent: 90,
estimationSewage: Math.round(maxWaterUsage*0.9*100) /100,
estimationSewage: Math.round(maxWaterUsage*0.9*1) /1,
},
{
msrDt: '최소',
waterUsage: Math.round(minWaterUsage*100) /100,
swageChangePercent: 90,
estimationSewage: Math.round(minWaterUsage*0.9*100) /100,
estimationSewage: Math.round(minWaterUsage*0.9*1) /1,
},
...tableData
]
+19 -19
View File
@@ -250,10 +250,10 @@ export const underWaterInitState: UnderWaterType = {
}
const dataFormSetting=(item : UnderWaterProps)=> {
DataForm({ type: 'float1', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float1', column: 'underWaterInputYear', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'underWaterInputSummer', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float2', column: 'underWaterInputWinter', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'fctCpc', item: item as unknown as Record<string, unknown> });
DataForm({ type: 'float0', column: 'underWaterInputYear', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'underWaterInputSummer', item: item as unknown as Record<string, unknown>});
DataForm({ type: 'float0', column: 'underWaterInputWinter', item: item as unknown as Record<string, unknown>});
}
export type UnderWaterStore = UnderWaterType & UnderWaterActions;
@@ -367,9 +367,9 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy
console.log('usage : ', usage, 'summerUsage : ', summerUsage, 'winterUsage : ', winterUsage);
}
item.underWaterInputYear = Math.round((usage-(usage*0.65*0.9)) * 100) / 100;
item.underWaterInputSummer = Math.round((summerUsage-(summerUsage*0.65*0.9)) * 100) / 100;
item.underWaterInputWinter = Math.round((winterUsage-(winterUsage*0.65*0.9)) * 100) / 100;
item.underWaterInputYear = Math.round((usage-(usage*0.65*0.9)) * 1) / 1;
item.underWaterInputSummer = Math.round((summerUsage-(summerUsage*0.65*0.9)) * 1) / 1;
item.underWaterInputWinter = Math.round((winterUsage-(winterUsage*0.65*0.9)) * 1) / 1;
return item;
}));
@@ -455,9 +455,9 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy
item.usege = item.sum/item.cnt
tableData.push({
msrDt: item.yr+'-'+(index+1>=10?String(index+1):'0'+(index+1)),
realSewageInput:Math.round(item.usege*100) /100,
sewageOccur:Math.round(item.usege*0.65*0.9 * 100) / 100,
underWaterInput:Math.round((item.usege-(item.usege*0.65*0.9)) * 100) / 100,
realSewageInput:Math.round(item.usege*1) /1,
sewageOccur:Math.round(item.usege*0.65*0.9 * 1) / 1,
underWaterInput:Math.round((item.usege-(item.usege*0.65*0.9)) * 1) / 1,
})
if (item.usege > maxWaterUsage) {
maxWaterUsage = item.usege;
@@ -474,22 +474,22 @@ export const underWaterReducer:(set:(fn: (state: UnderWaterType) => UnderWaterTy
const newData= [
{
msrDt: '평균',
realSewageInput:Math.round(avgWaterUsage*100) /100,
sewageOccur:Math.round(avgWaterUsage*0.65*0.9 * 100) / 100,
underWaterInput: Math.round((avgWaterUsage-(avgWaterUsage*0.65*0.9)) * 100) / 100
realSewageInput:Math.round(avgWaterUsage*1) /1,
sewageOccur:Math.round(avgWaterUsage*0.65*0.9 * 1) / 1,
underWaterInput: Math.round((avgWaterUsage-(avgWaterUsage*0.65*0.9)) * 1) / 1
//underWaterInput:Math.round((avgWaterUsage-(avgWaterUsage*0.65*0.8)) * 100) / 100,
},
{
msrDt: '최대',
realSewageInput: Math.round(maxWaterUsage*100) /100,
sewageOccur: Math.round(maxWaterUsage*0.65*0.9 * 100) / 100,
underWaterInput: Math.round((maxWaterUsage-(maxWaterUsage*0.65*0.9)) * 100) / 100,
realSewageInput: Math.round(maxWaterUsage*1) /1,
sewageOccur: Math.round(maxWaterUsage*0.65*0.9 * 1) / 1,
underWaterInput: Math.round((maxWaterUsage-(maxWaterUsage*0.65*0.9)) * 1) / 1,
},
{
msrDt: '최소',
realSewageInput: Math.round(minWaterUsage*100) /100,
sewageOccur: Math.round(minWaterUsage*0.65*0.9 * 100) / 100,
underWaterInput: Math.round((minWaterUsage-(minWaterUsage*0.65*0.9)) * 100) / 100,
realSewageInput: Math.round(minWaterUsage*1) /1,
sewageOccur: Math.round(minWaterUsage*0.65*0.9 * 1) / 1,
underWaterInput: Math.round((minWaterUsage-(minWaterUsage*0.65*0.9)) * 1) / 1,
},
...tableData
]