오수발생량 조치 진행중
This commit is contained in:
@@ -5,6 +5,7 @@ import { DateMonthPicker, UiTable } from "@common/business_components/ui";
|
||||
import ListDiv from "@common/business_components/ui/list_div";
|
||||
import { Table, TableCell, TableHead, TableRow } from "@common/components/ui";
|
||||
import { useEffect, useState } from "react";
|
||||
import { start } from "repl";
|
||||
|
||||
|
||||
export default function SewageOccurModal(props: { fcltyName: string; facilityCd : string; searchYear : string}) {
|
||||
@@ -13,10 +14,15 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
|
||||
|
||||
// searchYear 유효성 검사 및 기본값 설정
|
||||
const validSearchYear = props.searchYear && /^\d{4}$/.test(props.searchYear) ? props.searchYear : new Date().getFullYear().toString();
|
||||
|
||||
|
||||
const [startYearMonth, setStartYearMonth] = useState(validSearchYear+'01');
|
||||
const [endYearMonth, setEndYearMonth] = useState(validSearchYear+'12');
|
||||
const [detailList, setDetailList] = useState<modalTableType[]>([]);
|
||||
// 가능한 시작년월 설정
|
||||
const [enableStartMonth, setEnableStartMonth] = useState<string[]>(['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']);
|
||||
const [enableEndMonth, setEnableEndMonth] = useState<string[]>(['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']);
|
||||
|
||||
const {
|
||||
upHeadListSewageOccurDetail,
|
||||
gridListSewageOccurDetail
|
||||
@@ -33,6 +39,37 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
|
||||
|
||||
useEffect(() => {
|
||||
searchSewageOccurDetailList(props.facilityCd, validSearchYear, startYearMonth, endYearMonth);
|
||||
}, [startYearMonth, endYearMonth, searchSewageOccurDetailList, props.facilityCd, validSearchYear]);
|
||||
|
||||
useEffect(() => {
|
||||
const standdardMonthList = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']
|
||||
|
||||
// 시작년월이 바뀌면 선택가능한 년월 데이터가 변경돼야 한다.
|
||||
if(startYearMonth){
|
||||
const startMm = startYearMonth.substring(4, 6);
|
||||
|
||||
standdardMonthList.forEach((month) => {
|
||||
setEnableStartMonth((prev) => {
|
||||
if (parseInt(month.replaceAll('월', '')) < parseInt(startMm)) {
|
||||
return prev.filter((m) => m !== month);
|
||||
}
|
||||
return prev;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if(endYearMonth){
|
||||
const endMm = endYearMonth.substring(4, 6);
|
||||
standdardMonthList.forEach((month) => {
|
||||
setEnableEndMonth((prev) => {
|
||||
if (parseInt(month.replaceAll('월', '')) > parseInt(endMm)) {
|
||||
return prev.filter((m) => m !== month);
|
||||
}
|
||||
return prev;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}, [startYearMonth, endYearMonth]);
|
||||
|
||||
return (
|
||||
@@ -63,6 +100,7 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
|
||||
selectClass="ml-5 w-[100px]"
|
||||
startYear={1900}
|
||||
yearReadOnly={true}
|
||||
enableMonth={enableStartMonth}
|
||||
/>~
|
||||
<DateMonthPicker
|
||||
field={{
|
||||
@@ -81,6 +119,7 @@ export default function SewageOccurModal(props: { fcltyName: string; facilityCd
|
||||
selectClass="ml-5 w-[100px]"
|
||||
startYear={1900}
|
||||
yearReadOnly={true}
|
||||
enableMonth={enableEndMonth}
|
||||
/>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
|
||||
@@ -222,6 +222,7 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
|
||||
},
|
||||
}));
|
||||
const res = await fetchSewageOccurList(pageNo, pageSize, searchYear, part, nameCd, fcltCpct, operationValue, fcltyNm);
|
||||
const excelDownList: ExcelType[] = [];
|
||||
const data = res.data;
|
||||
// Promise.all을 사용하여 모든 비동기 작업이 완료될 때까지 기다림
|
||||
const calData = await Promise.all(data.map(async (item: SewageOccurProps) => {
|
||||
@@ -301,6 +302,28 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
|
||||
item.estimationSewage = parseFloat((item.waterUsage * (item.swageChangePercent/100)).toFixed(2));
|
||||
return item;
|
||||
}));
|
||||
|
||||
if(pageSize>5000){
|
||||
calData.forEach((item: SewageOccurProps) => {
|
||||
excelDownList.push({
|
||||
시설코드: item.bscFctCd,
|
||||
권역: item.rvbsn,
|
||||
단위유역: item.lgbsn,
|
||||
중권역: item.mdmbsn,
|
||||
환경청: item.rgnNm,
|
||||
시설명: item.bscFctNm,
|
||||
시도: item.sido,
|
||||
시군구: item.sigungo,
|
||||
주소: item.daddr,
|
||||
시설용량: item.fctCpc,
|
||||
물사용량: item.waterUsage,
|
||||
오수전환율: item.swageChangePercent,
|
||||
오수발생량추정: item.estimationSewage,
|
||||
연간하수유입량 : item.sewageInputYear,
|
||||
청천시하수유입량 : item.sewageInputChungchun,
|
||||
});
|
||||
});
|
||||
}
|
||||
// 조회 데이터 설정
|
||||
set((state: any) => ({
|
||||
...state,
|
||||
@@ -311,7 +334,7 @@ export const sewageOccurReducer:(set:any)=>SewageOccurActions=(set: any) => {
|
||||
isLoading : false,
|
||||
}:{
|
||||
...state.SewageOccur,
|
||||
excelList: [],
|
||||
excelList: excelDownList,
|
||||
isLoading : false,
|
||||
},
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user