diff --git a/apps/st/src/components/statistics/review/ExcretaTreatmentFacilityRvw.tsx b/apps/st/src/components/statistics/review/ExcretaTreatmentFacilityRvw.tsx new file mode 100644 index 000000000..585bfade7 --- /dev/null +++ b/apps/st/src/components/statistics/review/ExcretaTreatmentFacilityRvw.tsx @@ -0,0 +1,144 @@ +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"; + + +const ExcretaTreatmentFacilityRvw = () => { + const columns = [ + // 행정구역 + { name: 'sido', fieldName: '시도', header: { text: '시도' } }, + { name: 'sgg', 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: '시설용량(m3/일)', fieldName: '시설용량(m3/일)', header: { text: '시설용량(m3/일)' } }, + { name: '처리량(m3/일)', fieldName: '처리량(m3/일)', header: { text: '처리량(m3/일)' } }, + { name: '가동일수(일/년)', fieldName: '가동일수(일/년)', header: { text: '가동일수(일/년)' } }, + + // 처리 + { name: '처리공법', fieldName: '처리공법', header: { text: '처리공법' } }, + { name: '연계처리장명', fieldName: '연계처리장명', header: { text: '연계처리장명' } }, + { name: '연계처리량', fieldName: '연계처리량', header: { text: '연계처리량' } }, + + // 유입수질 + { name: 'BOD', fieldName: 'BOD', header: { text: 'BOD' } }, + { name: 'TOC', fieldName: 'TOC', header: { text: 'TOC' } }, + { name: 'SS', fieldName: 'SS', header: { text: 'SS' } }, + { name: 'T-N', fieldName: 'T-N', header: { text: 'T-N' } }, + { name: 'T-P', fieldName: 'T-P', header: { text: 'T-P' } }, + { name: '대장균군수', fieldName: '대장균군수', header: { text: '대장균군수' } }, + + // 방류수질 + { name: '방류수질BOD', fieldName: '방류수질BOD', header: { text: 'BOD' } }, + { name: '방류수질TOC', fieldName: '방류수질TOC', header: { text: 'TOC' } }, + { name: '방류수질SS', fieldName: '방류수질SS', header: { text: 'SS' } }, + { name: '방류수질T-N', fieldName: '방류수질T-N', header: { text: 'T-N' } }, + { name: '방류수질T-P', fieldName: '방류수질T-P', header: { text: 'T-P' } }, + { 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: 'rmk', fieldName: '비고', header: { text: '비고' } }, + ]; + + + + const columnLayout = [ + { + name: 'groupA', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'sgg'], + }, + '시설명', + '구분', + '소재지', + '전화번호', + '준공일', + '가동개시일', + '사업비(백만원)', + '시설용량(m3/일)', + '처리량(m3/일)', + '가동일수(일/년)', + '처리공법', + '연계처리장명', + '연계처리량', + { + name: 'groupB', + hideChildHeaders: false, + header: { text: '유입수질(mg/L,개/mL)' }, + items: ['BOD','TOC','SS','T-N','T-P','대장균군수'], + }, + + { + name: 'groupC', + hideChildHeaders: false, + header: { text: '방류수질(mg/L,개/mL))' }, + items: ['방류수질BOD','방류수질TOC','방류수질SS','방류수질T-N','방류수질T-P','방류수질대장균군수'], + }, + + { + name: 'groupD', + hideChildHeaders: false, + header: { text: '방류수역' }, + items: ['수계','지류','중권역','소권역'], + }, + '운영주체(자체/공기업,민간위탁)', + '직원총수(명)', + '안전사고건수(건,인/년)', + 'rmk' + ]; + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + return ( + <> + +
+ + + + + +
+ + + ); +}; + +export default ExcretaTreatmentFacilityRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/PrivateSewageFacilityRvw.tsx b/apps/st/src/components/statistics/review/PrivateSewageFacilityRvw.tsx new file mode 100644 index 000000000..cafd214c8 --- /dev/null +++ b/apps/st/src/components/statistics/review/PrivateSewageFacilityRvw.tsx @@ -0,0 +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 { PrivateSewageFacilityInfoListRvw } from "@/components/util/column/PrivateSewageFacilityColumnRvw"; + + +const PrivateSewageFacilityRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + +export default PrivateSewageFacilityRvw; diff --git a/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx b/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx new file mode 100644 index 000000000..4ff51e29c --- /dev/null +++ b/apps/st/src/components/statistics/review/PublicSewageFacilityRvw.tsx @@ -0,0 +1,205 @@ +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"; + +const PublicSewageFacilityRvw = () => { + const columns = [ + { 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: '(시설용량)물리적', 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 columnLayout = [ + { + name: 'groupA', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'sgg'], + }, + '소재지', + '시설용량(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'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + return ( + <> + +
+ + + + + +
+ + + ); +}; + +export default PublicSewageFacilityRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/PumpingStationRvw.tsx b/apps/st/src/components/statistics/review/PumpingStationRvw.tsx index cb6407e25..972e52423 100644 --- a/apps/st/src/components/statistics/review/PumpingStationRvw.tsx +++ b/apps/st/src/components/statistics/review/PumpingStationRvw.tsx @@ -1,12 +1,163 @@ 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"; const PumpingStationRvw = () => { - + const columns = [ + { name: 'sido', fieldName: '시도', header: { text: '시도' } }, + { name: 'sgg', fieldName: '구군', header: { text: '구군' } }, + { name: '펌프장명', fieldName: '펌프장명', header: { text: '펌프장명' } }, + { name: '구분', fieldName: '구분', header: { text: '구분' } }, + { 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: '계획배수면적(km2)', fieldName: '계획배수면적(km2)', header: { text: '계획배수면적(km2)' } }, + { name: '청천시(A)', fieldName: '청천시(A)', header: { text: '청천시(A)' } }, + { name: '우천시(B)', fieldName: '우천시(B)', header: { text: '우천시(B)' } }, + { name: '우수량(B-A)', fieldName: '우수량(B-A)', header: { text: '우수량(B-A)' } }, + { name: '오수펌프_총양수량(m3/min)', fieldName: '오수펌프_총양수량(m3/min)', header: { text: '총양수량(m3/min)' } }, + { name: '우수펌프_총양수량(m3/min)', fieldName: '우수펌프_총양수량(m3/min)', header: { text: '총양수량(m3/min)' } }, + //오수펌프(1) + { name: '오수펌프(1)구경(mm)', fieldName: '오수펌프(1)구경(mm)', header: { text: '구경(mm)' } }, + { name: '오수펌프(1)양수량(m3/min)', fieldName: '오수펌프(1)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '오수펌프(1)펌프대수', fieldName: '오수펌프(1)펌프대수', header: { text: '펌프대수' } }, + { name: '오수펌프(1)예비대수', fieldName: '오수펌프(1)예비대수', header: { text: '예비대수' } }, + //오수펌프(2) + { name: '오수펌프(2)구경(mm)', fieldName: '오수펌프(2)구경(mm)', header: { text: '구경(mm)' } }, + { name: '오수펌프(2)양수량(m3/min)', fieldName: '오수펌프(2)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '오수펌프(2)펌프대수', fieldName: '오수펌프(2)펌프대수', header: { text: '펌프대수' } }, + { name: '오수펌프(2)예비대수', fieldName: '오수펌프(2)예비대수', header: { text: '예비대수' } }, + //오수펌프(3) + { name: '오수펌프(3)구경(mm)', fieldName: '오수펌프(3)구경(mm)', header: { text: '구경(mm)' } }, + { name: '오수펌프(3)양수량(m3/min)', fieldName: '오수펌프(3)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '오수펌프(3)펌프대수', fieldName: '오수펌프(3)펌프대수', header: { text: '펌프대수' } }, + { name: '오수펌프(3)예비대수', fieldName: '오수펌프(3)예비대수', header: { text: '예비대수' } }, + //우수펌프(1) + { name: '우수펌프(1)구경(mm)', fieldName: '우수펌프(1)구경(mm)', header: { text: '구경(mm)' } }, + { name: '우수펌프(1)양수량(m3/min)', fieldName: '우수펌프(1)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '우수펌프(1)펌프대수', fieldName: '우수펌프(1)펌프대수', header: { text: '펌프대수' } }, + { name: '우수펌프(1)예비대수', fieldName: '우수펌프(1)예비대수', header: { text: '예비대수' } }, + //우수펌프(2) + { name: '우수펌프(2)구경(mm)', fieldName: '우수펌프(2)구경(mm)', header: { text: '구경(mm)' } }, + { name: '우수펌프(2)양수량(m3/min)', fieldName: '우수펌프(2)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '우수펌프(2)펌프대수', fieldName: '우수펌프(2)펌프대수', header: { text: '펌프대수' } }, + { name: '우수펌프(2)예비대수', fieldName: '우수펌프(2)예비대수', header: { text: '예비대수' } }, + //우수펌프(3) + { name: '우수펌프(3)구경(mm)', fieldName: '우수펌프(3)구경(mm)', header: { text: '구경(mm)' } }, + { name: '우수펌프(3)양수량(m3/min)', fieldName: '우수펌프(3)양수량(m3/min)', header: { text: '양수량(m3/min)' } }, + { name: '우수펌프(3)펌프대수', fieldName: '우수펌프(3)펌프대수', header: { text: '펌프대수' } }, + { name: '우수펌프(3)예비대수', fieldName: '우수펌프(3)예비대수', header: { text: '예비대수' } }, + + { name: '연간전력사용량(kWh/년)', fieldName: '연간전력사용량(kWh/년)', header: { text: '연간전력사용량(kWh/년)' } }, + { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, + ]; + + const columnLayout = [ + { + name: 'groupA', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'sgg'], + }, + '펌프장명', + '구분', + '처리장명', + '구분(합류식분류식)', + '위치', + '가동년월일 yyyy-mm-dd', + '계획배수면적(km2)', + { + name: 'groupB', + hideChildHeaders: false, + header: { text: '계획시간대최대배수량(m3/hr)' }, + items: ['청천시(A)','우천시(B)','우수량(B-A)'], + }, + { + name: 'groupC', + hideChildHeaders: false, + header: { text: '배수능력' }, + items: [ + '오수펌프_총양수량(m3/min)', + { + name: '오수펌프(1)', + hideChildHeaders: false, + header: { text: '오수펌프(1)' }, + items: ['오수펌프(1)구경(mm)', '오수펌프(1)양수량(m3/min)', '오수펌프(1)펌프대수', '오수펌프(1)예비대수'], + }, + { + name: '오수펌프(2)', + hideChildHeaders: false, + header: { text: '오수펌프(2)' }, + items: ['오수펌프(2)구경(mm)', '오수펌프(2)양수량(m3/min)', '오수펌프(2)펌프대수', '오수펌프(2)예비대수'], + }, + { + name: '오수펌프(3)', + hideChildHeaders: false, + header: { text: '오수펌프(3)' }, + items: ['오수펌프(3)구경(mm)', '오수펌프(3)양수량(m3/min)', '오수펌프(3)펌프대수', '오수펌프(3)예비대수'], + }, + '우수펌프_총양수량(m3/min)', + { + name: '우수펌프(1)', + hideChildHeaders: false, + header: { text: '우수펌프(1)' }, + items: ['우수펌프(1)구경(mm)', '우수펌프(1)양수량(m3/min)', '우수펌프(1)펌프대수', '우수펌프(1)예비대수'], + }, + { + name: '우수펌프(2)', + hideChildHeaders: false, + header: { text: '우수펌프(2)' }, + items: ['우수펌프(2)구경(mm)', '우수펌프(2)양수량(m3/min)', '우수펌프(2)펌프대수', '우수펌프(2)예비대수'], + }, + { + name: '우수펌프(3)', + hideChildHeaders: false, + header: { text: '우수펌프(3)' }, + items: ['우수펌프(3)구경(mm)', '우수펌프(3)양수량(m3/min)', '우수펌프(3)펌프대수', '우수펌프(3)예비대수'], + }, + ], + }, + '연간전력사용량(kWh/년)', + 'rmk', + ]; + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + return ( - <> + <> +
+ + + + + +
+ ); -} +}; export default PumpingStationRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx b/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx new file mode 100644 index 000000000..6adef8bbc --- /dev/null +++ b/apps/st/src/components/statistics/review/SewageExcretaRelatedRvw.tsx @@ -0,0 +1,51 @@ + +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 { SewageExcretaRelatedInfoListRvw } from "@/components/util/column/SewageExcretaRelatedColumnRvw"; + + +const SewageExcretaRelatedRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + + +export default SewageExcretaRelatedRvw; diff --git a/apps/st/src/components/statistics/review/SewageExcretaSlurgeRvw.tsx b/apps/st/src/components/statistics/review/SewageExcretaSlurgeRvw.tsx new file mode 100644 index 000000000..91be4eb63 --- /dev/null +++ b/apps/st/src/components/statistics/review/SewageExcretaSlurgeRvw.tsx @@ -0,0 +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 { SewageExcretaSlurgeInfoList } from "@/components/util/column/SewageExcretaSlurgeColumnRvw"; + + +const SewageExcretaSlurgeRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + +export default SewageExcretaSlurgeRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx b/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx index 68e4e9e7d..2de818db3 100644 --- a/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.tsx +++ b/apps/st/src/components/statistics/review/SewagePipeMaintainRvw.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 { SewagePipeMaintainColumnInfoListRvw } from "@/components/util/column/SewagePipeMaintainColumnRvw"; + const SewagePipeMaintainRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + return ( - <> - + <> + + +
+ + + + +
+ ); -} +}; export default SewagePipeMaintainRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/SewagePipeRvw.tsx b/apps/st/src/components/statistics/review/SewagePipeRvw.tsx index c6fbd817e..dc236b443 100644 --- a/apps/st/src/components/statistics/review/SewagePipeRvw.tsx +++ b/apps/st/src/components/statistics/review/SewagePipeRvw.tsx @@ -1,11 +1,50 @@ 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 { SewagePipeColumnInfoListRvw } from "@/components/util/column/SewagePipeColumnRvw"; + const SewagePipeRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + return ( - <> - + <> + + +
+ + + + +
+ ); -} +}; + export default SewagePipeRvw; \ No newline at end of file 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/statistics/review/SewerageFinanceRvw.tsx b/apps/st/src/components/statistics/review/SewerageFinanceRvw.tsx new file mode 100644 index 000000000..436834bb6 --- /dev/null +++ b/apps/st/src/components/statistics/review/SewerageFinanceRvw.tsx @@ -0,0 +1,50 @@ +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 { SewerageFinanceInfoListRvw } from "@/components/util/column/SewerageFinanceColumnRvw"; + + +const SewerageFinanceRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + + +export default SewerageFinanceRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/SeweragePenetrationRateRvw.tsx b/apps/st/src/components/statistics/review/SeweragePenetrationRateRvw.tsx index 17df757f0..897e433ac 100644 --- a/apps/st/src/components/statistics/review/SeweragePenetrationRateRvw.tsx +++ b/apps/st/src/components/statistics/review/SeweragePenetrationRateRvw.tsx @@ -1,11 +1,139 @@ 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"; + const SeweragePenetrationRateRvw = () => { + const columns = [ + { name: 'sido', fieldName: '시도', header: { text: '시도' } }, + { name: 'sgg', fieldName: '구군', header: { text: '구군' } }, + { name: '구분', fieldName: '구분', header: { text: '구분' } }, + { name: '수계', fieldName: '수계', header: { text: '수계' } }, + { name: 'bstrm', fieldName: '지류', header: { text: '지류' } }, + { name: 'mdbsn', fieldName: '세부단위유역', header: { text: '세부단위유역' } }, + { name: 'lgbsn', fieldName: '중권역', header: { text: '중권역' } }, + { name: 'mdmbsn', fieldName: '소권역', header: { text: '소권역' } }, + { name: 'specl_cntrpln_ar', fieldName: '특별대책지역', header: { text: '특별대책지역' } }, + { name: 'total_popl', fieldName: '총인구', header: { text: '총인구' } }, + { name: 'popl_sm', fieldName: '내국인', header: { text: '내국인' } }, + { name: 'frgnr_popl_sm', fieldName: '외국인', header: { text: '외국인' } }, + { name: 'area', fieldName: '행정참고자료면적(㎢)', header: { text: '행정참고자료면적(㎢)' } }, + { name: 'popltn_sm', fieldName: '총인구(명)', header: { text: '총인구(명)' } }, + { name: 'ar_sm', fieldName: '총면적(㎢)', header: { text: '총면적(㎢)' } }, + { name: '계', fieldName: '계', header: { text: '계' } }, + //공공하수처리인구 + { name: '합계', fieldName: '합계', header: { text: '합계' } }, + { name: '1차처리', fieldName: '1차처리', header: { text: '1차처리' } }, + { name: '2차처리', fieldName: '2차처리', header: { text: '2차처리' } }, + { name: '3차처리', fieldName: '3차처리', header: { text: '3차처리' } }, + //폐수처리인구(명) + { name: '(폐수처리인구)합계', fieldName: '(폐수처리인구)합계', header: { text: '합계' } }, + { name: '(폐수처리인구)1차처리', fieldName: '(폐수처리인구)1차처리', header: { text: '1차처리' } }, + { name: '(폐수처리인구)2차처리', fieldName: '(폐수처리인구)2차처리', header: { text: '2차처리' } }, + { name: '(폐수처리인구)3차처리', fieldName: '(폐수처리인구)3차처리', header: { text: '3차처리' } }, + + { name: 'not_conect_popltn', fieldName: '미접속인구', header: { text: '미접속인구' } }, + { name: 'swge_proc_zone_inner_ar', fieldName: '면적(㎢)', header: { text: '면적(㎢)' } }, + { name: 'swge_proc_zone_outer_sm', fieldName: '합계', header: { text: '계' } }, + { name: 'town_unproc_popltn', fieldName: '미처리인구', header: { text: '미처리인구' } }, + { name: 'town_swtt_popltn', fieldName: '오수처리인구', header: { text: '오수처리인구' } }, + { name: 'town_wrrtn_popltn', fieldName: '정화조인구', header: { text: '정화조인구' } }, + { name: 'swge_proc_zone_outer_ar', fieldName: '면적(㎢)', header: { text: '면적(㎢)' } }, + { name: 'pblswrg_popltn_suprt', fieldName: '공공하수처리구역인구보급율(%)', header: { text: '공공하수처리구역인구보급율(%)' } }, + { name: 'adtrt_popltn_suprt', fieldName: '고도처리인구보급율(%)', header: { text: `고도처리인구보급율(%)` } }, + { name: 'swrg_instlrt', fieldName: '하수도설치율(%)', header: { text: '하수도설치율(%)' } }, + { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, + ]; + + const columnLayout = [ + { + name: 'groupA', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'sgg'], + }, + '구분', + '수계', + 'bstrm', + { + name: 'groupB', + hideChildHeaders: false, + header: { text: '수계영향권별분류류' }, + items: ['mdbsn', 'lgbsn', 'mdmbsn'], + }, + 'specl_cntrpln_ar', + 'popltn_sm', + 'ar_sm', + { + name: 'groupD', + hideChildHeaders: false, + header: { text: '하수처리구역내' }, + items: [ + '계', + { + name: 'pblswrgGroup', + hideChildHeaders: false, + header: { text: '공공하수처리인구(명)' }, + items: ['합계', '1차처리', '2차처리', '3차처리'], + }, + { + name: 'wstrGroup', + hideChildHeaders: false, + header: { text: '폐수처리인구(명)' }, + items: ['(폐수처리인구)합계', '(폐수처리인구)1차처리', '(폐수처리인구)2차처리', '(폐수처리인구)3차처리'], + }, + 'not_conect_popltn', + 'swge_proc_zone_inner_ar' + ], + }, + { + name: 'groupE', + hideChildHeaders: false, + header: { text: '하수처리구역외' }, + items: ['swge_proc_zone_outer_sm', 'town_unproc_popltn', 'town_swtt_popltn', 'town_wrrtn_popltn', 'swge_proc_zone_outer_ar'], + }, + 'pblswrg_popltn_suprt', + 'adtrt_popltn_suprt', + 'swrg_instlrt', + 'rmk', + ]; + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + return ( - <> + <> +
+ + + + + +
+ ); -} +}; export default SeweragePenetrationRateRvw; \ No newline at end of file diff --git a/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx b/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx new file mode 100644 index 000000000..fb557baad --- /dev/null +++ b/apps/st/src/components/statistics/review/SewerageServiceLevelRvw.tsx @@ -0,0 +1,50 @@ +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 { SewerageServiceLevelInfoListRvw } from "@/components/util/column/SewerageServiceLevelColumnRvw"; + + +const SewerageServiceLevelRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + + +export default SewerageServiceLevelRvw; diff --git a/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx b/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx index d89ff9290..f9bbb539d 100644 --- a/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx +++ b/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx @@ -1,9 +1,213 @@ 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"; const StatsInputSatusRvw = () => { + const columns = [ + { name: 'sido', fieldName: '시도', header: { text: '시도' } }, + { name: 'sgg', fieldName: '구군', header: { text: '구군' } }, + + { name: '진행상태', fieldName: '진행상태', header: { text: '진행상태' } }, + //01번 + { name: '제출자01', fieldName: '제출자01', header: { text: '제출자' } }, + { name: '연락처01', fieldName: '연락처01', header: { text: '연락처' } }, + { name: '지자체진행상태01', fieldName: '지자체진행상태01', header: { text: '지자체진행상태' } }, + { name: '진행상태01', fieldName: '진행상태01', header: { text: '진행상태' } }, + //02번 + { name: '제출자02', fieldName: '제출자02', header: { text: '제출자' } }, + { name: '연락처02', fieldName: '연락처02', header: { text: '연락처' } }, + { name: '지자체진행상태02', fieldName: '지자체진행상태02', header: { text: '지자체진행상태' } }, + { name: '진행상태02', fieldName: '진행상태02', header: { text: '진행상태' } }, + // 03번 + { name: '제출자03', fieldName: '제출자03', header: { text: '제출자' } }, + { name: '연락처03', fieldName: '연락처03', header: { text: '연락처' } }, + { name: '지자체진행상태03', fieldName: '지자체진행상태03', header: { text: '지자체진행상태' } }, + { name: '진행상태03', fieldName: '진행상태03', header: { text: '진행상태' } }, + + // 04번 + { name: '제출자04', fieldName: '제출자04', header: { text: '제출자' } }, + { name: '연락처04', fieldName: '연락처04', header: { text: '연락처' } }, + { name: '지자체진행상태04', fieldName: '지자체진행상태04', header: { text: '지자체진행상태' } }, + { name: '진행상태04', fieldName: '진행상태04', header: { text: '진행상태' } }, + + // 05번 + { name: '제출자05', fieldName: '제출자05', header: { text: '제출자' } }, + { name: '연락처05', fieldName: '연락처05', header: { text: '연락처' } }, + { name: '지자체진행상태05', fieldName: '지자체진행상태05', header: { text: '지자체진행상태' } }, + { name: '진행상태05', fieldName: '진행상태05', header: { text: '진행상태' } }, + + // 06번 + { name: '제출자06', fieldName: '제출자06', header: { text: '제출자' } }, + { name: '연락처06', fieldName: '연락처06', header: { text: '연락처' } }, + { name: '지자체진행상태06', fieldName: '지자체진행상태06', header: { text: '지자체진행상태' } }, + { name: '진행상태06', fieldName: '진행상태06', header: { text: '진행상태' } }, + + // 07번 + { name: '제출자07', fieldName: '제출자07', header: { text: '제출자' } }, + { name: '연락처07', fieldName: '연락처07', header: { text: '연락처' } }, + { name: '지자체진행상태07', fieldName: '지자체진행상태07', header: { text: '지자체진행상태' } }, + { name: '진행상태07', fieldName: '진행상태07', header: { text: '진행상태' } }, + + // 08번 + { name: '제출자08', fieldName: '제출자08', header: { text: '제출자' } }, + { name: '연락처08', fieldName: '연락처08', header: { text: '연락처' } }, + { name: '지자체진행상태08', fieldName: '지자체진행상태08', header: { text: '지자체진행상태' } }, + { name: '진행상태08', fieldName: '진행상태08', header: { text: '진행상태' } }, + + // 09번 + { name: '제출자09', fieldName: '제출자09', header: { text: '제출자' } }, + { name: '연락처09', fieldName: '연락처09', header: { text: '연락처' } }, + { name: '지자체진행상태09', fieldName: '지자체진행상태09', header: { text: '지자체진행상태' } }, + { name: '진행상태09', fieldName: '진행상태09', header: { text: '진행상태' } }, + + // 10번 + { name: '제출자10', fieldName: '제출자10', header: { text: '제출자' } }, + { name: '연락처10', fieldName: '연락처10', header: { text: '연락처' } }, + { name: '지자체진행상태10', fieldName: '지자체진행상태10', header: { text: '지자체진행상태' } }, + { name: '진행상태10', fieldName: '진행상태10', header: { text: '진행상태' } }, + + // 11번 + { name: '제출자11', fieldName: '제출자11', header: { text: '제출자' } }, + { name: '연락처11', fieldName: '연락처11', header: { text: '연락처' } }, + { name: '지자체진행상태11', fieldName: '지자체진행상태11', header: { text: '지자체진행상태' } }, + { name: '진행상태11', fieldName: '진행상태11', header: { text: '진행상태' } }, + + // 12번 + { name: '제출자12', fieldName: '제출자12', header: { text: '제출자' } }, + { name: '연락처12', fieldName: '연락처12', header: { text: '연락처' } }, + { name: '지자체진행상태12', fieldName: '지자체진행상태12', header: { text: '지자체진행상태' } }, + { name: '진행상태12', fieldName: '진행상태12', header: { text: '진행상태' } }, + + // 13번 + { name: '제출자13', fieldName: '제출자13', header: { text: '제출자' } }, + { name: '연락처13', fieldName: '연락처13', header: { text: '연락처' } }, + { name: '지자체진행상태13', fieldName: '지자체진행상태13', header: { text: '지자체진행상태' } }, + { name: '진행상태13', fieldName: '진행상태13', header: { text: '진행상태' } }, + { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, + ]; + + const columnLayout = [ + { + name: 'groupA', + hideChildHeaders: false, + header: { text: '행정구역' }, + items: ['sido', 'sgg'], + }, + '진행상태', + { + name: 'groupB', + hideChildHeaders: false, + header: { text: '01. 하수도 보급율' }, + items: ['제출자01', '연락처01', '지자체진행상태01','진행상태01'], + }, + { + name: 'groupC', + hideChildHeaders: false, + header: { text: '02. 하수관로' }, + items: ['제출자02', '연락처02', '지자체진행상태02','진행상태02'], + }, + { + name: 'groupD', + hideChildHeaders: false, + header: { text: '03. 하수관로유지관리' }, + items: ['제출자03', '연락처03', '지자체진행상태03', '진행상태03'], + }, + { + name: 'groupE', + hideChildHeaders: false, + header: { text: '04. 하수저류시설' }, + items: ['제출자04', '연락처04', '지자체진행상태04', '진행상태04'], + }, + { + name: 'groupF', + hideChildHeaders: false, + header: { text: '05. 펌프장' }, + items: ['제출자05', '연락처05', '지자체진행상태05', '진행상태05'], + }, + { + name: 'groupG', + hideChildHeaders: false, + header: { text: '06. 공공하수처리시설' }, + items: ['제출자06', '연락처06', '지자체진행상태06', '진행상태06'], + }, + { + name: 'groupH', + hideChildHeaders: false, + header: { text: '07. 분뇨처리시설' }, + items: ['제출자07', '연락처07', '지자체진행상태07', '진행상태07'], + }, + { + name: 'groupI', + hideChildHeaders: false, + header: { text: '08. 개인하수처리시설' }, + items: ['제출자08', '연락처08', '지자체진행상태08', '진행상태08'], + }, + { + name: 'groupJ', + hideChildHeaders: false, + header: { text: '09. 하수도재정' }, + items: ['제출자09', '연락처09', '지자체진행상태09', '진행상태09'], + }, + { + name: 'groupK', + hideChildHeaders: false, + header: { text: '10. 물재이용' }, + items: ['제출자10', '연락처10', '지자체진행상태10', '진행상태10'], + }, + { + name: 'groupL', + hideChildHeaders: false, + header: { text: '11. 하수및분뇨찌꺼기' }, + items: ['제출자11', '연락처11', '지자체진행상태11', '진행상태11'], + }, + { + name: 'groupM', + hideChildHeaders: false, + header: { text: '12. 하수및분뇨관련사업' }, + items: ['제출자12', '연락처12', '지자체진행상태12', '진행상태12'], + }, + { + name: 'groupN', + hideChildHeaders: false, + header: { text: '13. 하수도서비스수준' }, + items: ['제출자13', '연락처13', '지자체진행상태13', '진행상태13'], + } + ]; + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + return ( <> +
+ + + + + +
+ ); } diff --git a/apps/st/src/components/statistics/review/WaterReuseRvw.tsx b/apps/st/src/components/statistics/review/WaterReuseRvw.tsx new file mode 100644 index 000000000..7ad621e7f --- /dev/null +++ b/apps/st/src/components/statistics/review/WaterReuseRvw.tsx @@ -0,0 +1,50 @@ + +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 { WaterReuseInfoList } from "@/components/util/column/WaterReuseColumnRvw"; + + +const WaterReuseRvw = () => { + + const approveFunc = () => { + console.log('approveFunc'); + // 승인 로직 + }; + + const saveFunc = () => { + console.log('submit'); + // 저장 로직 + }; + + const reviewOpinionFunc = () => { + console.log('reviewOpinionFunc'); + // 검토의견 작성 + }; + + const returnFunc = () => { + console.log('returnFunc'); + // 반려 + }; + + + return ( + <> + + +
+ + + + +
+ + + ); +}; + +export default WaterReuseRvw; \ No newline at end of file diff --git a/apps/st/src/components/util/column/PrivateSewageFacilityColumnRvw.ts b/apps/st/src/components/util/column/PrivateSewageFacilityColumnRvw.ts new file mode 100644 index 000000000..b83243be5 --- /dev/null +++ b/apps/st/src/components/util/column/PrivateSewageFacilityColumnRvw.ts @@ -0,0 +1,190 @@ + +export const PrivateSewageFacilityInfoListRvw = [ + { + tabKey: 'a', + tabLabel: '처리용량별 오수처리시설 현황', + rowStartNum: 3, // 3단 헤더 구조 반영 + fixedColumns: 2, // 순번, 시도, 시군구, 행정코드, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 총계 */ + { name: 'STTY_SM', fieldName: 'STTY_SM', header: { text: '총계' } }, + + /* 3. 하수처리구역 내 (단위: ㎥/일) */ + { name: 'STTY_ZONE_INNER_SM', fieldName: 'STTY_ZONE_INNER_SM', header: { text: '계' } }, + { name: 'STTY_ZONE_INNER_2', fieldName: 'STTY_ZONE_INNER_2', header: { text: '2이하' } }, + { name: 'STTY_ZONE_INNER_3', fieldName: 'STTY_ZONE_INNER_3', header: { text: '3~10' } }, + { name: 'STTY_ZONE_INNER_11', fieldName: 'STTY_ZONE_INNER_11', header: { text: '11~20' } }, + { name: 'STTY_ZONE_INNER_21', fieldName: 'STTY_ZONE_INNER_21', header: { text: '21~50' } }, + { name: 'STTY_ZONE_INNER_51', fieldName: 'STTY_ZONE_INNER_51', header: { text: '51~100' } }, + { name: 'STTY_ZONE_INNER_101', fieldName: 'STTY_ZONE_INNER_101', header: { text: '101~500' } }, + { name: 'STTY_ZONE_INNER_501', fieldName: 'STTY_ZONE_INNER_501', header: { text: '501이상' } }, + + /* 4. 하수처리구역 외 (단위: ㎥/일) */ + { name: 'STTY_ZONE_OUTER_SM', fieldName: 'STTY_ZONE_OUTER_SM', header: { text: '계' } }, + { name: 'STTY_ZONE_OUTER_2', fieldName: 'STTY_ZONE_OUTER_2', header: { text: '2이하' } }, + { name: 'STTY_ZONE_OUTER_3', fieldName: 'STTY_ZONE_OUTER_3', header: { text: '3~10' } }, + { name: 'STTY_ZONE_OUTER_11', fieldName: 'STTY_ZONE_OUTER_11', header: { text: '11~20' } }, + { name: 'STTY_ZONE_OUTER_21', fieldName: 'STTY_ZONE_OUTER_21', header: { text: '21~50' } }, + { name: 'STTY_ZONE_OUTER_51', fieldName: 'STTY_ZONE_OUTER_51', header: { text: '51~100' } }, + { name: 'STTY_ZONE_OUTER_101', fieldName: 'STTY_ZONE_OUTER_101', header: { text: '101~500' } }, + { name: 'STTY_ZONE_OUTER_501', fieldName: 'STTY_ZONE_OUTER_501', header: { text: '501이상' } }, + + /* 5. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + + 'YR_GBN', + 'STTY_SM', + { + name: 'individualGroup', + header: { text: '오수처리시설' }, + items: [ + { + name: 'innerGroup', + header: { text: '하수처리구역 내(㎥/일)' }, + items: [ + 'STTY_ZONE_INNER_SM', 'STTY_ZONE_INNER_2', 'STTY_ZONE_INNER_3', + 'STTY_ZONE_INNER_11', 'STTY_ZONE_INNER_21', 'STTY_ZONE_INNER_51', + 'STTY_ZONE_INNER_101', 'STTY_ZONE_INNER_501' + ] + }, + { + name: 'outerGroup', + header: { text: '하수처리구역 외(㎥/일)' }, + items: [ + 'STTY_ZONE_OUTER_SM', 'STTY_ZONE_OUTER_2', 'STTY_ZONE_OUTER_3', + 'STTY_ZONE_OUTER_11', 'STTY_ZONE_OUTER_21', 'STTY_ZONE_OUTER_51', + 'STTY_ZONE_OUTER_101', 'STTY_ZONE_OUTER_501' + ] + } + ] + }, + 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '정화조현황', + rowStartNum: 4, // XML의 4단 헤더 구조 반영 + fixedColumns: 1, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + { name: 'TOT_FCLTY_CNT', fieldName: 'TOT_FCLTY_CNT', header: { text: '총 시설 수\n(A+D)' } }, + + /* 2. 하수처리구역 내 (Inner) */ + { name: 'SPZI_SM', fieldName: 'SPZI_SM', header: { text: '총계\nA=(B+C)/2' } }, + // 처리방식별 (B) + { name: 'SPZI_NPFL', fieldName: 'SPZI_NPFL', header: { text: '자연유하' } }, + { name: 'SPZI_ENFCT_PUMP', fieldName: 'SPZI_ENFCT_PUMP', header: { text: '강제펌핑식' } }, + { name: 'SPZI_TFM', fieldName: 'SPZI_TFM', header: { text: '살수여상' } }, + { name: 'SPZI_ARTM', fieldName: 'SPZI_ARTM', header: { text: '폭기방법' } }, + { name: 'SPZI_CTARM', fieldName: 'SPZI_CTARM', header: { text: '접촉폭기' } }, + { name: 'SPZI_ETC', fieldName: 'SPZI_ETC', header: { text: '기타' } }, + // 처리용량별 (C) + { name: 'SPZI_PROC_CPC_SM', fieldName: 'SPZI_PROC_CPC_SM', header: { text: '계(C)' } }, + { name: 'SPZI_PROC_CPC_1', fieldName: 'SPZI_PROC_CPC_1', header: { text: '10인조 이하' } }, + { name: 'SPZI_PROC_CPC_2', fieldName: 'SPZI_PROC_CPC_2', header: { text: '11~20' } }, + { name: 'SPZI_PROC_CPC_3', fieldName: 'SPZI_PROC_CPC_3', header: { text: '21~30' } }, + { name: 'SPZI_PROC_CPC_4', fieldName: 'SPZI_PROC_CPC_4', header: { text: '31~50' } }, + { name: 'SPZI_PROC_CPC_5', fieldName: 'SPZI_PROC_CPC_5', header: { text: '51~199' } }, + { name: 'SPZI_PROC_CPC_6', fieldName: 'SPZI_PROC_CPC_6', header: { text: '200~499' } }, + { name: 'SPZI_PROC_CPC_7', fieldName: 'SPZI_PROC_CPC_7', header: { text: '500~999' } }, + { name: 'SPZI_PROC_CPC_8', fieldName: 'SPZI_PROC_CPC_8', header: { text: '1,000이상' } }, + + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', 'TOT_FCLTY_CNT', + { + name: 'innerMainGroup', + header: { text: '하수처리구역 내' }, + items: [ + 'SPZI_SM', + { + name: 'innerMethodGroup', + header: { text: '처리방식별' }, + items: [ + { name: 'innerTankGroup', header: { text: '부패탱크' }, items: ['SPZI_NPFL', 'SPZI_ENFCT_PUMP'] }, + 'SPZI_TFM', 'SPZI_ARTM', 'SPZI_CTARM', 'SPZI_ETC' + ] + }, + { + name: 'innerCpcGroup', + header: { text: '처리용량별' }, + items: ['SPZI_PROC_CPC_SM', 'SPZI_PROC_CPC_1', 'SPZI_PROC_CPC_2', 'SPZI_PROC_CPC_3', 'SPZI_PROC_CPC_4', 'SPZI_PROC_CPC_5', 'SPZI_PROC_CPC_6', 'SPZI_PROC_CPC_7', 'SPZI_PROC_CPC_8'] + } + ] + }, + 'RMK' + ] +},{ + tabKey: 'c', + tabLabel: '개인하수도 관리지역 지정공고 현황', + rowStartNum: 3, // 3단 헤더 구조 반영 + fixedColumns: 1, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 관리지역 공고 현황 (하수도법 제34조의2) */ + { name: 'MGMT_AR', fieldName: 'MGMT_AR', header: { text: '공고지역\n(개소)' } }, + { name: 'APPN_SCOPE', fieldName: 'APPN_SCOPE', header: { text: '지정범위\n(㎢)' } }, + + /* 3. 정화조 상세 */ + { name: 'WRRTN_CNT', fieldName: 'WRRTN_CNT', header: { text: '개소수' } }, + { name: 'WRRTN_CPC', fieldName: 'WRRTN_CPC', header: { text: '처리용량\n(인/일)' } }, + + /* 4. 오수시설 상세 */ + { name: 'STTY_CNT', fieldName: 'STTY_CNT', header: { text: '개소수' } }, + { name: 'STTY_CPC', fieldName: 'STTY_CPC', header: { text: '처리용량\n(㎥/일)' } }, + + /* 5. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'YR_GBN', + { + name: 'mgmtMainGroup', + header: { text: '개인하수도관리지역공고현황\n(하수도법 제34조의2)' }, + items: [ + 'MGMT_AR', + 'APPN_SCOPE', + { + name: 'septictankGroup', + header: { text: '정화조' }, + items: ['WRRTN_CNT', 'WRRTN_CPC'] + }, + { + name: 'sewageFacGroup', + header: { text: '오수시설' }, + items: ['STTY_CNT', 'STTY_CPC'] + } + ] + }, + 'RMK' + ] +} + +]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts b/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts new file mode 100644 index 000000000..631d0204d --- /dev/null +++ b/apps/st/src/components/util/column/SewageExcretaRelatedColumnRvw.ts @@ -0,0 +1,201 @@ + +export const SewageExcretaRelatedInfoListRvw=[ + { + tabKey: 'a', + tabLabel: '공공기관 하수분야', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + fixedColumns: 2, // 순번, 시도, 시군구, 직제, 구분까지 고정 + columns: [ + /* 1. 행정 및 조직 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 인력 총계 및 행정직 */ + { name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } }, + { name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } }, + + /* 3. 기술직 상세 (단위: 명) */ + { name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } }, + { name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } }, + { name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } }, + { name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } }, + { name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } }, + { name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } }, + { name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } }, + + /* 4. 기타 및 비고 */ + + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'OCGNZ', + 'YR_GBN', + 'TOT_WTR_QRM', + 'ADMINIST_JSSFC', + { + name: 'techJobGroup', + header: { text: '기술직' }, + items: [ + 'TCHNLGY_JSSFC_SM', + 'ENGRK_JSSFC', + 'MCHN_JSSFC', + 'ELCTY_JSSFC', + 'CHMSTRY_JSSFC', + 'ENVRN_JSSFC', + 'TCHNLGY_ETC' + ] + }, + 'RMK', + + ] + },{ + tabKey: 'b', + tabLabel: '공공기관 분뇨분야', + rowStartNum: 2, // 2단 헤더 구조 + fixedColumns: 1, // 순번, 시도, 시군구, 직제, 구분까지 고정 + columns: [ + /* 1. 행정 및 조직 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'OCGNZ', fieldName: 'OCGNZ', header: { text: '직제' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 인력 총계 및 행정직 */ + { name: 'TOT_WTR_QRM', fieldName: 'TOT_WTR_QRM', header: { text: '직원총수' } }, + { name: 'ADMINIST_JSSFC', fieldName: 'ADMINIST_JSSFC', header: { text: '행정직' } }, + + /* 3. 기술직 상세 (단위: 명) */ + { name: 'TCHNLGY_JSSFC_SM', fieldName: 'TCHNLGY_JSSFC_SM', header: { text: '계' } }, + { name: 'ENGRK_JSSFC', fieldName: 'ENGRK_JSSFC', header: { text: '토목' } }, + { name: 'MCHN_JSSFC', fieldName: 'MCHN_JSSFC', header: { text: '기계' } }, + { name: 'ELCTY_JSSFC', fieldName: 'ELCTY_JSSFC', header: { text: '전기' } }, + { name: 'CHMSTRY_JSSFC', fieldName: 'CHMSTRY_JSSFC', header: { text: '화공' } }, + { name: 'ENVRN_JSSFC', fieldName: 'ENVRN_JSSFC', header: { text: '환경' } }, + { name: 'TCHNLGY_ETC', fieldName: 'TCHNLGY_ETC', header: { text: '기타' } }, + + /* 4. 기타 및 비고 */ + { name: 'ETC', fieldName: 'ETC', header: { text: '기타' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'OCGNZ', + 'YR_GBN', + 'TOT_WTR_QRM', + 'ADMINIST_JSSFC', + { + name: 'techJobGroup', + header: { text: '기술직' }, + items: [ + 'TCHNLGY_JSSFC_SM', + 'ENGRK_JSSFC', + 'MCHN_JSSFC', + 'ELCTY_JSSFC', + 'CHMSTRY_JSSFC', + 'ENVRN_JSSFC', + 'TCHNLGY_ETC' + ] + }, + 'ETC', + 'RMK', + ] +}, +{ + tabKey: 'c', + tabLabel: '분뇨수집·운반업', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 업체 및 인력 현황 */ + { name: 'ECSCS_SM', fieldName: 'ECSCS_SM', header: { text: '업체수(개소)' } }, + { name: 'ECSCS_BSMN', fieldName: 'ECSCS_BSMN', header: { text: '종사인원(명)' } }, + + /* 3. 시설(차량) 확보현황 (단위: 대수) */ + { name: 'VHCLE_SM', fieldName: 'VHCLE_SM', header: { text: '계' } }, + { name: 'THREE_BELOW', fieldName: 'THREE_BELOW', header: { text: '3톤이하' } }, + { name: 'FOUR_BELOW', fieldName: 'FOUR_BELOW', header: { text: '4.5톤이하' } }, + { name: 'EIGHT_BELOW', fieldName: 'EIGHT_BELOW', header: { text: '8톤이하' } }, + { name: 'ETC', fieldName: 'ETC', header: { text: '기타' } }, + + /* 4. 실적 및 비고 */ + { name: 'COLCT_TRSP_ACMSLT', fieldName: 'COLCT_TRSP_ACMSLT', header: { text: '수집·운반실적\n(㎥/년)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', + 'ECSCS_SM', + 'ECSCS_BSMN', + { + name: 'vehicleGroup', + header: { text: '시설(차량) 확보현황(대수)' }, + items: [ + 'VHCLE_SM', + 'THREE_BELOW', + 'FOUR_BELOW', + 'EIGHT_BELOW', + 'ETC' + ] + }, + 'COLCT_TRSP_ACMSLT', + 'RMK' + ] +}, +{ + tabKey: 'd', + tabLabel: '개인하수처리관련업', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 개인하수처리시설 설계ㆍ시공업 */ + { name: 'CNSTRCT_ENTRPS', fieldName: 'CNSTRCT_ENTRPS', header: { text: '업소수' } }, + { name: 'CNSTRCT_BSMN', fieldName: 'CNSTRCT_BSMN', header: { text: '종사인원(명)' } }, + + /* 3. 개인하수처리시설 제조업 */ + { name: 'MNFCTUR_ENTRPS', fieldName: 'MNFCTUR_ENTRPS', header: { text: '업소수' } }, + { name: 'MNFCTUR_BSMN', fieldName: 'MNFCTUR_BSMN', header: { text: '종사인원(명)' } }, + + /* 4. 개인하수처리시설 관리업 */ + { name: 'MGMT_ENTRPS', fieldName: 'MGMT_ENTRPS', header: { text: '업소수' } }, + { name: 'MGMT_BSMN', fieldName: 'MGMT_BSMN', header: { text: '종사인원(명)' } }, + + /* 5. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', + { + name: 'constructGroup', + header: { text: '개인하수처리시설 설계ㆍ시공업' }, + items: ['CNSTRCT_ENTRPS', 'CNSTRCT_BSMN'] + }, + { + name: 'manufactureGroup', + header: { text: '개인하수처리시설 제조업' }, + items: ['MNFCTUR_ENTRPS', 'MNFCTUR_BSMN'] + }, + { + name: 'managementGroup', + header: { text: '개인하수처리시설 관리업' }, + items: ['MGMT_ENTRPS', 'MGMT_BSMN'] + }, + 'RMK' + ] +} +]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewageExcretaSlurgeColumnRvw.ts b/apps/st/src/components/util/column/SewageExcretaSlurgeColumnRvw.ts new file mode 100644 index 000000000..9755e8652 --- /dev/null +++ b/apps/st/src/components/util/column/SewageExcretaSlurgeColumnRvw.ts @@ -0,0 +1,255 @@ +export const SewageExcretaSlurgeInfoList = [ + { + tabKey: 'a', + tabLabel: '찌꺼기 처리시설 현황', + rowStartNum: 4, + fixedColumns: 2, + columns: [ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'BSC_FCT_NM', fieldName: 'BSC_FCT_NM', header: { text: '하수\n처리장명' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + { name: 'TOT_AMNT', fieldName: 'TOT_AMNT', header: { text: '합계' } }, + { name: 'P_AMNT', fieldName: 'P_AMNT', header: { text: '자체' } }, + { name: 'O_AMNT', fieldName: 'O_AMNT', header: { text: '외부유입량' } }, + { name: 'OUT_FCT_NM', fieldName: 'OUT_FCT_NM', header: { text: '이송처리장' } }, + { name: 'OUT_AMNT', fieldName: 'OUT_AMNT', header: { text: '이송처리량\n(㎥/년)' } }, + { name: 'DSP_MOIRAT', fieldName: 'DSP_MOIRAT', header: { text: '함수율\n(%,\n탈수기준)' } }, + { name: 'DSP_SM', fieldName: 'DSP_SM', header: { text: '찌꺼기\n처리량\n합계(톤/년)' } }, + { name: 'I_1CH_SM', fieldName: 'I_1CH_SM', header: { text: '자체찌꺼기\n처리량소계' } }, + { name: 'I_1CH_REC', fieldName: 'I_1CH_REC', header: { text: '매립' } }, + { name: 'I_1CH_INC', fieldName: 'I_1CH_INC', header: { text: '소각' } }, + { name: 'I_1CH_INC_2CH_SM', fieldName: 'I_1CH_INC_2CH_SM', header: { text: '소계' } }, + { name: 'I_1CH_INC_2CH_REC', fieldName: 'I_1CH_INC_2CH_REC', header: { text: '매립' } }, + { name: 'I_1CH_INC_2CH_RAW', fieldName: 'I_1CH_INC_2CH_RAW', header: { text: '제품원료' } }, + { name: 'I_1CH_INC_2CH_COV', fieldName: 'I_1CH_INC_2CH_COV', header: { text: '복토재' } }, + { name: 'I_1CH_INC_2CH_FCT', fieldName: 'I_1CH_INC_2CH_FCT', header: { text: '시설(업체명)' } }, + { name: 'I_1CH_SOL', fieldName: 'I_1CH_SOL', header: { text: '고화' } }, + { name: 'I_1CH_SOL_2CH_SM', fieldName: 'I_1CH_SOL_2CH_SM', header: { text: '소계' } }, + { name: 'I_1CH_SOL_2CH_REC', fieldName: 'I_1CH_SOL_2CH_REC', header: { text: '매립' } }, + { name: 'I_1CH_SOL_2CH_COV', fieldName: 'I_1CH_SOL_2CH_COV', header: { text: '복토재' } }, + { name: 'I_1CH_SOL_2CH_FCT', fieldName: 'I_1CH_SOL_2CH_FCT', header: { text: '시설(업체명)' } }, + { name: 'I_1CH_DRY', fieldName: 'I_1CH_DRY', header: { text: '건조' } }, + { name: 'I_1CH_DRY_2CH_SM', fieldName: 'I_1CH_DRY_2CH_SM', header: { text: '소계' } }, + { name: 'I_1CH_DRY_2CH_REC', fieldName: 'I_1CH_DRY_2CH_REC', header: { text: '매립' } }, + { name: 'I_1CH_DRY_2CH_INC', fieldName: 'I_1CH_DRY_2CH_INC', header: { text: '소각' } }, + { name: 'I_1CH_DRY_2CH_FUE', fieldName: 'I_1CH_DRY_2CH_FUE', header: { text: '연료' } }, + { name: 'I_1CH_DRY_2CH_RAW', fieldName: 'I_1CH_DRY_2CH_RAW', header: { text: '제품원료' } }, + { name: 'I_1CH_DRY_2CH_COV', fieldName: 'I_1CH_DRY_2CH_COV', header: { text: '복토재' } }, + { name: 'I_1CH_DRY_2CH_COM', fieldName: 'I_1CH_DRY_2CH_COM', header: { text: '퇴비화' } }, + { name: 'I_1CH_DRY_2CH_FCT', fieldName: 'I_1CH_DRY_2CH_FCT', header: { text: '시설(업체명)' } }, + { name: 'I_1CH_CAR', fieldName: 'I_1CH_CAR', header: { text: '탄화' } }, + { name: 'I_1CH_CAR_2CH_SM', fieldName: 'I_1CH_CAR_2CH_SM', header: { text: '소계' } }, + { name: 'I_1CH_CAR_2CH_INC', fieldName: 'I_1CH_CAR_2CH_INC', header: { text: '소각' } }, + { name: 'I_1CH_CAR_2CH_FUE', fieldName: 'I_1CH_CAR_2CH_FUE', header: { text: '연료' } }, + { name: 'I_1CH_CAR_2CH_FCT', fieldName: 'I_1CH_CAR_2CH_FCT', header: { text: '시설(업체명)' } }, + { name: 'I_1CH_COM', fieldName: 'I_1CH_COM', header: { text: '퇴비화' } }, + { name: 'I_1CH_COM_FCT', fieldName: 'I_1CH_COM_FCT', header: { text: '시설(업체명)' } }, + { name: 'O_CON_SM', fieldName: 'O_CON_SM', header: { text: '소계' } }, + { name: 'O_CON_REC', fieldName: 'O_CON_REC', header: { text: '매립' } }, + { name: 'O_CON_INC', fieldName: 'O_CON_INC', header: { text: '소각' } }, + { name: 'O_CON_FUE1', fieldName: 'O_CON_FUE1', header: { text: '연료' } }, + { name: 'O_CON_RAW', fieldName: 'O_CON_RAW', header: { text: '제품원료' } }, + { name: 'O_CON_COV', fieldName: 'O_CON_COV', header: { text: '복토재' } }, + { name: 'O_CON_COM', fieldName: 'O_CON_COM', header: { text: '퇴비화' } }, + { name: 'O_CON_FCT_NM', fieldName: 'O_CON_FCT_NM', header: { text: '시설(업체명)' } }, + { name: 'OM_1CH_SM', fieldName: 'OM_1CH_SM', header: { text: '수도권광역\n위탁처리량\n(톤/년)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'BSC_FCT_NM', 'YR_GBN', + { + name: 'genAmntGroup', + header: { text: '찌꺼기발생량(톤/년,탈수기준)' }, + items: ['TOT_AMNT', 'P_AMNT', 'O_AMNT'] + }, + 'OUT_FCT_NM', 'OUT_AMNT', 'DSP_MOIRAT', 'DSP_SM', + { + name: 'internalProcessGroup', + header: { text: '자체 찌꺼기 처리량(톤/년)' }, + items: [ + 'I_1CH_SM', 'I_1CH_REC', 'I_1CH_INC', + { name: 'inc2ndGroup', header: { text: '소각 후 처리(2차)' }, items: ['I_1CH_INC_2CH_SM', 'I_1CH_INC_2CH_REC', 'I_1CH_INC_2CH_RAW', 'I_1CH_INC_2CH_COV', 'I_1CH_INC_2CH_FCT'] }, + 'I_1CH_SOL', + { name: 'sol2ndGroup', header: { text: '고화 후 처리(2차)' }, items: ['I_1CH_SOL_2CH_SM', 'I_1CH_SOL_2CH_REC', 'I_1CH_SOL_2CH_COV', 'I_1CH_SOL_2CH_FCT'] }, + 'I_1CH_DRY', + { name: 'dry2ndGroup', header: { text: '건조 후 처리(2차)' }, items: ['I_1CH_DRY_2CH_SM', 'I_1CH_DRY_2CH_REC', 'I_1CH_DRY_2CH_INC', 'I_1CH_DRY_2CH_FUE', 'I_1CH_DRY_2CH_RAW', 'I_1CH_DRY_2CH_COV', 'I_1CH_DRY_2CH_COM', 'I_1CH_DRY_2CH_FCT'] }, + 'I_1CH_CAR', + { name: 'car2ndGroup', header: { text: '탄화 후 처리(2차)' }, items: ['I_1CH_CAR_2CH_SM', 'I_1CH_CAR_2CH_INC', 'I_1CH_CAR_2CH_FUE', 'I_1CH_CAR_2CH_FCT'] }, + + { + name: 'compostGroup', + header: { text: '퇴비화' }, + items: ['I_1CH_COM_FCT'] // 중첩 없이 바로 컬럼 name을 넣어 2단으로 완성 + } + ] + }, + { + name: 'externalProcessGroup', + header: { text: '외부(민간)위탁 처리량(톤/년)' }, + items: ['O_CON_SM', 'O_CON_REC', 'O_CON_INC', 'O_CON_FUE1', 'O_CON_RAW', 'O_CON_COV', 'O_CON_COM', 'O_CON_FCT_NM'] + }, + 'OM_1CH_SM', 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '소화조 운영현황', + rowStartNum: 3, // 3단 헤더 구조 (소화조 운영현황 > 이용현황 > 항목) + columns: [ + /* 1. 기본 시설 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'BSC_FCT_NM', fieldName: 'BSC_FCT_NM', header: { text: '하수\n처리장명' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 소화조 기본 운영 현황 */ + { name: 'DGSTR_FNNC', fieldName: 'DGSTR_FNNC', header: { text: '소화조 유/무\n(Y/N)선택' } }, + { name: 'DGSTR_CPC', fieldName: 'DGSTR_CPC', header: { text: '설계\n용량\n(㎥)' } }, + { name: 'DGSTR_OPR_CPC', fieldName: 'DGSTR_OPR_CPC', header: { text: '실제운전\n용량\n(㎥)' } }, + { name: 'DGSTR_IN', fieldName: 'DGSTR_IN', header: { text: '투입량\n(㎥/일)' } }, + { name: 'DGSTR_TS', fieldName: 'DGSTR_TS', header: { text: '투입 TS 농도\n(%)' } }, + { name: 'DGSTR_YRSTP_RN_DYN', fieldName: 'DGSTR_YRSTP_RN_DYN', header: { text: '가동일수\n(연간)' } }, + { name: 'DGSTR_OCCUR_GAS', fieldName: 'DGSTR_OCCUR_GAS', header: { text: '발생가스량\n(㎥/일)' } }, + + /* 3. 소화가스 이용현황 상세 (단위: ㎥/일) */ + { name: 'DGSTR_SM', fieldName: 'DGSTR_SM', header: { text: '계' } }, + { name: 'DGSTR_SLE', fieldName: 'DGSTR_SLE', header: { text: '판매' } }, + { name: 'DGSTR_ELTGNR', fieldName: 'DGSTR_ELTGNR', header: { text: '발전' } }, + { name: 'DGSTR_ONSLF', fieldName: 'DGSTR_ONSLF', header: { text: '자체활용' } }, + { name: 'DGSTR_ETC', fieldName: 'DGSTR_ETC', header: { text: '기타(CNG등)' } }, + + /* 4. 잉여 가스 및 비고 */ + { name: 'DGSTR_GAS', fieldName: 'DGSTR_GAS', header: { text: '잉여가스량\n(㎥/일)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'BSC_FCT_NM', + 'YR_GBN', + { + name: 'digesterMainGroup', + header: { text: '소화조 운영현황' }, + items: [ + 'DGSTR_FNNC', + 'DGSTR_CPC', + 'DGSTR_OPR_CPC', + 'DGSTR_IN', + 'DGSTR_TS', + 'DGSTR_YRSTP_RN_DYN', + 'DGSTR_OCCUR_GAS', + { + name: 'gasUsageGroup', + header: { text: '소화가스 이용현황(㎥/일)' }, + items: [ + 'DGSTR_SM', + 'DGSTR_SLE', + 'DGSTR_ELTGNR', + 'DGSTR_ONSLF', + 'DGSTR_ETC' + ] + }, + 'DGSTR_GAS' + ] + }, + 'RMK' + ] +}, +{ + tabKey: 'c', + tabLabel: '하수찌꺼기 처리시설 운영현황', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + columns: [ + /* 1. 기본 시설 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'SLG_FCT_NM', fieldName: 'SLG_FCT_NM', header: { text: '찌꺼기처리시설명' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 처리시설 운영현황 상세 */ + { name: 'TRT_METHOD', fieldName: 'TRT_METHOD', header: { text: '처리방식' } }, + { name: 'SLG_FCT_CPC', fieldName: 'SLG_FCT_CPC', header: { text: '시설용량\n(톤/일)' } }, + { name: 'OPR_CPC', fieldName: 'OPR_CPC', header: { text: '연간처리량\n(톤/년)' } }, + { name: 'ODY_RN_TIME', fieldName: 'ODY_RN_TIME', header: { text: '일평균\n가동시간\n(1~24)' } }, + { name: 'YRSTP_RN_DYN', fieldName: 'YRSTP_RN_DYN', header: { text: '연중 가동일\n(1~330)' } }, + { name: 'OPR_RT', fieldName: 'OPR_RT', header: { text: '가동율' } }, + + /* 3. 비고 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'SLG_FCT_NM', + 'YR_GBN', + { + name: 'sludgeFctOprGroup', + header: { text: '처리시설 운영현황' }, + items: [ + 'TRT_METHOD', + 'SLG_FCT_CPC', + 'OPR_CPC', + 'ODY_RN_TIME', + 'YRSTP_RN_DYN', + 'OPR_RT' + ] + }, + 'RMK' + ] +}, +{ + tabKey: 'd', + tabLabel: '분뇨찌꺼기 처리현황', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + columns: [ + /* 1. 기본 시설 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'ECSCS_NM', fieldName: 'ECSCS_NM', header: { text: '분 뇨\n처리장명' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 발생량 지표 */ + { name: 'OCTY', fieldName: 'OCTY', header: { text: '발생량\n(A)=(B)+(C)\n(㎥/년)' } }, + + /* 3. 처분량 상세 (단위: ㎥/년) */ + { name: 'PROCESS_CPCTY_SM', fieldName: 'PROCESS_CPCTY_SM', header: { text: '계(B)' } }, + { name: 'RUSE', fieldName: 'RUSE', header: { text: '재활용' } }, + { name: 'LAND_RCLM', fieldName: 'LAND_RCLM', header: { text: '육상매립' } }, + { name: 'INCNR', fieldName: 'INCNR', header: { text: '소각' } }, + { name: 'OCEAN_DPSL', fieldName: 'OCEAN_DPSL', header: { text: '해양투기' } }, + { name: 'FUEL', fieldName: 'FUEL', header: { text: '연료화' } }, + { name: 'ETC', fieldName: 'ETC', header: { text: '기타' } }, + + /* 4. 미처분량 및 연계 정보 */ + { name: 'CYFD_CPCTY', fieldName: 'CYFD_CPCTY', header: { text: '미처분량\n(이월량)\n(C)\n(㎥/년)' } }, + { name: 'OUT_BSC_FCT_NM', fieldName: 'OUT_BSC_FCT_NM', header: { text: '타시설\n연계여부' } }, + + /* 5. 비고 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + { name: 'CHCKER_OPINION', fieldName: 'CHCKER_OPINION', header: { text: '검토자의견' } }, + { name: 'WRTER_OPINION', fieldName: 'WRTER_OPINION', header: { text: '사용자의견' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'ECSCS_NM', + 'YR_GBN', + 'OCTY', + { + name: 'disposalAmntGroup', + header: { text: '처 분 량(㎥/년)' }, + items: [ + 'PROCESS_CPCTY_SM', + 'RUSE', + 'LAND_RCLM', + 'INCNR', + 'OCEAN_DPSL', + 'FUEL', + 'ETC' + ] + }, + 'CYFD_CPCTY', + 'OUT_BSC_FCT_NM', + 'RMK' + ] +} +]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewagePipeColumnRvw.ts b/apps/st/src/components/util/column/SewagePipeColumnRvw.ts new file mode 100644 index 000000000..06ab07daf --- /dev/null +++ b/apps/st/src/components/util/column/SewagePipeColumnRvw.ts @@ -0,0 +1,367 @@ +const baseYear = new Date().getFullYear(); +export const SewagePipeColumnInfoListRvw = [ + + { + tabKey: 'a', + tabLabel: '지역별 시설현황', + rowStartNum: 2, // Header가 4줄이므로 데이터 시작은 4행부터 + fixedColumns: 1, // 순번, 시도, 시군구, 행정구역명, 행정코드까지 고정 + columns: [ + /* 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + + /* 하수정비 기본계획 */ + { name: 'TARGET_YR', fieldName: 'TARGET_YR', header: { text: '하수정보기본계획목표연도' } }, + { name: 'PIPL_IMPRMN_PLAN_EXTN', fieldName: 'PIPL_IMPRMN_PLAN_EXTN', header: { text: '총관로정비\n계획연장(m)' } }, + { name: 'PIPL_PLAN_EXTN', fieldName: 'PIPL_PLAN_EXTN', header: { text: '총계획연장(m)' } }, + { name: 'PIPL_FCLTY_EXTN', fieldName: 'PIPL_FCLTY_EXTN', header: { text: '총시설연장(m)' } }, + { name: 'PIPL_SUPPRT', fieldName: 'PIPL_SUPPRT', header: { text: '하수관로\n보급률(%)' } }, + + /* 합류식(m) */ + { name: 'CMBN_PLAN_AR', fieldName: 'CMBN_PLAN_AR', header: { text: '관로정비\n계획면적(㎢)' } }, + { name: 'CMBN_IMPRMN_PLAN_EXTN', fieldName: 'CMBN_IMPRMN_PLAN_EXTN', header: { text: '관로정비\n계획연장(m)' } }, + { name: 'CMBN_PLAN_EXTN', fieldName: 'CMBN_PLAN_EXTN', header: { text: '계획연장(m)' } }, + { name: 'CMBN_FCLTY_EXTN', fieldName: 'CMBN_FCLTY_EXTN', header: { text: '시설연장(m)' } }, + { name: 'CMBN_RCTGL_EXTN', fieldName: 'CMBN_RCTGL_EXTN', header: { text: '사각형(m)' } }, + { name: 'CMBN_CICLE_EXTN', fieldName: 'CMBN_CICLE_EXTN', header: { text: '원형(m)' } }, + { name: 'CMBN_OPSWR_EXTN', fieldName: 'CMBN_OPSWR_EXTN', header: { text: '개거(m)' } }, + { name: 'CMBN_SDGTTR_EXTN', fieldName: 'CMBN_SDGTTR_EXTN', header: { text: '측구(m)' } }, + + /* 분류식 - 오수관로 */ + { name: 'PLTWTR_PLAN_AR', fieldName: 'PLTWTR_PLAN_AR', header: { text: '관로정비\n계획면적(㎢)' } }, + { name: 'PLTWTR_IMPRMN_PLAN_EXTN', fieldName: 'PLTWTR_IMPRMN_PLAN_EXTN', header: { text: '관로정비\n계획연장(m)' } }, + { name: 'PLTWTR_PLAN_EXTN', fieldName: 'PLTWTR_PLAN_EXTN', header: { text: '계획연장(m)' } }, + { name: 'PLTWTR_FLCTY_EXTN', fieldName: 'PLTWTR_FLCTY_EXTN', header: { text: '시설연장(m)' } }, + { name: 'PLTWTR_SQRE_EXTN', fieldName: 'PLTWTR_SQRE_EXTN', header: { text: '사각형(m)' } }, + { name: 'PLTWTR_CICL_EXTN', fieldName: 'PLTWTR_CICL_EXTN', header: { text: '원형(m)' } }, + + /* 분류식 - 우수관로 */ + { name: 'RAINWTR_PLAN_AR', fieldName: 'RAINWTR_PLAN_AR', header: { text: '관로정비\n계획면적(㎢)' } }, + { name: 'RAINWTR_IMPRMN_PLAN_EXTN', fieldName: 'RAINWTR_IMPRMN_PLAN_EXTN', header: { text: '관로정비\n계획연장(m)' } }, + { name: 'RAINWTR_PLAN_EXTN', fieldName: 'RAINWTR_PLAN_EXTN', header: { text: '계획연장(m)' } }, + { name: 'RAINWTR_FLCTY_EXTN', fieldName: 'RAINWTR_FLCTY_EXTN', header: { text: '시설연장(m)' } }, + { name: 'RAINWTR_SQRE_EXTN', fieldName: 'RAINWTR_SQRE_EXTN', header: { text: '사각형(m)' } }, + { name: 'RAINWTR_CICL_EXTN', fieldName: 'RAINWTR_CICL_EXTN', header: { text: '원형(m)' } }, + { name: 'RAINWTR_OPSWR_EXTN', fieldName: 'RAINWTR_OPSWR_EXTN', header: { text: '개거(m)' } }, + { name: 'RAINWTR_SDGTTR_EXTN', fieldName: 'RAINWTR_SDGTTR_EXTN', header: { text: '측구(m)' } }, + + /* 부속시설 */ + { name: 'MNHLE_SITE', fieldName: 'MNHLE_SITE', header: { text: '합류식맨홀(개소)' } }, + { name: 'PLTWTR_MNHLE_SITE', fieldName: 'PLTWTR_MNHLE_SITE', header: { text: '오수맨홀(개소)' } }, + { name: 'RAINWTR_MNHLE_SITE', fieldName: 'RAINWTR_MNHLE_SITE', header: { text: '우수맨홀(개소)' } }, + { name: 'PLTWTR_RCVR_SITE', fieldName: 'PLTWTR_RCVR_SITE', header: { text: '오수받이(개소)' } }, + { name: 'RAINWTR_RCVR_SITE', fieldName: 'RAINWTR_RCVR_SITE', header: { text: '빗물받이(개소)' } }, + { name: 'SOILSPLL_SITE', fieldName: 'SOILSPLL_SITE', header: { text: '우수토실(개소)' } }, + { name: 'SOILHOLE_SITE', fieldName: 'SOILHOLE_SITE', header: { text: '우수토구(개소)' } }, + + /* 대장 및 기타 */ + { name: 'SEWER_REGSTR_CMPT_EXTN', fieldName: 'SEWER_REGSTR_CMPT_EXTN', header: { text: '하수도대장전산화연장(m)' } }, + { name: 'SEWER_REGSTR_CMPT_RT', fieldName: 'SEWER_REGSTR_CMPT_RT', header: { text: '하수도대장전산화율(%)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'areaGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'TARGET_YR', + 'PIPL_IMPRMN_PLAN_EXTN', + 'PIPL_PLAN_EXTN', + 'PIPL_FCLTY_EXTN', + 'PIPL_SUPPRT', + { + name: 'combinedGroup', + header: { text: '합류식(m)' }, + items: [ + 'CMBN_PLAN_AR', 'CMBN_IMPRMN_PLAN_EXTN', 'CMBN_PLAN_EXTN', 'CMBN_FCLTY_EXTN', + { name: 'cmbnAmGroup', header: { text: '암거' }, items: ['CMBN_RCTGL_EXTN', 'CMBN_CICLE_EXTN'] }, + 'CMBN_OPSWR_EXTN', 'CMBN_SDGTTR_EXTN' + ], + }, + { + name: 'sepGroup', + header: { text: '분류식(m)' }, + items: [ + { + name: 'foulPipeGroup', + header: { text: '오수관로' }, + items: ['PLTWTR_PLAN_AR', 'PLTWTR_IMPRMN_PLAN_EXTN', 'PLTWTR_PLAN_EXTN', 'PLTWTR_FLCTY_EXTN', + { name: 'foulAmGroup', header: { text: '암거' }, items: ['PLTWTR_SQRE_EXTN', 'PLTWTR_CICL_EXTN'] }] + }, + { + name: 'rainPipeGroup', + header: { text: '우수관로' }, + items: ['RAINWTR_PLAN_AR', 'RAINWTR_IMPRMN_PLAN_EXTN', 'RAINWTR_PLAN_EXTN', 'RAINWTR_FLCTY_EXTN', + { name: 'rainAmGroup', header: { text: '암거' }, items: ['RAINWTR_SQRE_EXTN', 'RAINWTR_CICL_EXTN'] }, + 'RAINWTR_OPSWR_EXTN', 'RAINWTR_SDGTTR_EXTN'] + } + ], + }, + 'MNHLE_SITE', + { + name: 'fcltyGroup', + header: { text: '부속시설(개소)' }, + items: [ 'PLTWTR_MNHLE_SITE', 'RAINWTR_MNHLE_SITE'], + }, + , 'PLTWTR_RCVR_SITE', 'RAINWTR_RCVR_SITE', 'SOILSPLL_SITE', 'SOILHOLE_SITE','SEWER_REGSTR_CMPT_EXTN', 'SEWER_REGSTR_CMPT_RT', + 'RMK' + ] + }, + // SewagePipeColumnInfoListRvw 배열에 두 번째 객체로 추가하시면 됩니다. +{ + tabKey: 'b', + tabLabel: '시설별 설치현황', + rowStartNum: 5, // 4단 헤더 구조 반영 + fixedColumns: 4, // 순번, 시도, 시군구, 행정구역명, 처리장코드, 처리장명, 용량, 구분까지 고정 + columns: [ + /* 기본 정보 및 처리장 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: '구분', fieldName: '구분', header: { text: '구분' } }, + { name: '하수처리장명', fieldName: '하수처리장명', header: { text: '하수처리장명' } }, + { name: 'FCT_CPC', fieldName: 'FCT_CPC', header: { text: '하수처리\n시설용량\n(㎥/일)' } }, + + /* 처리구역면적(㎢) */ + { name: 'PROC_ZONE_SM', fieldName: 'PROC_ZONE_SM', header: { text: '합계' } }, + { name: 'CMBN_PROC_ZONE_AR', fieldName: 'CMBN_PROC_ZONE_AR', header: { text: '합류식' } }, + { name: 'SPRT_PROC_ZONE_AR', fieldName: 'SPRT_PROC_ZONE_AR', header: { text: '분류식' } }, + + /* 분류식화 (계산 필드용) */ + { name: 'SEP_RATE', fieldName: 'SEP_RATE', header: { text: '분류식화' } }, + + /* 배수설비(개소) */ + { name: 'DRNG_EQP_SM', fieldName: 'DRNG_EQP_SM', header: { text: '합계' } }, + { name: 'CMBN_DRNG_EQP', fieldName: 'CMBN_DRNG_EQP', header: { text: '합류식' } }, + { name: 'SPRT_DRNG_EQP_SM', fieldName: 'SPRT_DRNG_EQP_SM', header: { text: '합계(분류)' } }, + { name: 'SPRT_DRNG_EQP_CNNC', fieldName: 'SPRT_DRNG_EQP_CNNC', header: { text: '연결' } }, + { name: 'SPRT_DRNG_EQP_DCNNC', fieldName: 'SPRT_DRNG_EQP_DCNNC', header: { text: '미연결' } }, + + /* 하수관로 상세 */ + { name: 'PIPL_FCLTY_EXTN', fieldName: 'PIPL_FCLTY_EXTN', header: { text: '총\n시설연장\n(m)' } }, + + /* 차집/오수간선(m) */ + { name: 'ICG_MNN_SM', fieldName: 'ICG_MNN_SM', header: { text: '합계' } }, + { name: 'ICG_EXTN', fieldName: 'ICG_EXTN', header: { text: '차집' } }, + { name: 'MNN_EXTN', fieldName: 'MNN_EXTN', header: { text: '오수간선' } }, + + /* 토실/토구(개소) */ + { name: '합류식', fieldName: '합류식', header: { text: '합류식' } }, + { name: 'CMBN_SOILHOLE_SITE', fieldName: 'CMBN_SOILHOLE_SITE', header: { text: '우수토실(합류)' } }, + { name: 'SPRT_SOILHOLE_SITE', fieldName: 'SPRT_SOILHOLE_SITE', header: { text: '우수토실(분류)' } }, + { name: 'SPRT_SOILSPLL_SITE', fieldName: 'SPRT_SOILSPLL_SITE', header: { text: '우수토구(분류)' } }, + + /* 지선(m) */ + { name: 'BRNCHLN_SM', fieldName: 'BRNCHLN_SM', header: { text: '합계' } }, + { name: 'CMBN_BRNCHLN_EXTN', fieldName: 'CMBN_BRNCHLN_EXTN', header: { text: '합류식' } }, + { name: 'RAINWTR_BRNCHLN_EXTN', fieldName: 'RAINWTR_BRNCHLN_EXTN', header: { text: '우수' } }, + { name: 'PLTWTR_BRNCHLN_EXTN', fieldName: 'PLTWTR_BRNCHLN_EXTN', header: { text: '오수' } }, + + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, +'하수처리장명', + 'FCT_CPC', + '구분', + { + name: 'areaGroup', + header: { text: '처리구역면적(㎢)' }, + items: ['PROC_ZONE_SM', 'CMBN_PROC_ZONE_AR', 'SPRT_PROC_ZONE_AR'], + }, + 'SEP_RATE', + { + name: 'drainGroup', + header: { text: '배수설비(개소)' }, + items: [ + 'DRNG_EQP_SM', + 'CMBN_DRNG_EQP', + { + name: 'sepDrainGroup', + header: { text: '분류식' }, + items: ['SPRT_DRNG_EQP_SM', 'SPRT_DRNG_EQP_CNNC', 'SPRT_DRNG_EQP_DCNNC'] + } + ], + }, + { + name: 'pipeGroup', + header: { text: '하수관로' }, + items: [ + 'PIPL_FCLTY_EXTN', + { + name: 'trunkGroup', + header: { text: '차집/오수간선(m)' }, + items: ['ICG_MNN_SM', 'ICG_EXTN', 'MNN_EXTN'] + }, + { + name: 'siteGroup', + header: { text: '토실/토구(개소)' }, + items: [ + { + // '합류식' 그룹 생성 + name: 'cmbnSiteGroup', + header: { text: '합류식' }, + items: [ + // '우수토실' 컬럼 (name이 'CMBN_SOILHOLE_SITE'인 컬럼의 헤더 텍스트를 '우수토실'로 매핑) + 'CMBN_SOILHOLE_SITE' + ] + }, + { + // '분류식' 그룹 + name: 'sepSiteGroup', + header: { text: '분류식' }, + items: ['SPRT_SOILHOLE_SITE', 'SPRT_SOILSPLL_SITE'] + } + ] + }, + { + name: 'branchGroup', + header: { text: '지선(m)' }, + items: [ + 'BRNCHLN_SM', + 'CMBN_BRNCHLN_EXTN', + { + name: 'sepBranchGroup', + header: { text: '분류식' }, + items: ['RAINWTR_BRNCHLN_EXTN', 'PLTWTR_BRNCHLN_EXTN'] + } + ] + } + ], + }, + 'RMK' + ] +}, + +{ + tabKey: 'c', + tabLabel: '관종별 현황', + rowStartNum: 2, + fixedColumns: 3, // 순번, 시도, 시군구, 행정구역명, 행정코드, 관종, 구분 + columns: [ + /* 기본 정보 */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + + + { name: 'SWRG_PIPE_NM', fieldName: 'SWRG_PIPE_NM', header: { text: '관종' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 총계 영역 */ + { name: 'TOTAL_EXTN_SUM', fieldName: 'TOTAL_EXTN_SUM', header: { text: '계' } }, + { name: 'LAYING_EXTN_SUM', fieldName: 'LAYING_EXTN_SUM', header: { text: '매설연장(m)' } }, + { name: 'REMVL_EXTN_SUM', fieldName: 'REMVL_EXTN_SUM', header: { text: '철거연장(m)' } }, + + /* 연도별 데이터 세트 (30Y ~ 01Y 반복) */ + // XML 로직에 따라 30Y부터 01Y까지 순차적으로 생성합니다. + ...Array.from({ length: 30 }, (_, i) => { + const yNum = (30 - i).toString().padStart(2, '0'); // 30, 29, ..., 01 + return [ + { name: `TOTAL_EXTN_${yNum}Y`, fieldName: `TOTAL_EXTN_${yNum}Y`, header: { text: '계' } }, + { name: `LAYING_EXTN_${yNum}Y`, fieldName: `LAYING_EXTN_${yNum}Y`, header: { text: '매설연장(m)' } }, + { name: `REMVL_EXTN_${yNum}Y`, fieldName: `REMVL_EXTN_${yNum}Y`, header: { text: '철거연장(m)' } } + ]; + }).flat(), + + /* 당해년도 및 비고 */ + { name: 'LAYING_EXTN', fieldName: 'LAYING_EXTN', header: { text: '매설연장(m)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + + 'SWRG_PIPE_NM', + 'YR_GBN', + { + name: 'summaryGroup', + header: { text: '총계' }, + items: ['TOTAL_EXTN_SUM', 'LAYING_EXTN_SUM', 'REMVL_EXTN_SUM'], + }, + /* 반복 루프 수정 */ + ...Array.from({ length: 30 }, (_, i) => { + const yrOffset = 29 - i; // 29, 28, 27... 순서 + const yNum = (30 - i).toString().padStart(2, '0'); + + // [수정 포인트] 이미지(image_5444d1.png)처럼 무조건 "-XX년" 형식으로 표시 + // 만약 29년 이전만 "XXXX년이전"으로 하고 싶다면 기존 로직 유지 + const headerText = `-${yrOffset}년`; + + return { + name: `yr${yNum}Group`, + header: { text: headerText }, + items: [`TOTAL_EXTN_${yNum}Y`, `LAYING_EXTN_${yNum}Y`, `REMVL_EXTN_${yNum}Y`] + }; + }), + { + name: 'currentYrGroup', + header: { text: `${baseYear}년` }, + items: ['LAYING_EXTN'], + }, + 'RMK' + ] +}, +{ + tabKey: 'd', + tabLabel: '관경별 현황', + rowStartNum: 2, + fixedColumns: 3, // 순번, 시도, 구군, 읍면동, 행정코드, 관종, 구분까지 고정 + columns: [ + /* 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '구군' } }, + { name: 'SWRG_PIPE_NM', fieldName: 'SWRG_PIPE_NM', header: { text: '관종' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 총계 */ + { name: 'TOTAL_EXTN_M', fieldName: 'TOTAL_EXTN_M', header: { text: '총계(m)' } }, + + /* 원형(m) 관경별 상세 */ + { name: 'UNDER_200', fieldName: 'UNDER_200', header: { text: '200mm 미만' } }, + { name: 'OVER_200_UNDEV_300', fieldName: 'OVER_200_UNDEV_300', header: { text: '200mm이상~\n300mm미만' } }, + { name: 'OVER_300_UNDEV_500', fieldName: 'OVER_300_UNDEV_500', header: { text: '300mm이상~\n500mm미만' } }, + { name: 'OVER_500_UNDEV_800', fieldName: 'OVER_500_UNDEV_800', header: { text: '500mm이상~\n800mm미만' } }, // SQL상 OVER_500_UNDEV_500 오타 대응 + { name: 'OVER_800', fieldName: 'OVER_800', header: { text: '800mm 이상' } }, + + /* 사각형 및 기타 */ + { name: 'BOX', fieldName: 'BOX', header: { text: '사각형(m)' } }, + { name: 'ETC', fieldName: 'ETC', header: { text: '기타\n(측구/개거 등)' } }, + + /* 의견 및 비고 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'SWRG_PIPE_NM', + 'YR_GBN', + 'TOTAL_EXTN_M', + { + name: 'circleGroup', + header: { text: '원형(m)' }, + items: [ + 'UNDER_200', + 'OVER_200_UNDEV_300', + 'OVER_300_UNDEV_500', + 'OVER_500_UNDEV_800', + 'OVER_800' + ], + }, + 'BOX', + 'ETC', + 'RMK', + ] +} +] \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts b/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts new file mode 100644 index 000000000..c933ebead --- /dev/null +++ b/apps/st/src/components/util/column/SewagePipeMaintainColumnRvw.ts @@ -0,0 +1,164 @@ + +export const SewagePipeMaintainColumnInfoListRvw = [ + { + tabKey: 'a', + tabLabel: '개보수', + rowStartNum: 4, // XML의 rowspan="4" 반영 + fixedColumns: 2, // 순번, 시도, 시군구, 행정코드, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 전체보수 (단위: m) */ + { name: 'RPAIR_PIPE_SM', fieldName: 'RPAIR_PIPE_SM', header: { text: '계' } }, + { name: 'RPAIR_CMBN_PIPE', fieldName: 'RPAIR_CMBN_PIPE', header: { text: '합류식' } }, + { name: 'RPAIR_RAINWTR_PIPE', fieldName: 'RPAIR_RAINWTR_PIPE', header: { text: '우수' } }, + { name: 'RPAIR_PLTWTR_PIPE', fieldName: 'RPAIR_PLTWTR_PIPE', header: { text: '오수' } }, + + /* 3. 부분보수 (단위: 개소) */ + { name: 'RPAIR_PIPE_SM2', fieldName: 'RPAIR_PIPE_SM2', header: { text: '계' } }, + { name: 'RPAIR_CMBN_PIPE2', fieldName: 'RPAIR_CMBN_PIPE2', header: { text: '합류식' } }, + { name: 'RPAIR_RAINWTR_PIPE2', fieldName: 'RPAIR_RAINWTR_PIPE2', header: { text: '우수' } }, + { name: 'RPAIR_PLTWTR_PIPE2', fieldName: 'RPAIR_PLTWTR_PIPE2', header: { text: '오수' } }, + + /* 4. 부속시설 (개소) */ + { name: 'MNHLE_SITE', fieldName: 'MNHLE_SITE', header: { text: '합류식\n맨홀' } }, + { name: 'PLTWTR_MNHLE_SITE', fieldName: 'PLTWTR_MNHLE_SITE', header: { text: '오수맨홀' } }, + { name: 'RAINWTR_MNHLE_SITE', fieldName: 'RAINWTR_MNHLE_SITE', header: { text: '우수맨홀' } }, + { name: 'PLTWTR_RCVR_SITE', fieldName: 'PLTWTR_RCVR_SITE', header: { text: '오수받이(개소)' } }, + { name: 'RAINWTR_RCVR_SITE', fieldName: 'RAINWTR_RCVR_SITE', header: { text: '빗물받이(개소)' } }, + { name: 'SOILHOLE_SITE', fieldName: 'SOILHOLE_SITE', header: { text: '토실(개소)' } }, + { name: 'SOILSPLL_SITE', fieldName: 'SOILSPLL_SITE', header: { text: '토구(개소)' } }, + + /* 5. 조사량 및 비고 */ + { name: 'CCTV', fieldName: 'CCTV', header: { text: '수밀검사·\nCCTV조사량\n(m)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'YR_GBN', + { + name: 'mtcPipeGroup', + header: { text: '개·보수관로' }, + items: [ + { + name: 'totalRepairGroup', + header: { text: '전체보수(m)' }, + items: [ + 'RPAIR_PIPE_SM', + 'RPAIR_CMBN_PIPE', + { name: 'sepTotalGroup', header: { text: '분류식' }, items: ['RPAIR_RAINWTR_PIPE', 'RPAIR_PLTWTR_PIPE'] } + ] + }, + { + name: 'partRepairGroup', + header: { text: '부분보수(개소)' }, + items: [ + 'RPAIR_PIPE_SM2', + 'RPAIR_CMBN_PIPE2', + { name: 'sepPartGroup', header: { text: '분류식' }, items: ['RPAIR_RAINWTR_PIPE2', 'RPAIR_PLTWTR_PIPE2'] } + ] + } + ] + }, + 'MNHLE_SITE', + { + name: 'sepMnhleGroup', + header: { text: '분류식' }, + items: ['PLTWTR_MNHLE_SITE', 'RAINWTR_MNHLE_SITE'] + }, + 'PLTWTR_RCVR_SITE', + 'RAINWTR_RCVR_SITE', + 'SOILHOLE_SITE', + 'SOILSPLL_SITE', + 'CCTV', + 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '관로준설', + rowStartNum: 4, // XML의 rowspan="4" 및 4단 헤더 반영 + fixedColumns: 3, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 시설 기본 정보 */ + { name: 'PIPL_FCLTY_EXTN', fieldName: 'PIPL_FCLTY_EXTN', header: { text: '하수관로\n총시설연장\n(m)' } }, + + /* 3. 준설연장 및 개소수 */ + { name: 'DRDG_PIPE_SM', fieldName: 'DRDG_PIPE_SM', header: { text: '합계' } }, + { name: 'DRDG_CMBN_PIPE', fieldName: 'DRDG_CMBN_PIPE', header: { text: '합류식' } }, + { name: 'DRDG_RAINWTR_PIPE', fieldName: 'DRDG_RAINWTR_PIPE', header: { text: '우수' } }, + { name: 'DRDG_PLTWTR_PIPE', fieldName: 'DRDG_PLTWTR_PIPE', header: { text: '오수' } }, + { name: 'MNHLE_SITE', fieldName: 'MNHLE_SITE', header: { text: '맨홀\n(개소)' } }, + { name: 'PLTWTR_RCVR_SITE', fieldName: 'PLTWTR_RCVR_SITE', header: { text: '오·우수받이\n(개소)' } }, + { name: 'SOILSPLL_SOILHOLE_SITE', fieldName: 'SOILSPLL_SOILHOLE_SITE', header: { text: '토실·토구\n(개소)' } }, + + /* 4. 준설 계획 및 율 */ + { name: 'DRDG_TRGET_EXTN', fieldName: 'DRDG_TRGET_EXTN', header: { text: '준설 계획\n연장(m)' } }, + { name: 'DRDG_TRGET_RT', fieldName: 'DRDG_TRGET_RT', header: { text: '계획대비\n준설율\n(%)' } }, + { name: 'PIPL_FCLTY_RT', fieldName: 'PIPL_FCLTY_RT', header: { text: '준설계획\n연장대비\n준설율(%)' } }, + + /* 5. 준설실적 */ + { name: 'DRDG_ACMSLT_AMOUNT', fieldName: 'DRDG_ACMSLT_AMOUNT', header: { text: '금액\n(백만원)' } }, + { name: 'DRDG_ACMSLT_QY', fieldName: 'DRDG_ACMSLT_QY', header: { text: '준설량\n(㎥)' } }, + + /* 6. 준설토사처리 */ + { name: 'DRDG_ACMSLT_UNTPC', fieldName: 'DRDG_ACMSLT_UNTPC', header: { text: '준설토\n처리비\n(백만원)' } }, + { name: 'DRDG_ETND_SM', fieldName: 'DRDG_ETND_SM', header: { text: '처리량 계\n(톤)' } }, + { name: 'RCLM', fieldName: 'RCLM', header: { text: '매립' } }, + { name: 'OCEAN_DPSL', fieldName: 'OCEAN_DPSL', header: { text: '해양투기' } }, + { name: 'RUSE', fieldName: 'RUSE', header: { text: '재활용' } }, + { name: 'ETC', fieldName: 'ETC', header: { text: '기타\n(소각, 고형화,\n시멘트원료 등)' } }, + + /* 7. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'YR_GBN', + 'PIPL_FCLTY_EXTN', + { + name: 'drdgGroup', + header: { text: '준설연장 및 개소수' }, + items: [ + { + name: 'pipeLenGroup', + header: { text: '관로(m)' }, + items: [ + 'DRDG_PIPE_SM', 'DRDG_CMBN_PIPE', + { name: 'sepRepairGroup', header: { text: '분류식' }, items: ['DRDG_RAINWTR_PIPE', 'DRDG_PLTWTR_PIPE'] } + ] + }, + 'MNHLE_SITE', 'PLTWTR_RCVR_SITE', 'SOILSPLL_SOILHOLE_SITE' + ] + }, + 'DRDG_TRGET_EXTN', 'DRDG_TRGET_RT', 'PIPL_FCLTY_RT', + { + name: 'acmsltGroup', + header: { text: '준설실적' }, + items: ['DRDG_ACMSLT_AMOUNT', 'DRDG_ACMSLT_QY'] + }, + { + name: 'processGroup', + header: { text: '준설토사처리' }, + items: ['DRDG_ACMSLT_UNTPC', 'DRDG_ETND_SM', 'RCLM', 'OCEAN_DPSL', 'RUSE', 'ETC'] + }, + 'RMK' + ] +} +]; 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 diff --git a/apps/st/src/components/util/column/SewerageFinanceColumnRvw.ts b/apps/st/src/components/util/column/SewerageFinanceColumnRvw.ts new file mode 100644 index 000000000..c0beeae20 --- /dev/null +++ b/apps/st/src/components/util/column/SewerageFinanceColumnRvw.ts @@ -0,0 +1,301 @@ +export const SewerageFinanceInfoListRvw= [ + { + tabKey: 'a', + tabLabel: '하수도재정 결산', + rowStartNum: 3, // 3단 헤더 구조 반영 + fixedColumns: 1, // 순번, 시도, 시군구, 행정코드, 구분까지 고정 + columns: [ + /* 1. 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + + /* 2. 재정별 사업비 (수입/재원) */ + { name: 'FNANC_WCT_SM', fieldName: 'FNANC_WCT_SM', header: { text: '계' } }, + { name: 'NTNXPN', fieldName: 'NTNXPN', header: { text: '중앙정부\n지원액' } }, + { name: 'LCLEXPNS', fieldName: 'LCLEXPNS', header: { text: '특․광역시, 도' } }, + { name: 'LCLTY_CT', fieldName: 'LCLTY_CT', header: { text: '시,군,구 지자체' } }, + { name: 'SEWER_RNTFEE', fieldName: 'SEWER_RNTFEE', header: { text: '하수도\n사용료' } }, + { name: 'AMNTBRNCSR', fieldName: 'AMNTBRNCSR', header: { text: '원인자\n부담금' } }, + { name: 'ETC_INCME', fieldName: 'ETC_INCME', header: { text: '기타\n잡수입' } }, + { name: 'CYFD_AMOUNT', fieldName: 'CYFD_AMOUNT', header: { text: '이월액' } }, + + /* 3. 부채액 */ + { name: 'DEBT_AMOUNT', fieldName: 'DEBT_AMOUNT', header: { text: '부채액\n(백만원)' } }, + + /* 4. 용도별 사업비 (지출) */ + { name: 'PRPOS_WCT_SM', fieldName: 'PRPOS_WCT_SM', header: { text: '계' } }, + + // 처리장 상세 + { name: 'PRCPLT_SM', fieldName: 'PRCPLT_SM', header: { text: '소계' } }, + { name: 'PRCPLT_FCLTY', fieldName: 'PRCPLT_FCLTY', header: { text: '시설비' } }, + { name: 'PRCPLT_RPAIR', fieldName: 'PRCPLT_RPAIR', header: { text: '개보수비' } }, + { name: 'PRCPLT_ORPNS', fieldName: 'PRCPLT_ORPNS', header: { text: '운영\n유지비' } }, + { name: 'PRCPLT_ETC', fieldName: 'PRCPLT_ETC', header: { text: '기타' } }, + + // 하수관로 상세 + { name: 'SEWAGE_SM', fieldName: 'SEWAGE_SM', header: { text: '소계' } }, + { name: 'SEWAGE_FCLTY', fieldName: 'SEWAGE_FCLTY', header: { text: '시설비' } }, + { name: 'SEWAGE_RPAIR', fieldName: 'SEWAGE_RPAIR', header: { text: '개보수비' } }, + { name: 'SEWAGE_ORPNS', fieldName: 'SEWAGE_ORPNS', header: { text: '운영\n유지비' } }, + { name: 'SEWAGE_ETC', fieldName: 'SEWAGE_ETC', header: { text: '기타' } }, + + // 유수지 및 배수펌프장 상세 + { name: 'SWGE_STRGE_SM', fieldName: 'SWGE_STRGE_SM', header: { text: '소계' } }, + { name: 'SWGE_STRGE_FCLTY', fieldName: 'SWGE_STRGE_FCLTY', header: { text: '시설비' } }, + { name: 'SWGE_STRGE_RPAIR', fieldName: 'SWGE_STRGE_RPAIR', header: { text: '개보수비' } }, + { name: 'SWGE_STRGE_ORPNS', fieldName: 'SWGE_STRGE_ORPNS', header: { text: '운영\n유지비' } }, + { name: 'SWGE_STRGE_ETC', fieldName: 'SWGE_STRGE_ETC', header: { text: '기타' } }, + + // 기타 지출 + { name: 'ETC_SM', fieldName: 'ETC_SM', header: { text: '소계' } }, + { name: 'ACDNT_CYFD_AMOUNT', fieldName: 'ACDNT_CYFD_AMOUNT', header: { text: '사고\n이월액' } }, + { name: 'UNRCIV_AMOUNT', fieldName: 'UNRCIV_AMOUNT', header: { text: '미수납액' } }, + { name: 'ETC_AMOUNT', fieldName: 'ETC_AMOUNT', header: { text: '기타' } }, + + /* 5. 비고 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + { + name: 'financeGroup', + header: { text: '재정별 사업비(백만원)' }, + items: [ + 'FNANC_WCT_SM', 'NTNXPN', + { name: 'localGroup', header: { text: '지방비' }, items: ['LCLEXPNS', 'LCLTY_CT'] }, + 'SEWER_RNTFEE', 'AMNTBRNCSR', 'ETC_INCME', 'CYFD_AMOUNT' + ] + }, + 'DEBT_AMOUNT', + { + name: 'usageGroup', + header: { text: '용도별사업비(백만원)' }, + items: [ + 'PRPOS_WCT_SM', + { name: 'plantGroup', header: { text: '처리장' }, items: ['PRCPLT_SM', 'PRCPLT_FCLTY', 'PRCPLT_RPAIR', 'PRCPLT_ORPNS', 'PRCPLT_ETC'] }, + { name: 'pipeGroup', header: { text: '하수관로' }, items: ['SEWAGE_SM', 'SEWAGE_FCLTY', 'SEWAGE_RPAIR', 'SEWAGE_ORPNS', 'SEWAGE_ETC'] }, + { name: 'storageGroup', header: { text: '하수저류시설' }, items: ['SWGE_STRGE_SM', 'SWGE_STRGE_FCLTY', 'SWGE_STRGE_RPAIR', 'SWGE_STRGE_ORPNS', 'SWGE_STRGE_ETC'] }, + { name: 'etcUsageGroup', header: { text: '기타' }, items: ['ETC_SM', 'ACDNT_CYFD_AMOUNT', 'UNRCIV_AMOUNT', 'ETC_AMOUNT'] } + ] + }, + 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '하수도 요금', + rowStartNum: 2, // 2단 헤더 구조 반영 + fixedColumns: 1, // 순번, 시도, 시군구, 행정코드까지 고정 + columns: [ + /* 1. 행정 및 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + /* 2. 요금 분석 데이터 */ + { + name: 'FYER_LEVY_QY', + fieldName: 'FYER_LEVY_QY', + header: { text: '연간조정량\n(㎥)\n(A)' } + }, + { + name: 'LEVY_AMOUNT', + fieldName: 'LEVY_AMOUNT', + header: { text: '하수도사용료수익\n(원)\n(B)' } + }, + { + name: 'AVRG_UNTPC', + fieldName: 'AVRG_UNTPC', + header: { text: '㎥당요금(원/㎥)\nC=(B/A)' } + }, + { + name: 'SMRIZE_PRMPC', + fieldName: 'SMRIZE_PRMPC', + header: { text: '총괄원가(원)\n(D)' } + }, + { + name: 'SMRIZE_UNIT_PRMPC', + fieldName: 'SMRIZE_UNIT_PRMPC', + header: { text: '㎥당원가(원/㎥)\nE=(D/A)' } + }, + { + name: 'RLTY_RT', + fieldName: 'RLTY_RT', + header: { text: '요금현실화율(%)\nF=(C/E*100)' } + }, + + /* 3. 기타 및 의견 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } + ], + columnLayout: [ + { + name: 'addrGroup', + header: { text: '행정구역' }, + items: ['SIDO', 'GUGUN'], + }, + 'FYER_LEVY_QY', + 'LEVY_AMOUNT', + 'AVRG_UNTPC', + 'SMRIZE_PRMPC', + 'SMRIZE_UNIT_PRMPC', + 'RLTY_RT', + 'RMK' + ] +}, +{ + tabKey: 'c', + tabLabel: '하수도 사용료', + rowStartNum: 2, + fixedColumns: 1, + columns: [ + /* 1. 기본 정보 */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + + /* 2. 데이터 필드 정의 (header 필수 포함) */ + { name: 'LEVY_AMOUNT', fieldName: 'LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'LEVY_QY', fieldName: 'LEVY_QY', header: { text: '부과량' } }, + { name: 'HOME_LEVY_AMOUNT', fieldName: 'HOME_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'HOME_LEVY_QY', fieldName: 'HOME_LEVY_QY', header: { text: '부과량' } }, + { name: 'HOME_UNTPC', fieldName: 'HOME_UNTPC', header: { text: '단가' } }, + { name: 'JOB_LEVY_AMOUNT', fieldName: 'JOB_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'JOB_LEVY_QY', fieldName: 'JOB_LEVY_QY', header: { text: '부과량' } }, + { name: 'JOB_UNTPC', fieldName: 'JOB_UNTPC', header: { text: '단가' } }, + { name: 'BSN_LEVY_AMOUNT', fieldName: 'BSN_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'BSN_LEVY_QY', fieldName: 'BSN_LEVY_QY', header: { text: '부과량' } }, + { name: 'BSN_UNTPC', fieldName: 'BSN_UNTPC', header: { text: '단가' } }, + { name: 'BATHS1_LEVY_AMOUNT', fieldName: 'BATHS1_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'BATHS1_LEVY_QY', fieldName: 'BATHS1_LEVY_QY', header: { text: '부과량' } }, + { name: 'BATHS1_UNTPC', fieldName: 'BATHS1_UNTPC', header: { text: '단가' } }, + { name: 'BATHS2_LEVY_AMOUNT', fieldName: 'BATHS2_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'BATHS2_LEVY_QY', fieldName: 'BATHS2_LEVY_QY', header: { text: '부과량' } }, + { name: 'BATHS2_UNTPC', fieldName: 'BATHS2_UNTPC', header: { text: '단가' } }, + { name: 'INDUST_LEVY_AMOUNT', fieldName: 'INDUST_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'INDUST_LEVY_QY', fieldName: 'INDUST_LEVY_QY', header: { text: '부과량' } }, + { name: 'INDUST_UNTPC', fieldName: 'INDUST_UNTPC', header: { text: '단가' } }, + { name: 'ETC_LEVY_AMOUNT', fieldName: 'ETC_LEVY_AMOUNT', header: { text: '부과액' } }, + { name: 'ETC_LEVY_QY', fieldName: 'ETC_LEVY_QY', header: { text: '부과량' } }, + { name: 'ETC_UNTPC', fieldName: 'ETC_UNTPC', header: { text: '단가' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + { + name: 'totalGroup', header: { text: '총계' }, + items: [ + { name: 'tAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['LEVY_AMOUNT'] }, // fieldName 제거, items 사용 + { name: 'tQyUnit', header: { text: '부과량\n(천톤)' }, items: ['LEVY_QY'] } + ] + }, + { + name: 'homeGroup', header: { text: '가 정 용' }, + items: [ + { name: 'hAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['HOME_LEVY_AMOUNT'] }, + { name: 'hQyUnit', header: { text: '부과량\n(천톤)' }, items: ['HOME_LEVY_QY'] }, + { name: 'hUntUnit', header: { text: '단가\n(원/톤)' }, items: ['HOME_UNTPC'] } + ] + }, + { + name: 'jobGroup', header: { text: '업 무 용' }, + items: [ + { name: 'jAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['JOB_LEVY_AMOUNT'] }, + { name: 'jQyUnit', header: { text: '부과량\n(천톤)' }, items: ['JOB_LEVY_QY'] }, + { name: 'jUntUnit', header: { text: '단가\n(원/톤)' }, items: ['JOB_UNTPC'] } + ] + }, + { + name: 'bsnGroup', header: { text: '영 업 용(일 반 용)' }, + items: [ + { name: 'bAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['BSN_LEVY_AMOUNT'] }, + { name: 'bQyUnit', header: { text: '부과량\n(천톤)' }, items: ['BSN_LEVY_QY'] }, + { name: 'bUntUnit', header: { text: '단가\n(원/톤)' }, items: ['BSN_UNTPC'] } + ] + }, + { + name: 'bath1Group', header: { text: '욕 탕 1종(대중탕용)' }, + items: [ + { name: 'bt1AmtUnit', header: { text: '부과액\n(백만원)' }, items: ['BATHS1_LEVY_AMOUNT'] }, + { name: 'bt1QyUnit', header: { text: '부과량\n(천톤)' }, items: ['BATHS1_LEVY_QY'] }, + { name: 'bt1UntUnit', header: { text: '단가\n(원/톤)' }, items: ['BATHS1_UNTPC'] } + ] + }, + { + name: 'bath2Group', header: { text: '욕 탕 2종' }, + items: [ + { name: 'bt2AmtUnit', header: { text: '부과액\n(백만원)' }, items: ['BATHS2_LEVY_AMOUNT'] }, + { name: 'bt2QyUnit', header: { text: '부과량\n(천톤)' }, items: ['BATHS2_LEVY_QY'] }, + { name: 'bt2UntUnit', header: { text: '단가\n(원/톤)' }, items: ['BATHS2_UNTPC'] } + ] + }, + { + name: 'industGroup', header: { text: '산업용 및 공업용' }, + items: [ + { name: 'iAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['INDUST_LEVY_AMOUNT'] }, + { name: 'iQyUnit', header: { text: '부과량\n(천톤)' }, items: ['INDUST_LEVY_QY'] }, + { name: 'iUntUnit', header: { text: '단가\n(원/톤)' }, items: ['INDUST_UNTPC'] } + ] + }, + { + name: 'etcGroup', header: { text: '기타' }, + items: [ + { name: 'eAmtUnit', header: { text: '부과액\n(백만원)' }, items: ['ETC_LEVY_AMOUNT'] }, + { name: 'eQyUnit', header: { text: '부과량\n(천톤)' }, items: ['ETC_LEVY_QY'] }, + { name: 'eUntUnit', header: { text: '단가\n(원/톤)' }, items: ['ETC_UNTPC'] } + ] + }, + 'RMK' + ] +}, +{ + tabKey: 'd', + tabLabel: '원인자부담금', + rowStartNum: 3, // 이미지처럼 3단 헤더이므로 데이터는 3행부터 시작 + fixedColumns: 2, + columns: [ + /* 1. 기본 정보 (header 필수 포함) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 데이터 필드 정의 (최하단 3행에 표시될 텍스트) */ + { name: 'LEVY_CO', fieldName: 'LEVY_CO', header: { text: '건수' } }, + { name: 'LEVY_AMOUNT', fieldName: 'LEVY_AMOUNT', header: { text: '금액(백만원)' } }, + { name: 'TRGET_LEV_STTUS_CO', fieldName: 'TRGET_LEV_STTUS_CO', header: { text: '건수' } }, + { name: 'TRGET_LEV_STTUS_AMOUNT', fieldName: 'TRGET_LEV_STTUS_AMOUNT', header: { text: '금액(백만원)' } }, + { name: 'DRNG_EQP_CO', fieldName: 'DRNG_EQP_CO', header: { text: '건수' } }, + { name: 'DRNG_EQP_AMOUNT', fieldName: 'DRNG_EQP_AMOUNT', header: { text: '금액(백만원)' } }, + { name: 'CNTRWK_CO', fieldName: 'CNTRWK_CO', header: { text: '건수' } }, + { name: 'CNTRWK_AMOUNT', fieldName: 'CNTRWK_AMOUNT', header: { text: '금액(백만원)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', + { + name: 'levyMainGroup', + header: { text: '부과액' }, + items: ['LEVY_CO', 'LEVY_AMOUNT'] // 1단(부과액) > 2단(건수, 금액) + }, + { + name: 'collectGroup', + header: { text: '대상별 징수현황' }, + items: [ + { + name: 'collectTotal', + header: { text: '계' }, + items: ['TRGET_LEV_STTUS_CO', 'TRGET_LEV_STTUS_AMOUNT'] + }, + { + name: 'contractorGroup', + header: { text: '배수설비설치자\n(하수도법 제61조 제1항)' }, + items: ['DRNG_EQP_CO', 'DRNG_EQP_AMOUNT'] + }, + { + name: 'otherGroup', + header: { text: '타공사·타행위자\n(하수도법 제61조 제2항)' }, + items: ['CNTRWK_CO', 'CNTRWK_AMOUNT'] + } + ] + }, + 'RMK' + ] +} +]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/SewerageServiceLevelColumnRvw.ts b/apps/st/src/components/util/column/SewerageServiceLevelColumnRvw.ts new file mode 100644 index 000000000..a3efcf9dc --- /dev/null +++ b/apps/st/src/components/util/column/SewerageServiceLevelColumnRvw.ts @@ -0,0 +1,105 @@ +export const SewerageServiceLevelInfoListRvw=[{ + tabKey: 'a', + tabLabel: '민원', + rowStartNum: 2, // 2단 헤더 구조 (순번 rowspan="2") + fixedColumns: 2, // 순번, 시도, 시군구, 구분까지 고정 + columns: [ + /* 1. 기본 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 하수처리 인구 */ + { name: 'POPLTN_SM', fieldName: 'POPLTN_SM', header: { text: '하수처리인구\n(명)' } }, + + /* 3. 민원유형 (단위: 건) */ + { name: 'CVPL_CM', fieldName: 'CVPL_CM', header: { text: '총계' } }, + { name: 'CVPL_DCWTR_QLTWTR', fieldName: 'CVPL_DCWTR_QLTWTR', header: { text: '악취' } }, + { name: 'CVPL_BSML', fieldName: 'CVPL_BSML', header: { text: '하수관로' } }, + { name: 'CVPL_FIVW', fieldName: 'CVPL_FIVW', header: { text: '배수설비' } }, + { name: 'CVPL_POLLUTN_ACDNT', fieldName: 'CVPL_POLLUTN_ACDNT', header: { text: '맨홀' } }, + { name: 'CVPL_SSOS', fieldName: 'CVPL_SSOS', header: { text: '정화조' } }, + { name: 'CVPL_CHRGE', fieldName: 'CVPL_CHRGE', header: { text: '하수도요금' } }, + { name: 'CVPL_ETC', fieldName: 'CVPL_ETC', header: { text: '기타' } }, + + /* 4. 성과 지표 및 비고 */ + { name: 'STDR_POPLTN_PER_CVPL', fieldName: 'STDR_POPLTN_PER_CVPL', header: { text: '기준인구당\n민원건수\n(건/10,000명)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', + 'POPLTN_SM', + { + name: 'complaintTypeGroup', + header: { text: '민원유형(건)' }, + items: [ + 'CVPL_CM', + 'CVPL_DCWTR_QLTWTR', + 'CVPL_BSML', + 'CVPL_FIVW', + 'CVPL_POLLUTN_ACDNT', + 'CVPL_SSOS', + 'CVPL_CHRGE', + 'CVPL_ETC' + ] + }, + 'STDR_POPLTN_PER_CVPL', + 'RMK' + ] + }, + { + tabKey: 'b', + tabLabel: '주민친화시설', + rowStartNum: 2, // 2단 헤더 구조 + fixedColumns: 5, // 순번, 시도, 시군구, 처리장명, 시설용량, 구분까지 고정 + columns: [ + /* 1. 기본 및 시설 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'BSC_FCT_NM', fieldName: 'BSC_FCT_NM', header: { text: '처리장명' } }, + { name: 'FCT_CPC', fieldName: 'FCT_CPC', header: { text: '시설용량\n(㎥/일)' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 처리장 전체 면적 */ + { name: 'PRCPLT_AR', fieldName: 'PRCPLT_AR', header: { text: '처리장\n면적(㎡)' } }, + + /* 3. 주민친화시설 면적 상세 (단위: ㎡) */ + { name: 'TOTAL_AR', fieldName: 'TOTAL_AR', header: { text: '총계' } }, + { name: 'RESTRM_AR', fieldName: 'RESTRM_AR', header: { text: '휴게시설' } }, + { name: 'CHILDPLAY_AR', fieldName: 'CHILDPLAY_AR', header: { text: '어린이놀이공간' } }, + { name: 'ALSFC_AR', fieldName: 'ALSFC_AR', header: { text: '체력단련시설' } }, + { name: 'PLGRND_AR', fieldName: 'PLGRND_AR', header: { text: '운동시설' } }, + { name: 'PRKPLCE_AR', fieldName: 'PRKPLCE_AR', header: { text: '주차장' } }, + { name: 'CTLSTT_AR', fieldName: 'CTLSTT_AR', header: { text: '교육 및\n문화시설' } }, + { name: 'NRPRK_AR', fieldName: 'NRPRK_AR', header: { text: '습지조성\n(생태공원)' } }, + { name: 'ETC_AR', fieldName: 'ETC_AR', header: { text: '기타' } }, + + /* 4. 비고 */ + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } } + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'BSC_FCT_NM', + 'FCT_CPC', + 'YR_GBN', + 'PRCPLT_AR', + { + name: 'friendlyFacilityGroup', + header: { text: '주민친화시설 면적(㎡)' }, + items: [ + 'TOTAL_AR', + 'RESTRM_AR', + 'CHILDPLAY_AR', + 'ALSFC_AR', + 'PLGRND_AR', + 'PRKPLCE_AR', + 'CTLSTT_AR', + 'NRPRK_AR', + 'ETC_AR' + ] + }, + 'RMK' + ] +} +]; \ No newline at end of file diff --git a/apps/st/src/components/util/column/WaterReuseColumnRvw.ts b/apps/st/src/components/util/column/WaterReuseColumnRvw.ts new file mode 100644 index 000000000..f90f65a6e --- /dev/null +++ b/apps/st/src/components/util/column/WaterReuseColumnRvw.ts @@ -0,0 +1,112 @@ + +export const WaterReuseInfoList=[{ + tabKey: 'a', + tabLabel: '공공하수처리수 재이용', + rowStartNum: 4, // 4단 헤더 구조 (대그룹 > 중그룹 > 소그룹 > 단위/명칭) + fixedColumns: 2, // 순번, 시도, 시군구, 구분 고정 + columns: [ + /* 1. 기본 및 행정 정보 (Band: Left) */ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'YR_GBN', fieldName: 'YR_GBN', header: { text: '구분' } }, + + /* 2. 하수처리장 기본 정보 */ + { name: 'BSC_FCT_NM', fieldName: 'BSC_FCT_NM', header: { text: '시설명' } }, + { name: 'EQP_PRMS_DT', fieldName: 'EQP_PRMS_DT', header: { text: '인가일\n(년/월/일)' } }, + { name: 'FCT_CPC', fieldName: 'FCT_CPC', header: { text: '시설용량\n(㎥/일)' } }, + { name: 'TPUT_TOTAL', fieldName: 'TPUT_TOTAL', header: { text: '연간\n하수처리량\n(천톤/년)' } }, + { name: 'RSWTR_LAW_YN', fieldName: 'RSWTR_LAW_YN', header: { text: '법적의무대상\n(대상/미대상)' } }, + + /* 3. 재이용시설 현황 */ + { name: 'INST_YN', fieldName: 'INST_YN', header: { text: '설치유무\n(유/무)' } }, + { name: 'RSWTR_RN_DT', fieldName: 'RSWTR_RN_DT', header: { text: '가동개시일\nyyyy-mm-dd' } }, + { name: 'RSWTR_PRMS_DT', fieldName: 'RSWTR_PRMS_DT', header: { text: '설치승인일\nyyyy-mm-dd' } }, + { name: 'RSWTR_CPC', fieldName: 'RSWTR_CPC', header: { text: '용량(톤/일)' } }, + { name: 'RSWTR_TRT_NM', fieldName: 'RSWTR_TRT_NM', header: { text: '공법/기자재' } }, + { name: 'RSWTR_PIPE', fieldName: 'RSWTR_PIPE', header: { text: '공급관로길이\n(km)' } }, + { name: 'RSWTR_PUMP', fieldName: 'RSWTR_PUMP', header: { text: '공급펌프\n(톤/일)' } }, + + /* 4. 재이용 실적 - 총계 및 장내용수 (단위: 천톤/년) */ + { name: 'USE_AMNT_TOTAL', fieldName: 'USE_AMNT_TOTAL', header: { text: '총계' } }, + { name: 'USE_AMNT_D01', fieldName: 'USE_AMNT_D01', header: { text: '계' } }, + { name: 'USE_AMNT_S01', fieldName: 'USE_AMNT_S01', header: { text: '세척수' } }, + { name: 'USE_AMNT_S02', fieldName: 'USE_AMNT_S02', header: { text: '냉각수' } }, + { name: 'USE_AMNT_S03', fieldName: 'USE_AMNT_S03', header: { text: '청소수' } }, + { name: 'USE_AMNT_S04', fieldName: 'USE_AMNT_S04', header: { text: '조경용수' } }, + { name: 'USE_AMNT_S05', fieldName: 'USE_AMNT_S05', header: { text: '희석용수' } }, + { name: 'USE_AMNT_S06', fieldName: 'USE_AMNT_S06', header: { text: '장내중수도' } }, + { name: 'USE_AMNT_S07', fieldName: 'USE_AMNT_S07', header: { text: '장내기타용수' } }, + + /* 5. 재이용 실적 - 장외용수 (단위: 천톤/년) */ + { name: 'USE_AMNT_D02', fieldName: 'USE_AMNT_D02', header: { text: '계' } }, + { name: 'USE_AMNT_S11', fieldName: 'USE_AMNT_S11', header: { text: '청소·화장실\n용수' } }, + { name: 'USE_AMNT_S12', fieldName: 'USE_AMNT_S12', header: { text: '세척·살수용수' } }, + { name: 'USE_AMNT_S13', fieldName: 'USE_AMNT_S13', header: { text: '조경용수' } }, + { name: 'USE_AMNT_S14', fieldName: 'USE_AMNT_S14', header: { text: '친수용수' } }, + { name: 'USE_AMNT_S15', fieldName: 'USE_AMNT_S15', header: { text: '하천등 유지용수' } }, + { name: 'USE_AMNT_S16', fieldName: 'USE_AMNT_S16', header: { text: '농업용수' } }, + { name: 'USE_AMNT_S17', fieldName: 'USE_AMNT_S17', header: { text: '지하수충전' } }, + { name: 'USE_AMNT_S18', fieldName: 'USE_AMNT_S18', header: { text: '공업용수' } }, + + /* 6. 지표 및 비고 */ + { name: 'REUSE_RT', fieldName: 'REUSE_RT', header: { text: '재이용률\n(%)' } }, + { name: 'RMK', fieldName: 'RMK', header: { text: '비고' } }, + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '행정구역' }, items: ['SIDO', 'GUGUN'] }, + 'YR_GBN', + { + name: 'sewagePlantGroup', + header: { text: '하수처리장' }, + items: ['BSC_FCT_NM', 'EQP_PRMS_DT', 'FCT_CPC', 'TPUT_TOTAL', 'RSWTR_LAW_YN'] + }, + { + name: 'reuseFctGroup', + header: { text: '재이용시설' }, + items: [ + 'INST_YN', + { + name: 'installDetailGroup', + header: { text: '재이용시설 설치시' }, + items: [ + 'RSWTR_RN_DT', + 'RSWTR_PRMS_DT', + { + name: 'reProcessGroup', + header: { text: '재처리시설' }, + items: ['RSWTR_CPC', 'RSWTR_TRT_NM'] + }, + 'RSWTR_PIPE', + 'RSWTR_PUMP' + ] + } + ] + }, + { + name: 'reuseStatusGroup', + header: { text: '하수처리수 재이용현황(천톤/년)' }, + items: [ + 'USE_AMNT_TOTAL', + { + name: 'internalUseGroup', + header: { text: '장 내 용 수' }, + items: [ + 'USE_AMNT_D01', 'USE_AMNT_S01', 'USE_AMNT_S02', 'USE_AMNT_S03', + 'USE_AMNT_S04', 'USE_AMNT_S05', 'USE_AMNT_S06', 'USE_AMNT_S07' + ] + }, + { + name: 'externalUseGroup', + header: { text: '장 외 용 수' }, + items: [ + 'USE_AMNT_D02', 'USE_AMNT_S11', 'USE_AMNT_S12', 'USE_AMNT_S13', + 'USE_AMNT_S14', 'USE_AMNT_S15', 'USE_AMNT_S16', 'USE_AMNT_S17', 'USE_AMNT_S18' + ] + } + ] + }, + 'REUSE_RT', + 'RMK' + ] + } +]; \ No newline at end of file