diff --git a/apps/st/src/components/statistics/review/SewageReservoirPumpRvw.tsx b/apps/st/src/components/statistics/review/SewageReservoirPumpRvw.tsx
index f5ce87d59..3f3d4a3a5 100644
--- a/apps/st/src/components/statistics/review/SewageReservoirPumpRvw.tsx
+++ b/apps/st/src/components/statistics/review/SewageReservoirPumpRvw.tsx
@@ -1,11 +1,49 @@
import SearchForm from "@/components/module/SearchForm";
+import TabDataGrid from "@/components/module/TabDataGrid";
+import SaveButton from "@/components/button/SaveButton";
+import ApproveButton from "@/components/button/ApproveButton";
+import ReviewOpinionButton from "@/components/button/ReviewOpinionButton";
+import ReturnButton from "@/components/button/ReturnButton";
+
+import { SewageReservoirPumpInfoListRvw } from "@/components/util/column/SewageReservoirPumpColumnRvw";
+
const SewageReservoirPumpRvw = () => {
+
+ const approveFunc = () => {
+ console.log('approveFunc');
+ // 승인 로직
+ };
+
+ const saveFunc = () => {
+ console.log('submit');
+ // 저장 로직
+ };
+
+ const reviewOpinionFunc = () => {
+ console.log('reviewOpinionFunc');
+ // 검토의견 작성
+ };
+
+ const returnFunc = () => {
+ console.log('returnFunc');
+ // 반려
+ };
+
+
return (
- <>
-
+ <>
+
+
+
+
>
);
-}
+};
-export default SewageReservoirPumpRvw;
\ No newline at end of file
+export default SewageReservoirPumpRvw;
diff --git a/apps/st/src/components/util/column/SewageReservoirPumpColumnRvw.ts b/apps/st/src/components/util/column/SewageReservoirPumpColumnRvw.ts
new file mode 100644
index 000000000..d02ea10c7
--- /dev/null
+++ b/apps/st/src/components/util/column/SewageReservoirPumpColumnRvw.ts
@@ -0,0 +1,215 @@
+
+export const SewageReservoirPumpInfoListRvw = [{
+ tabKey: 'a',
+ tabLabel: '하수저류시설',
+ rowStartNum: 3, // 3단 헤더 구조 (순번 rowspan="3")
+ fixedColumns: 2, // 순번, 시도, 시군구, 시설명까지 고정
+ columns: [
+ /* 1. 기본 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'SWGE_STRGE_NM', fieldName: 'SWGE_STRGE_NM', header: { text: '시설명' } },
+ { name: 'ADDR', fieldName: 'ADDR', header: { text: '위치' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 시설 제원 */
+ { name: 'RN_DT', fieldName: 'RN_DT', header: { text: '가동개시\n년월일' } },
+ { name: 'PL_DSGN_FRQNC', fieldName: 'PL_DSGN_FRQNC', header: { text: '계획설계빈도' } },
+ { name: 'INS_PER1', fieldName: 'INS_PER1', header: { text: '침수예방' } },
+ { name: 'INS_PER2', fieldName: 'INS_PER2', header: { text: '수질오염저감' } },
+ { name: 'INS_PER3', fieldName: 'INS_PER3', header: { text: '하수\n재이용\n용도' } },
+ { name: 'FAC_RES', fieldName: 'FAC_RES', header: { text: '시설구조(일반지하식,지하터널식,기타)' } },
+ { name: 'DGR_AR', fieldName: 'DGR_AR', header: { text: '집수구역면적(㎢)' } },
+ { name: 'SWGE_SGBS_CPCTY', fieldName: 'SWGE_SGBS_CPCTY', header: { text: '시설용량(㎥)' } },
+
+ /* 3. 펌프시설 (공통/1/2/3) */
+ { name: 'TOT_CPCTY', fieldName: 'TOT_CPCTY', header: { text: '총양수량\n(㎥/min)' } },
+ // 펌프1
+ { name: 'PUMP_CALBR', fieldName: 'PUMP_CALBR', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY', fieldName: 'WP_CPCTY', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO', fieldName: 'PUMP_CO', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO', fieldName: 'PUMP_PREPAR_CO', header: { text: '예비펌프대수' } },
+ // 펌프2
+ { name: 'PUMP_CALBR2', fieldName: 'PUMP_CALBR2', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY2', fieldName: 'WP_CPCTY2', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO2', fieldName: 'PUMP_CO2', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO2', fieldName: 'PUMP_PREPAR_CO2', header: { text: '예비펌프대수' } },
+ // 펌프3
+ { name: 'PUMP_CALBR3', fieldName: 'PUMP_CALBR3', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY3', fieldName: 'WP_CPCTY3', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO3', fieldName: 'PUMP_CO3', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO3', fieldName: 'PUMP_PREPAR_CO3', header: { text: '예비펌프대수' } },
+
+ /* 4. 부대시설 및 배수/저류 방식 */
+ { name: 'FRE_FNNC', fieldName: 'FRE_FNNC', header: { text: '전처리시설(유/무)' } },
+ { name: 'DORZEQP_FNNC', fieldName: 'DORZEQP_FNNC', header: { text: '탈취설비(유/무)' } },
+ { name: 'SELF_ETRQ_FNNC', fieldName: 'SELF_ETRQ_FNNC', header: { text: '자가발전(유/무)' } },
+ { name: 'DRA_MTH', fieldName: 'DRA_MTH', header: { text: '배수방식(자연배수,강제배수)' } },
+ { name: 'ELEC_MTH', fieldName: 'ELEC_MTH', header: { text: '저류방식(직렬,병렬)' } },
+ { name: 'ELEC_PRO_MAT', fieldName: 'ELEC_PRO_MAT', header: { text: '저류수\n처리방법' } },
+ { name: 'DIS_WAT', fieldName: 'DIS_WAT', header: { text: '방류수역(또는 연계처리장명)' } },
+
+ /* 5. 최종처분량 및 방법 */
+ { name: 'SDMT_TRE_CPCTY', fieldName: 'SDMT_TRE_CPCTY', header: { text: '침사' } },
+ { name: 'IPRT_TRE_CPCTY', fieldName: 'IPRT_TRE_CPCTY', header: { text: '협잡물' } },
+ { name: 'SDMT_TRE_MTH', fieldName: 'SDMT_TRE_MTH', header: { text: '침사' } },
+ { name: 'IPRT_TRE_MTH', fieldName: 'IPRT_TRE_MTH', header: { text: '협잡물' } },
+
+ /* 6. 운영실적 */
+ { name: 'YRSTP_RN_DYN', fieldName: 'YRSTP_RN_DYN', header: { text: '가동일수' } },
+ { name: 'DSPLCMNT_AMNT', fieldName: 'DSPLCMNT_AMNT', header: { text: '총배수량\n(㎥/년)' } },
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'SWGE_STRGE_NM', 'ADDR', 'YR_GBN',
+ 'RN_DT', 'PL_DSGN_FRQNC',
+ {
+ name: 'purposeGroup',
+ header: { text: '설치목적(O,X로 표기, 중복체크 가능)' },
+ items: ['INS_PER1', 'INS_PER2', 'INS_PER3']
+ },
+ 'FAC_RES', 'DGR_AR', 'SWGE_SGBS_CPCTY',
+ {
+ name: 'pumpMainGroup',
+ header: { text: '펌프시설' },
+ items: [
+ 'TOT_CPCTY',
+ { name: 'p1Group', header: { text: '펌프시설1' }, items: ['PUMP_CALBR', 'WP_CPCTY', 'PUMP_CO', 'PUMP_PREPAR_CO'] },
+ { name: 'p2Group', header: { text: '펌프시설2' }, items: ['PUMP_CALBR2', 'WP_CPCTY2', 'PUMP_CO2', 'PUMP_PREPAR_CO2'] },
+ { name: 'p3Group', header: { text: '펌프시설3' }, items: ['PUMP_CALBR3', 'WP_CPCTY3', 'PUMP_CO3', 'PUMP_PREPAR_CO3'] }
+ ]
+ },
+ {
+ name: 'subFacGroup',
+ header: { text: '부대시설' },
+ items: ['FRE_FNNC', 'DORZEQP_FNNC', 'SELF_ETRQ_FNNC']
+ },
+ 'DRA_MTH', 'ELEC_MTH', 'ELEC_PRO_MAT', 'DIS_WAT',
+ {
+ name: 'disposalAmtGroup',
+ header: { text: '최종처분량(ton/년)' },
+ items: ['SDMT_TRE_CPCTY', 'IPRT_TRE_CPCTY']
+ },
+ {
+ name: 'disposalMthGroup',
+ header: { text: '최종처분방법' },
+ items: ['SDMT_TRE_MTH', 'IPRT_TRE_MTH']
+ },
+ {
+ name: 'opGroup',
+ header: { text: '운영실적' },
+ items: ['YRSTP_RN_DYN', 'DSPLCMNT_AMNT']
+ },
+ 'RMK'
+ ]
+ },
+ {
+ tabKey: 'b',
+ tabLabel: '빗물펌프장',
+ rowStartNum: 3, // 3단 헤더 구조 (순번 rowspan="3")
+ fixedColumns: 2, // 순번, 시도, 시군구, 시설명까지 고정
+ columns: [
+ /* 1. 기본 정보 (Band: Left) */
+ { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } },
+ { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } },
+ { name: 'SWGE_STRGE_NM', fieldName: 'SWGE_STRGE_NM', header: { text: '시설명' } },
+ { name: 'ADDR', fieldName: 'ADDR', header: { text: '위치' } },
+ { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } },
+
+ /* 2. 시설 제원 */
+ { name: 'FCT_KND', fieldName: 'FCT_KND', header: { text: '시설물종류' } },
+ { name: 'RN_DT', fieldName: 'RN_DT', header: { text: '가동개시\n년월일' } },
+ { name: 'PL_DSGN_FRQNC', fieldName: 'PL_DSGN_FRQNC', header: { text: '계획설계빈도' } },
+ { name: 'DGR_AR', fieldName: 'DGR_AR', header: { text: '집수구역면적(㎢)' } },
+
+ /* 3. 유수지 및 흡수정 */
+ { name: 'REV_FNNC', fieldName: 'REV_FNNC', header: { text: '유수지유무\n(유,무)' } },
+ { name: 'REV_CPCTY', fieldName: 'REV_CPCTY', header: { text: '저류량(㎥)' } }, // 유수지 저류량
+ { name: 'ABS_CPCTY', fieldName: 'ABS_CPCTY', header: { text: '저류량(㎥)' } }, // 흡수정 저류량
+ { name: 'SWGE_SGBS_CPCTY', fieldName: 'SWGE_SGBS_CPCTY', header: { text: '시설용량(㎥)' } },
+
+ /* 4. 펌프시설 (공통/1/2/3) */
+ { name: 'TOT_CPCTY', fieldName: 'TOT_CPCTY', header: { text: '총양수량\n(㎥/min)' } },
+ // 펌프1
+ { name: 'PUMP_CALBR', fieldName: 'PUMP_CALBR', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY', fieldName: 'WP_CPCTY', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO', fieldName: 'PUMP_CO', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO', fieldName: 'PUMP_PREPAR_CO', header: { text: '예비펌프대수' } },
+ // 펌프2
+ { name: 'PUMP_CALBR2', fieldName: 'PUMP_CALBR2', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY2', fieldName: 'WP_CPCTY2', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO2', fieldName: 'PUMP_CO2', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO2', fieldName: 'PUMP_PREPAR_CO2', header: { text: '예비펌프대수' } },
+ // 펌프3
+ { name: 'PUMP_CALBR3', fieldName: 'PUMP_CALBR3', header: { text: '구경(mm)' } },
+ { name: 'WP_CPCTY3', fieldName: 'WP_CPCTY3', header: { text: '대당 양수량' } },
+ { name: 'PUMP_CO3', fieldName: 'PUMP_CO3', header: { text: '펌프대수' } },
+ { name: 'PUMP_PREPAR_CO3', fieldName: 'PUMP_PREPAR_CO3', header: { text: '예비펌프대수' } },
+
+ /* 5. 부대시설 및 기타 */
+ { name: 'FRE_FNNC', fieldName: 'FRE_FNNC', header: { text: '전처리시설' } },
+ { name: 'DORZEQP_FNNC', fieldName: 'DORZEQP_FNNC', header: { text: '탈취설비' } },
+ { name: 'SELF_ETRQ_FNNC', fieldName: 'SELF_ETRQ_FNNC', header: { text: '자가발전' } },
+ { name: 'DIS_WAT', fieldName: 'DIS_WAT', header: { text: '방류수역' } },
+
+ /* 6. 최종처분량 및 방법 */
+ { name: 'SDMT_TRE_CPCTY', fieldName: 'SDMT_TRE_CPCTY', header: { text: '침사(량)' } },
+ { name: 'IPRT_TRE_CPCTY', fieldName: 'IPRT_TRE_CPCTY', header: { text: '협잡물(량)' } },
+ { name: 'SDMT_TRE_MTH', fieldName: 'SDMT_TRE_MTH', header: { text: '침사(방법)' } },
+ { name: 'IPRT_TRE_MTH', fieldName: 'IPRT_TRE_MTH', header: { text: '협잡물(방법)' } },
+
+ /* 7. 운영실적 */
+ { name: 'YRSTP_RN_DYN', fieldName: 'YRSTP_RN_DYN', header: { text: '가동일수' } },
+ { name: 'DSPLCMNT_AMNT', fieldName: 'DSPLCMNT_AMNT', header: { text: '총배수량\n(㎥/년)' } },
+ { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } },
+ ],
+ columnLayout: [
+ { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] },
+ 'SWGE_STRGE_NM', 'ADDR', 'YR_GBN', 'FCT_KND', 'RN_DT', 'PL_DSGN_FRQNC', 'DGR_AR',
+ {
+ name: 'revGroup',
+ header: { text: '유수지' },
+ items: ['REV_FNNC', 'REV_CPCTY']
+ },
+ {
+ name: 'absGroup',
+ header: { text: '흡수정' },
+ items: ['ABS_CPCTY']
+ },
+ 'SWGE_SGBS_CPCTY',
+ {
+ name: 'pumpMainGroup',
+ header: { text: '펌프시설' },
+ items: [
+ 'TOT_CPCTY',
+ { name: 'p1Group', header: { text: '펌프시설1' }, items: ['PUMP_CALBR', 'WP_CPCTY', 'PUMP_CO', 'PUMP_PREPAR_CO'] },
+ { name: 'p2Group', header: { text: '펌프시설2' }, items: ['PUMP_CALBR2', 'WP_CPCTY2', 'PUMP_CO2', 'PUMP_PREPAR_CO2'] },
+ { name: 'p3Group', header: { text: '펌프시설3' }, items: ['PUMP_CALBR3', 'WP_CPCTY3', 'PUMP_CO3', 'PUMP_PREPAR_CO3'] }
+ ]
+ },
+ {
+ name: 'subFacGroup',
+ header: { text: '부대시설' },
+ items: ['FRE_FNNC', 'DORZEQP_FNNC', 'SELF_ETRQ_FNNC']
+ },
+ 'DIS_WAT',
+ {
+ name: 'disposalAmtGroup',
+ header: { text: '최종처분량(ton/년)' },
+ items: ['SDMT_TRE_CPCTY', 'IPRT_TRE_CPCTY']
+ },
+ {
+ name: 'disposalMthGroup',
+ header: { text: '최종처분방법' },
+ items: ['SDMT_TRE_MTH', 'IPRT_TRE_MTH']
+ },
+ {
+ name: 'opGroup',
+ header: { text: '운영실적' },
+ items: ['YRSTP_RN_DYN', 'DSPLCMNT_AMNT']
+ },
+ 'RMK'
+ ]
+}
+];
\ No newline at end of file