From 28f841adc8cf623d9b1346f5749fe63efc511997 Mon Sep 17 00:00:00 2001 From: rsone001 Date: Fri, 2 Jan 2026 13:10:16 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=2006.=EA=B3=B5=EA=B3=B5=20=ED=95=98?= =?UTF-8?q?=EC=88=98=EC=B2=98=EB=A6=AC=EC=8B=9C=EC=84=A4=20=EB=8B=A8?= =?UTF-8?q?=EC=9D=BC=20=ED=83=AD=20column=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../review/PublicSewageFacilityRvw.tsx | 180 +----------------- .../review/PublicSewageFacilityColumnRvw.ts | 143 ++++++++++++++ 2 files changed, 149 insertions(+), 174 deletions(-) create mode 100644 apps/st/src/components/util/column/review/PublicSewageFacilityColumnRvw.ts diff --git a/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx b/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx index 2ffc89764..8c6adbcf7 100644 --- a/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx +++ b/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx @@ -1,183 +1,15 @@ import SearchForm from "@/components/module/SearchForm"; -import DataGrid from "@/components/module/DataGrid"; 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 TabDataGrid from "@/components/module/TabDataGrid"; + +import { PublicSewageFacilityInfoList } from "@/components/util/column/review/PublicSewageFacilityColumnRvw"; + const PublicSewageFacilityRvw = () => { - const rawColumns = [ - { name: 'sido', fieldName: '시도', header: { text: '시도' } }, - { name: 'sgg', fieldName: '구군', header: { text: '구군' } }, - { name: '구분', fieldName: '구분', header: { text: '구분' } }, - { name: '소재지', fieldName: '소재지', header: { text: '소재지' } }, - { name: '시설명(500m3/일이상/미만)', fieldName: '시설명(500m3/일이상/미만)', header: { text: '시설명(500m3/일이상/미만)' } }, - - //시설용량 - { name: '시설용량(500m3/일이상/미만)', fieldName: '시설용량(500m3/일이상/미만)', header: { text: '시설용량(500m3/일이상/미만)' } }, - { name: '(시설용량)물리적', fieldName: '(시설용량)물리적', header: { text: '물리적' } }, - { name: '(시설용량)생물학적', fieldName: '(시설용량)생물학적', header: { text: '생물학적' } }, - { name: '(시설용량)고도', fieldName: '(시설용량)고도', header: { text: '고도' } }, - - //유입하수량 - { name: '유입하수량(500m3/일이상/미만)', fieldName: '유입하수량(500m3/일이상/미만)', header: { text: '유입하수량(500m3/일이상/미만)' } }, - { name: '(유입하수량)물리적', fieldName: '(유입하수량)물리적', header: { text: '물리적' } }, - { name: '(유입하수량)생물학적', fieldName: '(유입하수량)생물학적', header: { text: '생물학적' } }, - { name: '(유입하수량)고도', fieldName: '(유입하수량)고도', header: { text: '고도' } }, - { name: '오수펌프_총양수량(m3/min)', fieldName: '오수펌프_총양수량(m3/min)', header: { text: '총양수량(m3/min)' } }, - { name: '우수펌프_총양수량(m3/min)', fieldName: '우수펌프_총양수량(m3/min)', header: { text: '총양수량(m3/min)' } }, - - //방류량 - { name: '방류량(500m3/일이상/미만)', fieldName: '방류량(500m3/일이상/미만)', header: { text: '방류량(500m3/일이상/미만)' } }, - { name: '(방류량)물리적', fieldName: '(방류량)물리적', header: { text: '물리적' } }, - { name: '(방류량)생물학적', fieldName: '(방류량)생물학적', header: { text: '생물학적' } }, - { name: '(방류량)고도', fieldName: '(방류량)고도', header: { text: '고도' } }, - - { name: '유입BOD', fieldName: '유입BOD', header: { text: '유입BOD' } }, - { name: '방류BOD', fieldName: '방류BOD', header: { text: '방류BOD' } }, - { name: '유입TOC', fieldName: '유입TOC', header: { text: '유입TOC' } }, - { name: '방류TOC', fieldName: '방류TOC', header: { text: '방류TOC' } }, - { name: '유입SS', fieldName: '유입SS', header: { text: '유입SS' } }, - { name: '방류SS', fieldName: '방류SS', header: { text: '방류SS' } }, - { name: '유입T-N', fieldName: '유입T-N', header: { text: '유입T-N' } }, - { name: '방류T-N', fieldName: '방류T-N', header: { text: '방류T-N' } }, - { name: '유입T-P', fieldName: '유입T-P', header: { text: '유입T-P' } }, - { name: '방류T-P', fieldName: '방류T-P', header: { text: '방류T-P' } }, - { name: '유입총대장균군수', fieldName: '유입총대장균군수', header: { text: '유입총대장균군수' } }, - { name: '방대총대장균군수', fieldName: '방대총대장균군수', header: { text: '방대총대장균군수' } }, - { name: '처리효율(%)', fieldName: '처리효율(%)', header: { text: '처리효율(%)' } }, - { name: '처리부하량(kgBOD/D)', fieldName: '처리부하량(kgBOD/D)', header: { text: '처리부하량(kgBOD/D)' } }, - { name: '처리방법', fieldName: '처리방법', header: { text: '처리방법' } }, - - { name: '(연계처리량)분뇨', fieldName: '(연계처리량)분뇨', header: { text: '분뇨' } }, - { name: '(연계처리량)축산', fieldName: '(연계처리량)축산', header: { text: '축산' } }, - { name: '(연계처리량)침출수', fieldName: '(연계처리량)침출수', header: { text: '침출수' } }, - { name: '(연계처리량)기타', fieldName: '(연계처리량)기타', header: { text: '기타' } }, - { name: '전화번호', fieldName: '전화번호', header: { text: '전화번호' } }, - { name: '준공일', fieldName: '준공일', header: { text: '준공일' } }, - { name: '가동개시일', fieldName: '가동개시일', header: { text: '가동개시일' } }, - { name: '사업비(백만원)', fieldName: '사업비(백만원)', header: { text: '사업비(백만원)' } }, - { name: '방류수소독방법', fieldName: '방류수소독방법', header: { text: '방류수소독방법' } }, - { name: '수계', fieldName: '수계', header: { text: '수계' } }, - { name: '지류', fieldName: '지류', header: { text: '지류' } }, - { name: '세부단위구역', fieldName: '세부단위구역', header: { text: '세부단위구역' } }, - { name: '지역구분', fieldName: '지역구분', header: { text: '지역구분' } }, - { name: '명칭', fieldName: '명칭', header: { text: '명칭' } }, - { name: '목표수질(BOD)', fieldName: '목표수질(BOD)', header: { text: '목표수질(BOD)' } }, - { name: '에너지자립율(%)', fieldName: '에너지자립율(%)', header: { text: '에너지자립율(%)' } }, - { name: '에너지자체생산량(TOE)', fieldName: '에너지자체생산량(TOE)', header: { text: '에너지자체생산량(TOE)' } }, - { name: '계(TOE)', fieldName: '계(TOE)', header: { text: '계(TOE)' } }, - { name: '총전력사용량(KWh)', fieldName: '총전력사용량(KWh)', header: { text: '총전력사용량(KWh)' } }, - { name: '자체에너지사용량(TOE)', fieldName: '자체에너지사용량(TOE)', header: { text: '자체에너지사용량(TOE)' } }, - { name: '하수처리량당CO2배출량(KgCO2/m3)', fieldName: '하수처리량당CO2배출량(KgCO2/m3)', header: { text: '하수처리량당CO2배출량(KgCO2/m3)' } }, - { name: '운영주체(자체/공기업/민간대행)', fieldName: '운영주체(자체/공기업/민간대행)', header: { text: '운영주체(자체/공기업/민간대행)' } }, - { name: '위탁업체명', fieldName: '위탁업체명', header: { text: '위탁업체명' } }, - { name: '위탁비용(백만원/년)', fieldName: '위탁비용(백만원/년)', header: { text: '위탁비용(백만원/년)' } }, - { name: '위탁계약기간(yyyy-mm-dd~)', fieldName: '위탁계약기간(yyyy-mm-dd~)', header: { text: '위탁계약기간(yyyy-mm-dd~)' } }, - { name: '중심처리시설', fieldName: '중심처리시설', header: { text: '중심처리시설' } }, - { name: '직원총수(명)', fieldName: '직원총수(명)', header: { text: '직원총수(명)' } }, - { name: '안전사고건수(건,인/년)', fieldName: '안전사고건수(건,인/년)', header: { text: '안전사고건수(건,인/년)' } }, - { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, - ]; - - const columns = rawColumns.map(col => ({ - ...col, - editable: false - })); - - const columnLayout = [ - { - name: 'groupA', - hideChildHeaders: false, - header: { text: '행정구역' }, - items: ['sido', 'sgg'], - }, - '시설명(500m3/일이상/미만)', - '구분', - '소재지', - '시설용량(500m3/일이상/미만)', - { - name: 'groupB', - hideChildHeaders: false, - header: { text: '(m3/일)' }, - items: ['(시설용량)물리적', '(시설용량)생물학적', '(시설용량)고도'], - }, - '유입하수량(500m3/일이상/미만)', - { - name: 'groupC', - hideChildHeaders: false, - header: { text: '(m3/일)' }, - items: ['(유입하수량)물리적', '(유입하수량)생물학적', '(유입하수량)고도'], - }, - '방류량(500m3/일이상/미만)', - { - name: 'groupD', - hideChildHeaders: false, - header: { text: '(m3/일)' }, - items: ['(방류량)물리적', '(방류량)생물학적', '(방류량)고도'], - }, - - '유입BOD', - '방류BOD', - '유입TOC', - '방류TOC', - '유입SS', - '방류SS', - '유입T-N', - '방류T-N', - '유입T-P', - '방류T-P', - '유입총대장균군수', - '방대총대장균군수', - '처리효율(%)', - '처리부하량(kgBOD/D)', - '처리방법', - { - name: 'groupE', - hideChildHeaders: false, - header: { text: '연계처리량(m3/일)(500m3/일 이상/ 미만)' }, - items: ['(연계처리량)분뇨', '(연계처리량)축산', '(연계처리량)침출수', '(연계처리량)기타'], - }, - '전화번호', - '준공일', - '가동개시일', - '사업비(백만원)', - '방류수소독방법', - { - name: 'groupF', - hideChildHeaders: false, - header: { text: '방류수역' }, - items: ['수계', '지류', '세부단위구역', '지역구분', - { - name: 'groupG', - hideChildHeaders: false, - header: { text: '중권역' }, - items: ['명칭', '목표수질(BOD)'], - }, - ], - }, - '에너지자립율(%)', - '에너지자체생산량(TOE)', - { - name: 'groupH', - hideChildHeaders: false, - header: { text: '연간 총 에너지 사용량(TOE)' }, - items: ['계(TOE)', '총전력사용량(KWh)', '자체에너지사용량(TOE)'], - }, - '하수처리량당CO2배출량(KgCO2/m3)', - '운영주체(자체/공기업/민간대행)', - { - name: 'groupI', - hideChildHeaders: false, - header: { text: '위탁현황' }, - items: ['위탁업체명', '위탁비용(백만원/년)', '위탁계약기간(yyyy-mm-dd~)'], - }, - '중심처리시설', - '직원총수(명)', - '안전사고건수(건,인/년)', - 'rmk' - ]; - + const approveFunc = () => { console.log('approveFunc'); }; @@ -203,7 +35,7 @@ const PublicSewageFacilityRvw = () => { - + ); }; diff --git a/apps/st/src/components/util/column/review/PublicSewageFacilityColumnRvw.ts b/apps/st/src/components/util/column/review/PublicSewageFacilityColumnRvw.ts new file mode 100644 index 000000000..43b0a492c --- /dev/null +++ b/apps/st/src/components/util/column/review/PublicSewageFacilityColumnRvw.ts @@ -0,0 +1,143 @@ +export const PublicSewageFacilityInfoList = [ + { + tabKey: 'a', + tabLabel: '공공하수처리시설 현황', + rowStartNum: 3, + fixedColumns: 3, + columns: [ + /* 1. 기본 정보 */ + { name: 'sido', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'sgg', fieldName: 'GUGUN', header: { text: '구군' } }, + { name: 'GBN', fieldName: 'GBN', header: { text: '구분' } }, + { name: 'ADDR', fieldName: 'ADDR', header: { text: '소재지' } }, + { name: 'FCT_NM_GROUP', fieldName: 'FCT_NM_GROUP', header: { text: '시설명(500m3/일이상/미만)' } }, + + /* 2. 시설용량 (m3/일) */ + { name: 'FCT_CPC_GROUP', fieldName: 'FCT_CPC_GROUP', header: { text: '시설용량(500m3/일이상/미만)' } }, + { name: 'FCT_CPC_PHY', fieldName: 'FCT_CPC_PHY', header: { text: '물리적' } }, + { name: 'FCT_CPC_BIO', fieldName: 'FCT_CPC_BIO', header: { text: '생물학적' } }, + { name: 'FCT_CPC_ADV', fieldName: 'FCT_CPC_ADV', header: { text: '고도' } }, + + /* 3. 유입하수량 (m3/일) */ + { name: 'IN_QTY_GROUP', fieldName: 'IN_QTY_GROUP', header: { text: '유입하수량(500m3/일이상/미만)' } }, + { name: 'IN_QTY_PHY', fieldName: 'IN_QTY_PHY', header: { text: '물리적' } }, + { name: 'IN_QTY_BIO', fieldName: 'IN_QTY_BIO', header: { text: '생물학적' } }, + { name: 'IN_QTY_ADV', fieldName: 'IN_QTY_ADV', header: { text: '고도' } }, + + /* 4. 방류량 (m3/일) */ + { name: 'OUT_QTY_GROUP', fieldName: 'OUT_QTY_GROUP', header: { text: '방류량(500m3/일이상/미만)' } }, + { name: 'OUT_QTY_PHY', fieldName: 'OUT_QTY_PHY', header: { text: '물리적' } }, + { name: 'OUT_QTY_BIO', fieldName: 'OUT_QTY_BIO', header: { text: '생물학적' } }, + { name: 'OUT_QTY_ADV', fieldName: 'OUT_QTY_ADV', header: { text: '고도' } }, + + /* 5. 수질 및 처리효율 */ + { name: 'IN_BOD', fieldName: 'IN_BOD', header: { text: '유입BOD' } }, + { name: 'OUT_BOD', fieldName: 'OUT_BOD', header: { text: '방류BOD' } }, + { name: 'IN_TOC', fieldName: 'IN_TOC', header: { text: '유입TOC' } }, + { name: 'OUT_TOC', fieldName: 'OUT_TOC', header: { text: '방류TOC' } }, + { name: 'IN_SS', fieldName: 'IN_SS', header: { text: '유입SS' } }, + { name: 'OUT_SS', fieldName: 'OUT_SS', header: { text: '방류SS' } }, + { name: 'IN_TN', fieldName: 'IN_TN', header: { text: '유입T-N' } }, + { name: 'OUT_TN', fieldName: 'OUT_TN', header: { text: '방류T-N' } }, + { name: 'IN_TP', fieldName: 'IN_TP', header: { text: '유입T-P' } }, + { name: 'OUT_TP', fieldName: 'OUT_TP', header: { text: '방류T-P' } }, + { name: 'IN_COLI', fieldName: 'IN_COLI', header: { text: '유입총대장균군수' } }, + { name: 'OUT_COLI', fieldName: 'OUT_COLI', header: { text: '방대총대장균군수' } }, + { name: 'TRT_EFF', fieldName: 'TRT_EFF', header: { text: '처리효율(%)' } }, + { name: 'TRT_LOD', fieldName: 'TRT_LOD', header: { text: '처리부하량(kgBOD/D)' } }, + { name: 'TRT_MTHD', fieldName: 'TRT_MTHD', header: { text: '처리방법' } }, + + /* 6. 연계처리량 */ + { name: 'LNK_EXC', fieldName: 'LNK_EXC', header: { text: '분뇨' } }, + { name: 'LNK_LVS', fieldName: 'LNK_LVS', header: { text: '축산' } }, + { name: 'LNK_LCH', fieldName: 'LNK_LCH', header: { text: '침출수' } }, + { name: 'LNK_ETC', fieldName: 'LNK_ETC', header: { text: '기타' } }, + + /* 7. 상세 시설 정보 */ + { name: 'TEL_NO', fieldName: 'TEL_NO', header: { text: '전화번호' } }, + { name: 'COMP_DT', fieldName: 'COMP_DT', header: { text: '준공일' } }, + { name: 'RN_DT', fieldName: 'RN_DT', header: { text: '가동개시일' } }, + { name: 'BSNS_CT', fieldName: 'BSNS_CT', header: { text: '사업비(백만원)' } }, + { name: 'DSCH_DSF_MTHD', fieldName: 'DSCH_DSF_MTHD', header: { text: '방류수소독방법' } }, + + /* 8. 방류수역 */ + { name: 'WTR_SYS', fieldName: 'WTR_SYS', header: { text: '수계' } }, + { name: 'STRM', fieldName: 'STRM', header: { text: '지류' } }, + { name: 'DET_UNIT_ZONE', fieldName: 'DET_UNIT_ZONE', header: { text: '세부단위구역' } }, + { name: 'RGN_GBN', fieldName: 'RGN_GBN', header: { text: '지역구분' } }, + { name: 'MID_ZONE_NM', fieldName: 'MID_ZONE_NM', header: { text: '명칭' } }, + { name: 'MID_ZONE_BOD', fieldName: 'MID_ZONE_BOD', header: { text: '목표수질(BOD)' } }, + + /* 9. 에너지 및 환경 */ + { name: 'ENG_SLF_RT', fieldName: 'ENG_SLF_RT', header: { text: '에너지자립율(%)' } }, + { name: 'ENG_SLF_QTY', fieldName: 'ENG_SLF_QTY', header: { text: '에너지자체생산량(TOE)' } }, + { name: 'ENG_TOT_SUM', fieldName: 'ENG_TOT_SUM', header: { text: '계(TOE)' } }, + { name: 'ENG_TOT_PWR', fieldName: 'ENG_TOT_PWR', header: { text: '총전력사용량(KWh)' } }, + { name: 'ENG_TOT_SLF', fieldName: 'ENG_TOT_SLF', header: { text: '자체에너지사용량(TOE)' } }, + { name: 'CO2_EMISS', fieldName: 'CO2_EMISS', header: { text: '하수처리량당CO2배출량(KgCO2/m3)' } }, + + /* 10. 운영 및 위탁 */ + { name: 'OPR_MBY', fieldName: 'OPR_MBY', header: { text: '운영주체' } }, + { name: 'ENTRPS_NM', fieldName: 'ENTRPS_NM', header: { text: '위탁업체명' } }, + { name: 'ENTRPS_CT', fieldName: 'ENTRPS_CT', header: { text: '위탁비용(백만원/년)' } }, + { name: 'ENTRPS_TERM', fieldName: 'ENTRPS_TERM', header: { text: '위탁계약기간' } }, + { name: 'CTR_TRT_FCT', fieldName: 'CTR_TRT_FCT', header: { text: '중심처리시설' } }, + { name: 'EMP_CNT', fieldName: 'EMP_CNT', header: { text: '직원총수(명)' } }, + { name: 'ACC_CNT', fieldName: 'ACC_CNT', header: { text: '안전사고건수' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'groupA', header: { text: '행정구역' }, items: ['sido', 'sgg'] }, + 'FCT_NM_GROUP', 'GBN', 'ADDR', 'FCT_CPC_GROUP', + { + name: 'groupB', + header: { text: '시설용량(㎥/일)' }, + items: ['FCT_CPC_PHY', 'FCT_CPC_BIO', 'FCT_CPC_ADV'], + }, + 'IN_QTY_GROUP', + { + name: 'groupC', + header: { text: '유입하수량(㎥/일)' }, + items: ['IN_QTY_PHY', 'IN_QTY_BIO', 'IN_QTY_ADV'], + }, + 'OUT_QTY_GROUP', + { + name: 'groupD', + header: { text: '방류량(㎥/일)' }, + items: ['OUT_QTY_PHY', 'OUT_QTY_BIO', 'OUT_QTY_ADV'], + }, + 'IN_BOD', 'OUT_BOD', 'IN_TOC', 'OUT_TOC', 'IN_SS', 'OUT_SS', 'IN_TN', 'OUT_TN', 'IN_TP', 'OUT_TP', 'IN_COLI', 'OUT_COLI', + 'TRT_EFF', 'TRT_LOD', 'TRT_MTHD', + { + name: 'groupE', + header: { text: '연계처리량(㎥/일)' }, + items: ['LNK_EXC', 'LNK_LVS', 'LNK_LCH', 'LNK_ETC'], + }, + 'TEL_NO', 'COMP_DT', 'RN_DT', 'BSNS_CT', 'DSCH_DSF_MTHD', + { + name: 'groupF', + header: { text: '방류수역' }, + items: ['WTR_SYS', 'STRM', 'DET_UNIT_ZONE', 'RGN_GBN', + { + name: 'groupG', + header: { text: '중권역' }, + items: ['MID_ZONE_NM', 'MID_ZONE_BOD'], + }, + ], + }, + 'ENG_SLF_RT', 'ENG_SLF_QTY', + { + name: 'groupH', + header: { text: '연간 총 에너지 사용량(TOE)' }, + items: ['ENG_TOT_SUM', 'ENG_TOT_PWR', 'ENG_TOT_SLF'], + }, + 'CO2_EMISS', 'OPR_MBY', + { + name: 'groupI', + header: { text: '위탁현황' }, + items: ['ENTRPS_NM', 'ENTRPS_CT', 'ENTRPS_TERM'], + }, + 'CTR_TRT_FCT', 'EMP_CNT', 'ACC_CNT', 'RMK' + ] + } +]; \ No newline at end of file