diff --git a/apps/st/src/components/statistics/management/SewageReservoirPumpMng.tsx b/apps/st/src/components/statistics/management/SewageReservoirPumpMng.tsx index 6ace6af10..c60007f54 100644 --- a/apps/st/src/components/statistics/management/SewageReservoirPumpMng.tsx +++ b/apps/st/src/components/statistics/management/SewageReservoirPumpMng.tsx @@ -6,11 +6,28 @@ import SaveButton from "@/components/button/SaveButton"; import LastYearDataButton from "@/components/button/LastYearDataButton"; import SubmitExceptionButton from "@/components/button/SubmitExceptionButton"; -import { SewageReservoirPumpMngColumnInfoList } from "@/components/util/column/management/SewageReservoirPumpMngColumn"; +import { SewageReservoirColumn } from "@/components/util/column/management/sewageReservoirPump/SewageReservoirColumn"; +import { RainfallPumpStationColumn } from "@/components/util/column/management/sewageReservoirPump/RainfallPumpStationColumn"; // 하수도 통계 관리 > 04. 하수저류 시설 및 빗물 펌프장 const SewageReservoirPumpMng = () => { const [rowDataMap, setRowDataMap] = useState[]>>(new Map()); + + // tab List + const SewageReservoirPumpMngColumnInfoList = [ + SewageReservoirColumn, + RainfallPumpStationColumn + ]; + + const submitExceptionFunc = () => { + console.log('submit exception'); + // 예외 제출 로직 + }; + + const getLastYearDataFunc = () => { + console.log('get last year data'); + // 지난연도 데이터 가져오기 로직 + }; const submitFunc = () => { console.log('submit'); @@ -22,24 +39,14 @@ const SewageReservoirPumpMng = () => { // 저장 로직 }; - const getLastYearDataFunc = () => { - console.log('get last year data'); - // 지난연도 데이터 가져오기 로직 - }; - - const submitExceptionFunc = () => { - console.log('submit exception'); - // 예외 제출 로직 - }; - return ( <>
- +
diff --git a/apps/st/src/components/util/column/management/SewagePipeMaintainMngColumn.ts b/apps/st/src/components/util/column/management/SewagePipeMaintainMngColumn.ts deleted file mode 100644 index f31164dd7..000000000 --- a/apps/st/src/components/util/column/management/SewagePipeMaintainMngColumn.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 하수도 통계 관리 > 3.하수관로 유지 관리 - * 2개 Tab : 컬럼 통합 관리 - */ - -export const SewagePipeMaintainMngColumnInfoList = [ - -]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/management/sewageReservoirPump/RainfallPumpStationColumn.ts b/apps/st/src/components/util/column/management/sewageReservoirPump/RainfallPumpStationColumn.ts new file mode 100644 index 000000000..60d0bbcf6 --- /dev/null +++ b/apps/st/src/components/util/column/management/sewageReservoirPump/RainfallPumpStationColumn.ts @@ -0,0 +1,211 @@ +import { footerInt, footerDecimal1 } from "@/components/util/grid/footerSummary"; + + // 하수도 통계 관리 > 04.하수저류시설 및 빗물펌프장 > tab 2: 빗물펌프장 +export const RainfallPumpStationColumn = { + columns: [ + // Hidden Columns : 시스템 관리를 위한 필수 키값 + { name: 'sidoCd', fieldName: '시도코드', header: { text: '시도코드' }, hidden: true }, + { name: 'adstDstrCd', fieldName: '행정구역코드', header: { text: '행정구역코드' }, hidden: true }, + { name: 'adstCd', fieldName: '행정코드', header: { text: '행정코드' }, hidden: true }, + { name: 'swgeStrgeFctSeq', fieldName: '시설SEQ', header: { text: '시설SEQ' }, hidden: true }, + + { name: 'yr', fieldName: '년도', header: { text: '년도' }, hidden: true }, + { name: 'odr', fieldName: '차수', header: { text: '차수' }, hidden: true }, + { name: 'bsnmCd', fieldName: '사업자코드', header: { text: '사업자코드' }, hidden: true }, + + // Visible Columns + // 행정구역 + { name: 'sido', fieldName: '시도', header: { text: '시도' }, editable: false }, + { name: 'gugun', fieldName: '시군구', header: { text: '시군구' }, footer: { text: '합계' }, editable: false }, + + // 시설명 + { name: 'swgeStrgeNm', fieldName: '시설명', header: { text: '시설명' } }, + + // 위치 + { name: 'addr', fieldName: '위치', header: { text: '위치' } }, + + // 시설물종류 + { name: 'facRes', fieldName: '시설물종류', header: { text: '시설물종류' } }, + + // 가동개시 년월일 yyyy-mm-dd + { name: 'rnDt', fieldName: '가동개시 년월일 yyyy-mm-dd', header: { text: '가동개시 년월일 yyyy-mm-dd' } }, + + // 계획설계빈도 + { name: 'plDsgnFrqnc', fieldName: '계획설계빈도', header: { text: '계획설계빈도' } }, + + // 집수구역면적(㎢) + { name: 'dgrAr', fieldName: '집수구역면적(㎢)', header: { text: '집수구역면적(㎢)' }, footer: footerDecimal1 }, + + // 유수지 + { name: 'revFnnc', fieldName: '유수지유무(유,무)', header: { text: '유수지유무(유,무)' } }, + { name: 'revCpcty', fieldName: '저류랑(m³)', header: { text: '저류랑(m³)' }, footer: footerDecimal1 }, + + // 흡수정 + { name: 'absCpcty', fieldName: '저류랑(m³)', header: { text: '저류랑(m³)' }, footer: footerDecimal1 }, + + // 펌프시설 - 총양수량(m³/min) + { name: 'wpCpcty', fieldName: '총양수량(m³/min)', header: { text: '총양수량(m³/min)' }, footer: footerDecimal1 }, + + // 펌프시설1 + { name: 'pumpCalbr', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pumpHpCo', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pumpCo', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pumpPreparCo', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 펌프시설2 + { name: 'pumpCalbr2', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pumpHpCo2', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pumpCo2', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pumpPreparCo2', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 펌프시설3 + { name: 'pumpCalbr3', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pumpHpCo3', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pumpCo3', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pumpPreparCo3', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 부대시설 + { name: 'dorZeqpFnnc', fieldName: '전처리시설유무(유/무)', header: { text: '전처리시설유무(유/무)' } }, + { name: 'selfEtrqFnnc', fieldName: '탈취설비유무(유/무)', header: { text: '탈취설비유무(유/무)' } }, + { name: 'freFnnc', fieldName: '자가발전유무(유/무)', header: { text: '자가발전유무(유/무)' } }, + + // 방류수역 + { name: 'disWat', fieldName: '방류수역', header: { text: '방류수역' } }, + + // 최종처분량(ton/년) + { name: 'sdmtTreCpcty', fieldName: '침사', header: { text: '침사' }, footer: footerInt }, + { name: 'iprtTreCpcty', fieldName: '협잡물', header: { text: '협잡물' }, footer: footerInt }, + + // 최종처분방법 + { name: 'sdmtTreMth', fieldName: '침사', header: { text: '침사' } }, + { name: 'iprtTreMth', fieldName: '협잡물', header: { text: '협잡물' } }, + + // 운영실적 + { name: 'yrstpRnDyn', fieldName: '기동일수(일/년)', header: { text: '기동일수(일/년)' } }, + { name: 'dsplcmntAmnt', fieldName: '총배수량(m³/년)', header: { text: '총배수량(m³/년)' }, footer: footerInt }, + + // 비고 + { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, + { name: 'chckerOpinion', fieldName: '검토자의견', header: { text: '검토자의견' } }, + { name: 'wrterOpinion', fieldName: '사용자의견', header: { text: '사용자의견' } }, + ], + + columnLayout: [ + { + name: 'adminArea', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'gugun'], + }, + 'swgeStrgeNm', + 'addr', + 'facRes', + 'rnDt', + 'plDsgnFrqnc', + 'dgrAr', + { + name: 'reservoir', + hideChildHeaders: false, + header: { text: '유수지' }, + items: [ + 'revFnnc', + 'revCpcty', + ], + }, + { + name: 'absorptionWell', + hideChildHeaders: false, + header: { text: '흡수정' }, + items: [ + 'absCpcty', + ], + }, + { + name: 'pumpSystem', + hideChildHeaders: false, + header: { text: '펌프시설' }, + items: [ + 'wpCpcty', + { + name: 'pumpSystem1', + hideChildHeaders: false, + header: { text: '펌프시설1' }, + items: [ + 'pumpCalbr', + 'pumpHpCo', + 'pumpCo', + 'pumpPreparCo', + ], + }, + { + name: 'pumpSystem2', + hideChildHeaders: false, + header: { text: '펌프시설2' }, + items: [ + 'pumpCalbr2', + 'pumpHpCo2', + 'pumpCo2', + 'pumpPreparCo2', + ], + }, + { + name: 'pumpSystem3', + hideChildHeaders: false, + header: { text: '펌프시설3' }, + items: [ + 'pumpCalbr3', + 'pumpHpCo3', + 'pumpCo3', + 'pumpPreparCo3', + ], + }, + ], + }, + { + name: 'auxiliaryFacilities', + hideChildHeaders: false, + header: { text: '부대시설' }, + items: [ + 'dorZeqpFnnc', + 'selfEtrqFnnc', + 'freFnnc', + ], + }, + 'disWat', + { + name: 'finalDisposalAmount', + hideChildHeaders: false, + header: { text: '최종처분량(ton/년)' }, + items: [ + 'sdmtTreCpcty', + 'iprtTreCpcty', + ], + }, + { + name: 'finalDisposalMethod', + hideChildHeaders: false, + header: { text: '최종처분방법' }, + items: [ + 'sdmtTreMth', + 'iprtTreMth', + ], + }, + { + name: 'operationResults', + hideChildHeaders: false, + header: { text: '운영실적' }, + items: [ + 'yrstpRnDyn', + 'dsplcmntAmnt', + ], + }, + 'rmk', + 'chckerOpinion', + 'wrterOpinion', + ], + + rowStartNum: 3, + fixedColumns: 2, + tabKey: 'rainfallPumpStation', + tabLabel: '빗물펌프장', +}; \ No newline at end of file diff --git a/apps/st/src/components/util/column/management/sewageReservoirPump/SewageReservoirColumn.ts b/apps/st/src/components/util/column/management/sewageReservoirPump/SewageReservoirColumn.ts new file mode 100644 index 000000000..d76326185 --- /dev/null +++ b/apps/st/src/components/util/column/management/sewageReservoirPump/SewageReservoirColumn.ts @@ -0,0 +1,203 @@ +import { footerInt, footerDecimal1 } from "@/components/util/grid/footerSummary"; + + // 하수도 통계 관리 > 04.하수저류시설 및 빗물펌프장 > tab 1: 하수저류시설 +export const SewageReservoirColumn = { + columns: [ + // Hidden Columns : 시스템 관리를 위한 필수 키값 + { name: 'sidoCd', fieldName: '시도코드', header: { text: '시도코드' }, hidden: true }, + { name: 'adstDstrCd', fieldName: '행정구역코드', header: { text: '행정구역코드' }, hidden: true }, + { name: 'adstCd', fieldName: '행정코드', header: { text: '행정코드' }, hidden: true }, + { name: 'swgeStrgeFctSeq', fieldName: '시설SEQ', header: { text: '시설SEQ' }, hidden: true }, + // 필요 시 yr, odr 등 추가 가능 + + // Visible Columns + // 행정구역 + { name: 'sido', fieldName: '시도', header: { text: '시도' }, editable: false }, + { name: 'gugun', fieldName: '시군구', header: { text: '시군구' }, editable: false }, + + // 기본 정보 + { name: 'swgeStrgeNm', fieldName: '시설명', header: { text: '시설명' }, footer: { text: '합계' } }, + { name: 'addr', fieldName: '위치', header: { text: '위치' } }, + { name: 'rnDt', fieldName: '가동개시 년월일 yyyy-mm-dd', header: { text: '가동개시 년월일 yyyy-mm-dd' } }, + { name: 'designFrequency', fieldName: '계획설계빈도', header: { text: '계획설계빈도' } }, + + // 설치목적 + { name: 'floodingPrevention', fieldName: '침수예방', header: { text: '침수예방' } }, + { name: 'waterQualityReduction', fieldName: '수질오염저감', header: { text: '수질오염저감' } }, + { name: 'sewerageReuseUse', fieldName: '하수재이용용도', header: { text: '하수재이용용도' } }, + + // 시설 상세 + { name: 'facilityStructure', fieldName: '시설구조(일반지하식,지하터널식,기타)', header: { text: '시설구조(일반지하식,지하터널식,기타)' } }, + { name: 'catchmentAreaSize', fieldName: '집수구역면적(㎢)', header: { text: '집수구역면적(㎢)' }, footer: footerDecimal1 }, + { name: 'facilityCapacity', fieldName: '시설용량(m³)', header: { text: '시설용량(m³)' }, footer: footerDecimal1 }, + + // 펌프시설 - 총괄 + { name: 'totalPumpingCapacity', fieldName: '총양수량(m³/min)', header: { text: '총양수량(m³/min)' }, editable: false, footer: footerDecimal1 }, + + // 펌프시설 1 + { name: 'pump1Diameter', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pump1PumpingCapacity', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pump1Count', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pump1StandbyCount', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 펌프시설 2 + { name: 'pump2Diameter', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pump2PumpingCapacity', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pump2Count', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pump2StandbyCount', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 펌프시설 3 + { name: 'pump3Diameter', fieldName: '구경(mm)', header: { text: '구경(mm)' } }, + { name: 'pump3PumpingCapacity', fieldName: '대당 양수량(m³/min·대)', header: { text: '대당 양수량(m³/min·대)' }, footer: footerDecimal1 }, + { name: 'pump3Count', fieldName: '펌프대수', header: { text: '펌프대수' }, footer: footerInt }, + { name: 'pump3StandbyCount', fieldName: '예비펌프대수', header: { text: '예비펌프대수' }, footer: footerInt }, + + // 부대시설 + { name: 'preprocessingFacility', fieldName: '전처리시설유무(유/무)', header: { text: '전처리시설유무(유/무)' } }, + { name: 'odorRemovalEquipment', fieldName: '탈취설비유무(유/무)', header: { text: '탈취설비유무(유/무)' } }, + { name: 'selfGenerationEquipment', fieldName: '자가발전유무(유/무)', header: { text: '자가발전유무(유/무)' } }, + + // 방식 및 방류수역 + { name: 'drainageMethod', fieldName: '배수방식(자연배수,강제배수)', header: { text: '배수방식(자연배수,강제배수)' } }, + { name: 'storageMethod', fieldName: '저류방식(직렬,병렬)', header: { text: '저류방식(직렬,병렬)' } }, + { name: 'storageWaterTreatmentMethod', fieldName: '저류수처리방법(자체처리,연계처리)', header: { text: '저류수처리방법(자체처리,연계처리)' } }, + { name: 'dischargeDestination', fieldName: '방류수역(또는 연계처리장명)', header: { text: '방류수역(또는 연계처리장명)' } }, + + // 최종처분량 + { name: 'sedimentDisposalAmount', fieldName: '침사', header: { text: '침사' }, footer: footerInt }, + { name: 'debrisDisposalAmount', fieldName: '협잡물', header: { text: '협잡물' }, footer: footerInt }, + + // 최종처분방법 + { name: 'sedimentDisposalMethod', fieldName: '침사', header: { text: '침사' } }, + { name: 'debrisDisposalMethod', fieldName: '협잡물', header: { text: '협잡물' } }, + + // 운영실적 + { name: 'operationDaysPerYear', fieldName: '기동일수(일/년)', header: { text: '기동일수(일/년)' } }, + { name: 'totalDischargePerYear', fieldName: '총배수량(m³/년)', header: { text: '총배수량(m³/년)' }, footer: footerInt }, + + // 비고 + { name: 'remarks', fieldName: '비고', header: { text: '비고' } }, + ], + + columnLayout: [ + { + name: 'adminArea', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'gugun'], + }, + 'swgeStrgeNm', + 'addr', + 'rnDt', + 'designFrequency', + + { + name: 'installationPurpose', + hideChildHeaders: false, + header: { text: '설치목적(O,X로 표기, 중복체크가능)' }, + items: [ + 'floodingPrevention', + 'waterQualityReduction', + 'sewerageReuseUse', + ], + }, + 'facilityStructure', + 'catchmentAreaSize', + 'facilityCapacity', + + { + name: 'pumpSystem', + hideChildHeaders: false, + header: { text: '펌프시설' }, + items: [ + 'totalPumpingCapacity', + { + name: 'pumpSystem1', + hideChildHeaders: false, + header: { text: '펌프시설1' }, + items: [ + 'pump1Diameter', + 'pump1PumpingCapacity', + 'pump1Count', + 'pump1StandbyCount', + ], + }, + + { + name: 'pumpSystem2', + hideChildHeaders: false, + header: { text: '펌프시설2' }, + items: [ + 'pump2Diameter', + 'pump2PumpingCapacity', + 'pump2Count', + 'pump2StandbyCount', + ], + }, + + { + name: 'pumpSystem3', + hideChildHeaders: false, + header: { text: '펌프시설3' }, + items: [ + 'pump3Diameter', + 'pump3PumpingCapacity', + 'pump3Count', + 'pump3StandbyCount', + ], + }, + ], + }, + + { + name: 'auxiliaryFacilities', + hideChildHeaders: false, + header: { text: '부대시설' }, + items: [ + 'preprocessingFacility', + 'odorRemovalEquipment', + 'selfGenerationEquipment', + ], + }, + 'drainageMethod', + 'storageMethod', + 'storageWaterTreatmentMethod', + 'dischargeDestination', + + { + name: 'finalDisposalAmount', + hideChildHeaders: false, + header: { text: '최종처분량(ton/년)' }, + items: [ + 'sedimentDisposalAmount', + 'debrisDisposalAmount', + ], + }, + + { + name: 'finalDisposalMethod', + hideChildHeaders: false, + header: { text: '최종처분방법' }, + items: [ + 'sedimentDisposalMethod', + 'debrisDisposalMethod', + ], + }, + + { + name: 'operationResults', + hideChildHeaders: false, + header: { text: '운영실적' }, + items: [ + 'operationDaysPerYear', + 'totalDischargePerYear', + ], + }, + 'remarks', + ], + + rowStartNum: 3, + fixedColumns: 2, + tabKey: 'sewageReservoir', + tabLabel: '하수저류시설', +}; \ No newline at end of file