Files
frontend/apps/st/src/components/util/column/input/sewagePipe/FactInstallStatusInpColumn.ts
T

232 lines
11 KiB
TypeScript

import { ValueType } from "realgrid";
import { footerAvgDecimal, footerDecimal2, footerDecimal3, footerInt } from "@/components/util/grid/footerSummary";
// 하수도 통계 관리 > 02.하수관로 > tab 2. 시설별 설치현황
// SeweragePipeInputFactInstallStatusItem + commonInfo.ctpvNm (그리드 행에 병합)
export const FactInstallStatusInpColumn = {
columns: [
// 행정구역 (ctpvNm은 commonInfo에서 주입)
{ name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' },
{ name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, styleName: 'rg-cell-readonly' },
// 하수처리장 정보
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' },
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, editable: false, styleName: 'rg-cell-readonly' },
{ name: 'prcsFcltCpct', fieldName: 'prcsFcltCpct', header: { text: '하수처리시설용량(m³/일)' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0', styleName: 'rg-cell-readonly' },
// 처리구역면적(km²)
{
name: 'prcsZoneArea',
fieldName: 'prcsZoneArea',
header: { text: '합계' },
footer: footerDecimal3,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0.000',
computed: { fields: ['cbsysTrtznArea', 'sprsysTrtznArea'], type: 'sum' as const },
},
{ name: 'cbsysTrtznArea', fieldName: 'cbsysTrtznArea', header: { text: '합류식' }, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
{ name: 'sprsysTrtznArea', fieldName: 'sprsysTrtznArea', header: { text: '분류식' }, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
// 분류식화율
{
name: 'sprsysVartnRt',
fieldName: 'sprsysVartnRt',
header: { text: '분류식화율' },
editable: false,
footer: footerAvgDecimal,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0.0',
computed: {
numeratorFields: ['sprsysTrtznArea'],
denominatorFields: ['cbsysTrtznArea', 'sprsysTrtznArea'],
type: 'pblswrgPopltnSuprtRate' as const,
},
},
// 배수설비(개소)
{
name: 'wholDrgCnt',
fieldName: 'wholDrgCnt',
header: { text: '합계' },
footer: footerInt,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0',
computed: { fields: ['sprsysDrgLnkgCnt', 'sprsysDrgNoinsLnkgCnt', 'cbsysDrgCnt'], type: 'sum' as const },
},
{ name: 'cbsysDrgCnt', fieldName: 'cbsysDrgCnt', header: { text: '합류식' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{
name: 'sprsysDrgCnt',
fieldName: 'sprsysDrgCnt',
header: { text: '소계' },
footer: footerInt,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0',
computed: { fields: ['sprsysDrgLnkgCnt', 'sprsysDrgNoinsLnkgCnt'], type: 'sum' as const },
},
{ name: 'sprsysDrgLnkgCnt', fieldName: 'sprsysDrgLnkgCnt', header: { text: '연결' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'sprsysDrgNoinsLnkgCnt', fieldName: 'sprsysDrgNoinsLnkgCnt', header: { text: '미연결' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
// 하수관로 > 총시설연장
{
name: 'wholFcltPrlg',
fieldName: 'wholFcltPrlg',
header: { text: '총시설연장(m)' },
footer: footerDecimal2,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0.00',
computed: { fields: ['icptgPrlg', 'atlfcsPrlg', 'cbsysPplPrlg', 'exlnPplPrlg', 'drtwPplPrlg'], type: 'sum' as const },
},
// 하수관로 > 차집/오수간선(m)
{
name: 'wholIcptgAtlfcsPrlg',
fieldName: 'wholIcptgAtlfcsPrlg',
header: { text: '합계' },
footer: footerDecimal2,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0.00',
computed: { fields: ['icptgPrlg', 'atlfcsPrlg'], type: 'sum' as const },
},
{ name: 'icptgPrlg', fieldName: 'icptgPrlg', header: { text: '차집' }, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00' },
{ name: 'atlfcsPrlg', fieldName: 'atlfcsPrlg', header: { text: '오수 간선' }, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00' },
// 하수관로 > 토실/토구(개소) > 합류식
{ name: 'cbsysStofcbrCnt', fieldName: 'cbsysStofcbrCnt', header: { text: '우수토실' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
// 하수관로 > 토실/토구(개소) > 분류식
{ name: 'sprsysStofcbrCnt', fieldName: 'sprsysStofcbrCnt', header: { text: '우수토실' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
{ name: 'sprsysExlnOtflCnt', fieldName: 'sprsysExlnOtflCnt', header: { text: '우수토구' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
// 하수관로 > 지선(m)
{
name: 'wholPplPrlg',
fieldName: 'wholPplPrlg',
header: { text: '합계' },
footer: footerDecimal2,
editable: false,
styleName: 'rg-cell-total',
valueType: ValueType.NUMBER,
dataFormat: '#,##0.00',
computed: { fields: ['cbsysPplPrlg', 'exlnPplPrlg', 'drtwPplPrlg'], type: 'sum' as const },
},
{ name: 'cbsysPplPrlg', fieldName: 'cbsysPplPrlg', header: { text: '합류식' }, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00' },
// 하수관로 > 지선(m) > 분류식
{ name: 'exlnPplPrlg', fieldName: 'exlnPplPrlg', header: { text: '우수' }, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00' },
{ name: 'drtwPplPrlg', fieldName: 'drtwPplPrlg', header: { text: '오수' }, footer: footerDecimal2, valueType: ValueType.NUMBER, dataFormat: '#,##0.00' },
// 비고
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
// 식별·키 필드 (API SeweragePipeInputFactInstallStatusItem, 그리드 비표시 — fixedColumns와 겹치지 않도록 맨 뒤)
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '처리시설일련번호' }, visible: false, editable: false, valueType: ValueType.TEXT },
{ name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '하수처리시설코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
],
columnLayout: [
{
name: 'adminArea',
hideChildHeaders: false,
header: { text: '행정구역' },
items: [
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
'sggNm',
],
},
'swtrmtFcltNm',
'admdstNm',
'prcsFcltCpct',
{
name: 'procZone',
hideChildHeaders: false,
header: { text: '처리구역면적(km²)' },
items: ['prcsZoneArea', 'cbsysTrtznArea', 'sprsysTrtznArea'],
},
'sprsysVartnRt',
{
name: 'drainEquip',
hideChildHeaders: false,
header: { text: '배수설비(개소)' },
items: [
'wholDrgCnt',
'cbsysDrgCnt',
{
name: 'sprtDrainEquip',
hideChildHeaders: false,
header: { text: '분류식' },
items: ['sprsysDrgCnt', 'sprsysDrgLnkgCnt', 'sprsysDrgNoinsLnkgCnt'],
},
],
},
{
name: 'sewagePipe',
hideChildHeaders: false,
header: { text: '하수관로' },
items: [
'wholFcltPrlg',
{
name: 'interceptor',
hideChildHeaders: false,
header: { text: '차집/오수간선(m)' },
items: ['wholIcptgAtlfcsPrlg', 'icptgPrlg', 'atlfcsPrlg'],
},
{
name: 'soilHole',
hideChildHeaders: false,
header: { text: '토실/토구(개소)' },
items: [
{
name: 'cmbnSoilHole',
hideChildHeaders: false,
header: { text: '합류식' },
items: ['cbsysStofcbrCnt'],
},
{
name: 'sprtSoilHole',
hideChildHeaders: false,
header: { text: '분류식' },
items: ['sprsysStofcbrCnt', 'sprsysExlnOtflCnt'],
},
],
},
{
name: 'branchLine',
hideChildHeaders: false,
header: { text: '지선(m)' },
items: [
'wholPplPrlg',
'cbsysPplPrlg',
{
name: 'sprtBranchLine',
hideChildHeaders: false,
header: { text: '분류식' },
items: ['exlnPplPrlg', 'drtwPplPrlg'],
},
],
},
],
},
'rmrk',
'admdstCd',
'fcltSn',
'swtrmtFcltCd',
],
rowStartNum: 4,
fixedColumns: 3,
tabKey: 'ST00020002',
tabLabel: '시설별 설치현황'
};