Files
frontend/apps/st/src/components/util/column/total/SewagePipeTotColumn.ts
T

995 lines
50 KiB
TypeScript

import { ValueType } from "realgrid";
import type { ColumnInfoList } from "@/components/type/DataGrid.type";
/**
* 하수도 통계 관리 > 02. 하수관로 (합계)
* 항목은 검토(SewagePipeRvwColumn)와 동일하나 footer·mergeCells·구분(displayYear)·비고(rmrk) 제외.
* 표시 형식은 SeweragePentrationRateTotColumn과 같이 dataFormat + editable: false.
*/
/** ST00020003 관종별: 입력 `SeweragePipeInputPipeTypeStatusItem`·합계 `SewagePipePipeTypeFacilityStatusItem`과 동일 (yy1=1996년 이전 … yy30) */
// const YY_PIPE_TYPE_FACILITY_MAX = 30;
const rawSewagePipeTotList = [
{
tabKey: "ST00020001",
tabLabel: "지역별 시설현황",
rowStartNum: 4,
fixedColumns: 2,
columns: [
{ name: "ctpvNm", fieldName: "ctpvNm", header: { text: "시도" }, editable: false },
{ name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false },
{ name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false },
{ name: "goalYr", fieldName: "goalYr", header: { text: "하수정보기본계획목표년도" }, editable: false },
{
name: "wholPplMtncPlanPrlg",
fieldName: "wholPplMtncPlanPrlg",
header: { text: "총관로정비\n계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "wholPlanPrlg",
fieldName: "wholPlanPrlg",
header: { text: "총계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "wholFcltPrlg",
fieldName: "wholFcltPrlg",
header: { text: "총시설연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "swagePplPsplyRt",
fieldName: "swagePplPsplyRt",
header: { text: "하수관로\n보급률(%)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysPplMtncPlanArea",
fieldName: "cbsysPplMtncPlanArea",
header: { text: "관로정비\n계획면적(㎢)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "cbsysPplMtncPlanPrlg",
fieldName: "cbsysPplMtncPlanPrlg",
header: { text: "관로정비\n계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysPlanPrlg",
fieldName: "cbsysPlanPrlg",
header: { text: "계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysFcltPrlg",
fieldName: "cbsysFcltPrlg",
header: { text: "시설연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysSqrePrlg",
fieldName: "cbsysSqrePrlg",
header: { text: "사각형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysCiclPrlg",
fieldName: "cbsysCiclPrlg",
header: { text: "원형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysOpnPrlg",
fieldName: "cbsysOpnPrlg",
header: { text: "개거(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysGttrPrlg",
fieldName: "cbsysGttrPrlg",
header: { text: "측구(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwPplMtncPlanArea",
fieldName: "drtwPplMtncPlanArea",
header: { text: "관로정비\n계획면적(㎢)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "drtwPplMtncPlanPrlg",
fieldName: "drtwPplMtncPlanPrlg",
header: { text: "관로정비\n계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwPplPlanPrlg",
fieldName: "drtwPplPlanPrlg",
header: { text: "계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwPplFcltPrlg",
fieldName: "drtwPplFcltPrlg",
header: { text: "시설연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwPplSqrePrlg",
fieldName: "drtwPplSqrePrlg",
header: { text: "사각형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwPplCiclPrlg",
fieldName: "drtwPplCiclPrlg",
header: { text: "원형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplMtncPlanArea",
fieldName: "exlnPplMtncPlanArea",
header: { text: "관로정비\n계획면적(㎢)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "exlnPplMtncPlanPrlg",
fieldName: "exlnPplMtncPlanPrlg",
header: { text: "관로정비\n계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplPlanPrlg",
fieldName: "exlnPplPlanPrlg",
header: { text: "계획연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplFcltPrlg",
fieldName: "exlnPplFcltPrlg",
header: { text: "시설연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplSqrePrlg",
fieldName: "exlnPplSqrePrlg",
header: { text: "사각형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplCiclPrlg",
fieldName: "exlnPplCiclPrlg",
header: { text: "원형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplOpnPrlg",
fieldName: "exlnPplOpnPrlg",
header: { text: "개거(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnPplGttrPrlg",
fieldName: "exlnPplGttrPrlg",
header: { text: "측구(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysMnhlCnt",
fieldName: "cbsysMnhlCnt",
header: { text: "합류식맨홀(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysDrtwMnhlCnt",
fieldName: "sprsysDrtwMnhlCnt",
header: { text: "오수맨홀(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysExlnMnhlCnt",
fieldName: "sprsysExlnMnhlCnt",
header: { text: "우수맨홀(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "drtwRcvprpCnt",
fieldName: "drtwRcvprpCnt",
header: { text: "오수받이(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "exlnRcvprpCnt",
fieldName: "exlnRcvprpCnt",
header: { text: "우수받이(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "stofcbrCnt",
fieldName: "stofcbrCnt",
header: { text: "우수토실(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "exlnOtflCnt",
fieldName: "exlnOtflCnt",
header: { text: "우수토구(개소)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sewerLdgrEdpPrlg",
fieldName: "sewerLdgrEdpPrlg",
header: { text: "하수도대장전산화연장(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sewerLdgrEdpRt",
fieldName: "sewerLdgrEdpRt",
header: { text: "하수도대장전산화율(%)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
],
columnLayout: [
{
name: "areaGroup",
header: { text: "행정구역" },
items: ["ctpvNm", "sggNm", "admdstNm"],
},
"goalYr",
"wholPplMtncPlanPrlg",
"wholPlanPrlg",
"wholFcltPrlg",
"swagePplPsplyRt",
{
name: "combinedGroup",
header: { text: "합류식(m)" },
items: [
"cbsysPplMtncPlanArea",
"cbsysPplMtncPlanPrlg",
"cbsysPlanPrlg",
"cbsysFcltPrlg",
{ name: "cmbnAmGroup", header: { text: "암거" }, items: ["cbsysSqrePrlg", "cbsysCiclPrlg"] },
"cbsysOpnPrlg",
"cbsysGttrPrlg",
],
},
{
name: "sepGroup",
header: { text: "분류식(m)" },
items: [
{
name: "foulPipeGroup",
header: { text: "오수관로" },
items: [
"drtwPplMtncPlanArea",
"drtwPplMtncPlanPrlg",
"drtwPplPlanPrlg",
"drtwPplFcltPrlg",
{ name: "foulAmGroup", header: { text: "암거" }, items: ["drtwPplSqrePrlg", "drtwPplCiclPrlg"] },
],
},
{
name: "rainPipeGroup",
header: { text: "우수관로" },
items: [
"exlnPplMtncPlanArea",
"exlnPplMtncPlanPrlg",
"exlnPplPlanPrlg",
"exlnPplFcltPrlg",
{ name: "rainAmGroup", header: { text: "암거" }, items: ["exlnPplSqrePrlg", "exlnPplCiclPrlg"] },
"exlnPplOpnPrlg",
"exlnPplGttrPrlg",
],
},
],
},
"cbsysMnhlCnt",
{ name: "fcltyGroup", header: { text: "분류식" }, items: ["sprsysDrtwMnhlCnt", "sprsysExlnMnhlCnt"] },
"drtwRcvprpCnt",
"exlnRcvprpCnt",
"stofcbrCnt",
"exlnOtflCnt",
"sewerLdgrEdpPrlg",
"sewerLdgrEdpRt",
],
},
{
tabKey: "ST00020002",
tabLabel: "시설별 설치현황",
rowStartNum: 4,
fixedColumns: 3,
columns: [
{ name: "ctpvNm", fieldName: "ctpvNm", header: { text: "시도" }, editable: false },
{ name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false },
{ name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false },
{ name: "swtrmtFcltNm", fieldName: "swtrmtFcltNm", header: { text: "하수처리시설 명" }, editable: false },
{
name: "prcsFcltCpct",
fieldName: "prcsFcltCpct",
header: { text: "하수처리\n시설용량\n(㎥/일)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "prcsZoneArea",
fieldName: "prcsZoneArea",
header: { text: "합계" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "cbsysPrcsZoneArea",
fieldName: "cbsysPrcsZoneArea",
header: { text: "합류식" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "sprsysPrcsZoneArea",
fieldName: "sprsysPrcsZoneArea",
header: { text: "분류식" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "sprsysVartnRt",
fieldName: "sprsysVartnRt",
header: { text: "분류식화율" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.000",
editable: false,
},
{
name: "mltvEqpmCnt",
fieldName: "mltvEqpmCnt",
header: { text: "합계" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "cbsysMltvEqpmCnt",
fieldName: "cbsysMltvEqpmCnt",
header: { text: "합류식" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysMltvEqpmCnt",
fieldName: "sprsysMltvEqpmCnt",
header: { text: "합계" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysMltvLnkgCnt",
fieldName: "sprsysMltvLnkgCnt",
header: { text: "연결" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysMltvYetLnkgCnt",
fieldName: "sprsysMltvYetLnkgCnt",
header: { text: "미연결" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "wholFcltPrlg",
fieldName: "wholFcltPrlg",
header: { text: "총\n시설연장\n(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "wholIcptgAtlfcPrlg",
fieldName: "wholIcptgAtlfcPrlg",
header: { text: "합계" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "icptgPrlg",
fieldName: "icptgPrlg",
header: { text: "차집" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "atlfcsPrlg",
fieldName: "atlfcsPrlg",
header: { text: "오수간선" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysStofcbrCnt",
fieldName: "cbsysStofcbrCnt",
header: { text: "우수토실(합류)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysStofcbrCnt",
fieldName: "sprsysStofcbrCnt",
header: { text: "우수토실(분류)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "sprsysExlnOtflCnt",
fieldName: "sprsysExlnOtflCnt",
header: { text: "우수토구(분류)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0",
editable: false,
},
{
name: "wholBrchlnPrlg",
fieldName: "wholBrchlnPrlg",
header: { text: "합계" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "cbsysBrchlnPrlg",
fieldName: "cbsysBrchlnPrlg",
header: { text: "합류식" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "exlnBrchlnPrlg",
fieldName: "exlnBrchlnPrlg",
header: { text: "우수" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
{
name: "drtwBrchlnPrlg",
fieldName: "drtwBrchlnPrlg",
header: { text: "오수" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.00",
editable: false,
},
],
columnLayout: [
{
name: "addrGroup",
header: { text: "행정구역" },
items: ["ctpvNm", "sggNm", "admdstNm"],
},
"swtrmtFcltNm",
"prcsFcltCpct",
{
name: "areaGroup",
header: { text: "처리구역면적(㎢)" },
items: ["prcsZoneArea", "cbsysPrcsZoneArea", "sprsysPrcsZoneArea"],
},
"sprsysVartnRt",
{
name: "drainGroup",
header: { text: "배수설비(개소)" },
items: [
"mltvEqpmCnt",
"cbsysMltvEqpmCnt",
{
name: "sprsysGroup",
header: { text: "분류식" },
items: [
"sprsysMltvEqpmCnt", "sprsysMltvLnkgCnt", "sprsysMltvYetLnkgCnt"
]
}
],
},
{
name: "pipeGroup",
header: { text: "하수관로" },
items: [
"wholFcltPrlg",
{
name: "trunkGroup",
header: { text: "차집/오수간선(m)" },
items: ["wholIcptgAtlfcPrlg", "icptgPrlg", "atlfcsPrlg"],
},
{
name: "siteGroup",
header: { text: "토실/토구(개소)" },
items: [
{ name: "cmbnSiteGroup", header: { text: "합류식" }, items: ["cbsysStofcbrCnt"] },
{ name: "sepSiteGroup", header: { text: "분류식" }, items: ["sprsysStofcbrCnt", "sprsysExlnOtflCnt"] },
],
},
{
name: "branchGroup",
header: { text: "지선(m)" },
items: [
"wholBrchlnPrlg",
"cbsysBrchlnPrlg",
{ name: "sepBranchGroup", header: { text: "분류식" }, items: ["exlnBrchlnPrlg", "drtwBrchlnPrlg"] },
],
},
],
},
],
},
{
tabKey: "ST00020004",
tabLabel: "관경별 현황",
rowStartNum: 2,
fixedColumns: 1,
columns: [
{ name: "ctpvNm", fieldName: "ctpvNm", header: { text: "시도" }, editable: false },
{ name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false },
{ name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false },
{ name: "swrgPipeNm", fieldName: "swrgPipeNm", header: { text: "관종" }, editable: false },
{
name: "pdmtByTsmWhol",
fieldName: "pdmtByTsmWhol",
header: { text: "총계(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "step1PdmtPrlg",
fieldName: "step1PdmtPrlg",
header: { text: "200mm 미만" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "step2PdmtPrlg",
fieldName: "step2PdmtPrlg",
header: { text: "200mm이상~\n300mm미만" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "step3PdmtPrlg",
fieldName: "step3PdmtPrlg",
header: { text: "300mm이상~\n500mm미만" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "step4PdmtPrlg",
fieldName: "step4PdmtPrlg",
header: { text: "500mm이상~\n800mm미만" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "step5PdmtPrlg",
fieldName: "step5PdmtPrlg",
header: { text: "800mm 이상" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "sqrePdmtPrlg",
fieldName: "sqrePdmtPrlg",
header: { text: "사각형(m)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
{
name: "etcPdmtPrlg",
fieldName: "etcPdmtPrlg",
header: { text: "기타\n(측구/개거 등)" },
valueType: ValueType.NUMBER,
dataFormat: "#,##0.0",
editable: false,
},
],
columnLayout: [
{
name: "addrGroup",
header: { text: "행정구역" },
items: ["ctpvNm", "sggNm", "admdstNm"],
},
"swrgPipeNm",
"pdmtByTsmWhol",
{
name: "circleGroup",
header: { text: "원형(m)" },
items: ["step1PdmtPrlg", "step2PdmtPrlg", "step3PdmtPrlg", "step4PdmtPrlg", "step5PdmtPrlg"],
},
"sqrePdmtPrlg",
"etcPdmtPrlg",
],
},
{
tabKey: "ST00020005",
tabLabel: "맨홀 현황",
rowStartNum: 2,
fixedColumns: 2,
columns: [
{ name: "ctpvNm", fieldName: "ctpvNm", header: { text: "시도" }, editable: false },
{ name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false },
{ name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false },
{ name: "emphsMngSeNm", fieldName: "emphsMngSeNm", header: { text: "집중강우\n중점관리\n구역구분" }, editable: false },
{ name: "totWholMnhlCnt", fieldName: "totWholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "totStep1MnhlCnt", fieldName: "totStep1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "totStep2MnhlCnt", fieldName: "totStep2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "totStep3MnhlCnt", fieldName: "totStep3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "totStep4MnhlCnt", fieldName: "totStep4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "totStep5MnhlCnt", fieldName: "totStep5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2015년 이전 (yy14) ──────────────────────────────────
{ name: "yy14WholMnhlCnt", fieldName: "yy14WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy14Step1MnhlCnt", fieldName: "yy14Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy14Step2MnhlCnt", fieldName: "yy14Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy14Step3MnhlCnt", fieldName: "yy14Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy14Step4MnhlCnt", fieldName: "yy14Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy14Step5MnhlCnt", fieldName: "yy14Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2015년 (yy15) ───────────────────────────────────────
{ name: "yy15WholMnhlCnt", fieldName: "yy15WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy15Step1MnhlCnt", fieldName: "yy15Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy15Step2MnhlCnt", fieldName: "yy15Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy15Step3MnhlCnt", fieldName: "yy15Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy15Step4MnhlCnt", fieldName: "yy15Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy15Step5MnhlCnt", fieldName: "yy15Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2016년 (yy16) ───────────────────────────────────────
{ name: "yy16WholMnhlCnt", fieldName: "yy16WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy16Step1MnhlCnt", fieldName: "yy16Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy16Step2MnhlCnt", fieldName: "yy16Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy16Step3MnhlCnt", fieldName: "yy16Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy16Step4MnhlCnt", fieldName: "yy16Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy16Step5MnhlCnt", fieldName: "yy16Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2017년 (yy17) ───────────────────────────────────────
{ name: "yy17WholMnhlCnt", fieldName: "yy17WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy17Step1MnhlCnt", fieldName: "yy17Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy17Step2MnhlCnt", fieldName: "yy17Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy17Step3MnhlCnt", fieldName: "yy17Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy17Step4MnhlCnt", fieldName: "yy17Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy17Step5MnhlCnt", fieldName: "yy17Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2018년 (yy18) ───────────────────────────────────────
{ name: "yy18WholMnhlCnt", fieldName: "yy18WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy18Step1MnhlCnt", fieldName: "yy18Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy18Step2MnhlCnt", fieldName: "yy18Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy18Step3MnhlCnt", fieldName: "yy18Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy18Step4MnhlCnt", fieldName: "yy18Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy18Step5MnhlCnt", fieldName: "yy18Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2019년 (yy19) ───────────────────────────────────────
{ name: "yy19WholMnhlCnt", fieldName: "yy19WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy19Step1MnhlCnt", fieldName: "yy19Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy19Step2MnhlCnt", fieldName: "yy19Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy19Step3MnhlCnt", fieldName: "yy19Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy19Step4MnhlCnt", fieldName: "yy19Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy19Step5MnhlCnt", fieldName: "yy19Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2020년 (yy20) ───────────────────────────────────────
{ name: "yy20WholMnhlCnt", fieldName: "yy20WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy20Step1MnhlCnt", fieldName: "yy20Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy20Step2MnhlCnt", fieldName: "yy20Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy20Step3MnhlCnt", fieldName: "yy20Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy20Step4MnhlCnt", fieldName: "yy20Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy20Step5MnhlCnt", fieldName: "yy20Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2021년 (yy21) ───────────────────────────────────────
{ name: "yy21WholMnhlCnt", fieldName: "yy21WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy21Step1MnhlCnt", fieldName: "yy21Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy21Step2MnhlCnt", fieldName: "yy21Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy21Step3MnhlCnt", fieldName: "yy21Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy21Step4MnhlCnt", fieldName: "yy21Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy21Step5MnhlCnt", fieldName: "yy21Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2022년 (yy22) ───────────────────────────────────────
{ name: "yy22WholMnhlCnt", fieldName: "yy22WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy22Step1MnhlCnt", fieldName: "yy22Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy22Step2MnhlCnt", fieldName: "yy22Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy22Step3MnhlCnt", fieldName: "yy22Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy22Step4MnhlCnt", fieldName: "yy22Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy22Step5MnhlCnt", fieldName: "yy22Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2023년 (yy23) ───────────────────────────────────────
{ name: "yy23WholMnhlCnt", fieldName: "yy23WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy23Step1MnhlCnt", fieldName: "yy23Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy23Step2MnhlCnt", fieldName: "yy23Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy23Step3MnhlCnt", fieldName: "yy23Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy23Step4MnhlCnt", fieldName: "yy23Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy23Step5MnhlCnt", fieldName: "yy23Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2024년 (yy24) ───────────────────────────────────────
{ name: "yy24WholMnhlCnt", fieldName: "yy24WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy24Step1MnhlCnt", fieldName: "yy24Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy24Step2MnhlCnt", fieldName: "yy24Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy24Step3MnhlCnt", fieldName: "yy24Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy24Step4MnhlCnt", fieldName: "yy24Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy24Step5MnhlCnt", fieldName: "yy24Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
// ── 2025년 (yy25) ───────────────────────────────────────
{ name: "yy25WholMnhlCnt", fieldName: "yy25WholMnhlCnt", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy25Step1MnhlCnt", fieldName: "yy25Step1MnhlCnt", header: { text: "주철" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy25Step2MnhlCnt", fieldName: "yy25Step2MnhlCnt", header: { text: "주철(조화)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy25Step3MnhlCnt", fieldName: "yy25Step3MnhlCnt", header: { text: "콘크리트" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy25Step4MnhlCnt", fieldName: "yy25Step4MnhlCnt", header: { text: "기타" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "yy25Step5MnhlCnt", fieldName: "yy25Step5MnhlCnt", header: { text: "추락방지시설\n설치맨홀(개)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0", editable: false },
{ name: "rmrk", fieldName: "rmrk", header: { text: "비고" }, editable: false },
],
columnLayout: [
{ name: "addrGroup", header: { text: "행정구역" }, items: ["ctpvNm", "sggNm"] },
"emphsMngSeNm",
{
name: "totGroup",
header: { text: "연도별총계" },
items: [
{ name: "totMtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["totWholMnhlCnt", "totStep1MnhlCnt", "totStep2MnhlCnt", "totStep3MnhlCnt", "totStep4MnhlCnt"] },
"totStep5MnhlCnt",
],
},
{
name: "yy14Group",
header: { text: "2015년 이전" }, // ← _14Y
items: [
{ name: "yy14MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy14WholMnhlCnt", "yy14Step1MnhlCnt", "yy14Step2MnhlCnt", "yy14Step3MnhlCnt", "yy14Step4MnhlCnt"] },
"yy14Step5MnhlCnt",
],
},
{
name: "yy15Group",
header: { text: "2015년" }, // ← _15Y
items: [
{ name: "yy15MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy15WholMnhlCnt", "yy15Step1MnhlCnt", "yy15Step2MnhlCnt", "yy15Step3MnhlCnt", "yy15Step4MnhlCnt"] },
"yy15Step5MnhlCnt",
],
},
{
name: "yy16Group",
header: { text: "2016년" }, // ← _16Y
items: [
{ name: "yy16MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy16WholMnhlCnt", "yy16Step1MnhlCnt", "yy16Step2MnhlCnt", "yy16Step3MnhlCnt", "yy16Step4MnhlCnt"] },
"yy16Step5MnhlCnt",
],
},
{
name: "yy17Group",
header: { text: "2017년" },
items: [
{ name: "yy17MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy17WholMnhlCnt", "yy17Step1MnhlCnt", "yy17Step2MnhlCnt", "yy17Step3MnhlCnt", "yy17Step4MnhlCnt"] },
"yy17Step5MnhlCnt",
],
},
{
name: "yy18Group",
header: { text: "2018년" },
items: [
{ name: "yy18MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy18WholMnhlCnt", "yy18Step1MnhlCnt", "yy18Step2MnhlCnt", "yy18Step3MnhlCnt", "yy18Step4MnhlCnt"] },
"yy18Step5MnhlCnt",
],
},
{
name: "yy19Group",
header: { text: "2019년" },
items: [
{ name: "yy19MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy19WholMnhlCnt", "yy19Step1MnhlCnt", "yy19Step2MnhlCnt", "yy19Step3MnhlCnt", "yy19Step4MnhlCnt"] },
"yy19Step5MnhlCnt",
],
},
{
name: "yy20Group",
header: { text: "2020년" },
items: [
{ name: "yy20MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy20WholMnhlCnt", "yy20Step1MnhlCnt", "yy20Step2MnhlCnt", "yy20Step3MnhlCnt", "yy20Step4MnhlCnt"] },
"yy20Step5MnhlCnt",
],
},
{
name: "yy21Group",
header: { text: "2021년" },
items: [
{ name: "yy21MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy21WholMnhlCnt", "yy21Step1MnhlCnt", "yy21Step2MnhlCnt", "yy21Step3MnhlCnt", "yy21Step4MnhlCnt"] },
"yy21Step5MnhlCnt",
],
},
{
name: "yy22Group",
header: { text: "2022년" },
items: [
{ name: "yy22MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy22WholMnhlCnt", "yy22Step1MnhlCnt", "yy22Step2MnhlCnt", "yy22Step3MnhlCnt", "yy22Step4MnhlCnt"] },
"yy22Step5MnhlCnt",
],
},
{
name: "yy23Group",
header: { text: "2023년" },
items: [
{ name: "yy23MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy23WholMnhlCnt", "yy23Step1MnhlCnt", "yy23Step2MnhlCnt", "yy23Step3MnhlCnt", "yy23Step4MnhlCnt"] },
"yy23Step5MnhlCnt",
],
},
{
name: "yy24Group",
header: { text: "2024년" },
items: [
{ name: "yy24MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy24WholMnhlCnt", "yy24Step1MnhlCnt", "yy24Step2MnhlCnt", "yy24Step3MnhlCnt", "yy24Step4MnhlCnt"] },
"yy24Step5MnhlCnt",
],
},
{
name: "yy25Group",
header: { text: "2025년" },
items: [
{ name: "yy25MtrlGroup", header: { text: "맨홀뚜껑 재질(개)" }, items: ["yy25WholMnhlCnt", "yy25Step1MnhlCnt", "yy25Step2MnhlCnt", "yy25Step3MnhlCnt", "yy25Step4MnhlCnt"] },
"yy25Step5MnhlCnt",
],
},
"rmrk",
],
},
];
// 2. 동적 컬럼(ST00020003) 생성 함수
export const getST00020003Config = (statsYr: string | number) => {
const startYear = 1995;
const endYear = Number(statsYr) || new Date().getFullYear();
return {
tabKey: "ST00020003",
tabLabel: "관종별 현황",
rowStartNum: 2,
fixedColumns: 2,
columns: [
{ name: "ctpvNm", fieldName: "ctpvNm", header: { text: "시도" }, editable: false },
{ name: "sggNm", fieldName: "sggNm", header: { text: "시군구" }, editable: false },
{ name: "admdstNm", fieldName: "admdstNm", header: { text: "행정구역명" }, editable: false },
{ name: "swrgPipeNm", fieldName: "swrgPipeNm", header: { text: "관종" }, editable: false },
{ name: "pipeByPrstWholSum", fieldName: "pipeByPrstWhol", header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false },
{ name: "lyngPrlgSum", fieldName: "lyngPrlg", header: { text: "매설연장(m)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false },
{ name: "dmltnPrlgSum", fieldName: "dmltnPrlg", header: { text: "철거연장(m)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false },
...(() => {
const yearColumns = [];
for (let yr = startYear; yr <= endYear; yr++) {
yearColumns.push(
{ name: `prlg_whol_${yr}`, fieldName: `prlg_whol_${yr}`, header: { text: "계" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false },
{ name: `lyng_prlg_${yr}`, fieldName: `lyng_prlg_${yr}`, header: { text: "매설연장(m)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false },
{ name: `dmltn_prlg_${yr}`, fieldName: `dmltn_prlg_${yr}`, header: { text: "철거연장(m)" }, valueType: ValueType.NUMBER, dataFormat: "#,##0.0", editable: false }
);
}
return yearColumns;
})(),
],
columnLayout: [
{ name: "areaGroup", header: { text: "행정구역" }, items: ["ctpvNm", "sggNm", "admdstNm"] },
"swrgPipeNm",
{ name: "summaryGroup", header: { text: "총계" }, items: ["pipeByPrstWholSum", "lyngPrlgSum", "dmltnPrlgSum"] },
...(() => {
const layouts = [];
for (let yr = startYear; yr <= endYear; yr++) {
layouts.push({
name: `group_${yr}`,
header: { text: yr === 1995 ? "1996년이전" : `${yr}년` },
items: [`prlg_whol_${yr}`, `lyng_prlg_${yr}`, `dmltn_prlg_${yr}`],
});
}
return layouts;
})(),
],
};
};
export const SewagePipeColumnInfoListTot: ColumnInfoList[] = rawSewagePipeTotList.map((tab) => ({
...tab,
columns: tab.columns.map((col) => ({ ...col, editable: false as const })),
}));
const st00020003PlaceholderTab: ColumnInfoList = {
tabKey: "ST00020003",
tabLabel: "관종별 현황",
rowStartNum: 2,
fixedColumns: 2,
columns: [],
columnLayout: [],
};
SewagePipeColumnInfoListTot.splice(2, 0, st00020003PlaceholderTab);