@@ -713,6 +756,20 @@ const SeweragePenetrationRateInp = () => {
>
);
diff --git a/apps/st/src/components/statistics/input/SubmitDailog.tsx b/apps/st/src/components/statistics/input/SubmitDailog.tsx
index 65f2f9306..856ef089c 100644
--- a/apps/st/src/components/statistics/input/SubmitDailog.tsx
+++ b/apps/st/src/components/statistics/input/SubmitDailog.tsx
@@ -175,12 +175,12 @@ const SubmitDailog = ({
-
+
diff --git a/apps/st/src/components/util/MenuMatchList.ts b/apps/st/src/components/util/MenuMatchList.ts
new file mode 100644
index 000000000..ded92e5a4
--- /dev/null
+++ b/apps/st/src/components/util/MenuMatchList.ts
@@ -0,0 +1,33 @@
+/**
+ * statistics/input 화면과 탭(·분할 그리드) 키 매칭용 상수.
+ * 각 컴포넌트에 실제로 쓰이는 `tabKey`를 모두 포함합니다.
+ */
+
+/** `SewagePipeInp.tsx` — 메인 탭 + `ConnectionStatusInpColumn` 좌·우 그리드 서브 키 */
+export const SEWAGE_PIPE_INP_TAB_KEYS = [
+ "ST00020001",
+ "ST00020002",
+ "ST00020003",
+ "ST00020004",
+ "ST00020005",
+ "ST00020006",
+ "treatmentPlantConnectionInp",
+ "adminAreaConnectionInp",
+] as const;
+
+/** `SewagePipeMaintainInp.tsx` — 보수·준설 탭 */
+export const SEWAGE_PIPE_MAINTAIN_INP_TAB_KEYS = ["ST00030001", "ST00030002"] as const;
+
+/** `SeweragePenetrationRateInp.tsx` — 단일 그리드(통계코드) */
+export const SEWERAGE_PENETRATION_RATE_INP_TAB_KEYS = ["ST00010001"] as const;
+
+export type SewagePipeInpTabKey = (typeof SEWAGE_PIPE_INP_TAB_KEYS)[number];
+export type SewagePipeMaintainInpTabKey = (typeof SEWAGE_PIPE_MAINTAIN_INP_TAB_KEYS)[number];
+export type SeweragePenetrationRateInpTabKey = (typeof SEWERAGE_PENETRATION_RATE_INP_TAB_KEYS)[number];
+
+/** 컴포넌트 파일명 기준 묶음 (메뉴·라우트 매칭 시 참고) */
+export const STATISTICS_INPUT_TAB_KEYS_BY_SCREEN = {
+ SewagePipeInp: SEWAGE_PIPE_INP_TAB_KEYS,
+ SewagePipeMaintainInp: SEWAGE_PIPE_MAINTAIN_INP_TAB_KEYS,
+ SeweragePenetrationRateInp: SEWERAGE_PENETRATION_RATE_INP_TAB_KEYS,
+} as const;
diff --git a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn.ts b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn.ts
deleted file mode 100644
index d070c9b9d..000000000
--- a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn.ts
+++ /dev/null
@@ -1,211 +0,0 @@
-import { footerInt, footerDecimal1, footerDecimal3 } from "@/components/util/grid/footerSummary";
-import { ValueType } from "realgrid";
-
-/**
- * 하수도 통계 관리 > 06. 공공하수처리시설
- * 단일 Tab
- */
-export const PublicSewageFactInpColumn = {
- columns: [
- // 행정구역
- { name: 'sidoCd', fieldName: '시도', header: { text: '시도' }, editable: false },
- { name: 'gugun', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
-
- // 시설명
- { name: 'bscFctNm', fieldName: '시설명(500m³/일 이상/미만)', header: { text: '시설명(500m³/일 이상/미만)' }, editable: false },
-
- // 소재지
- { name: 'addr', fieldName: '소재지', header: { text: '소재지' }, editable: false },
-
- // 시설용량
- { name: 'fctCpc', fieldName: '시설용량(500m³/일 이상/미만)', header: { text: '시설용량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // (m³/일)
- { name: 'fctCpc1', fieldName: '물리적', header: { text: '물리적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'fctCpc2', fieldName: '생물학적', header: { text: '생물학적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'fctCpc3', fieldName: '고도', header: { text: '고도' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 유입하수량
- { name: 'totInflAmntAve', fieldName: '유입하수량(500m³/일 이상/미만)', header: { text: '유입하수량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // (m³/일)
- { name: 'pInflAmntAve', fieldName: '물리적', header: { text: '물리적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'oInflAmntAve', fieldName: '생물학적', header: { text: '생물학적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'aInflAmntAve', fieldName: '고도', header: { text: '고도' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 방류량
- { name: 'totTputAve', fieldName: '방류량(500m³/일 이상/미만)', header: { text: '방류량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 방류량 - (m³/일)
- { name: 'pTputAve', fieldName: '물리적', header: { text: '물리적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'oTputAve', fieldName: '생물학적', header: { text: '생물학적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'aTputAve', fieldName: '고도', header: { text: '고도' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 수질
- { name: 'inflAssctBfrWqltBod', fieldName: '유입BOD', header: { text: '유입BOD' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'efflWqltBod', fieldName: '방류BOD', header: { text: '방류BOD' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'inflAssctBfrWqltToc', fieldName: '유입TOC', header: { text: '유입TOC' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'efflWqltToc', fieldName: '방류TOC', header: { text: '방류TOC' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'inflAssctBfrWqltSs', fieldName: '유입SS', header: { text: '유입SS' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'efflWqltSs', fieldName: '방류SS', header: { text: '방류SS' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'inflAssctBfrWqltTn', fieldName: '유입T-N', header: { text: '유입T-N' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
- { name: 'efflWqltTn', fieldName: '방류T-N', header: { text: '방류T-N' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
- { name: 'inflAssctBfrWqltTp', fieldName: '유입T-P', header: { text: '유입T-P' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
- { name: 'efflWqltTp', fieldName: '방류T-P', header: { text: '방류T-P' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
- { name: 'inflAssctBfrWqltClfgrpcnt', fieldName: '유입총대장균군수', header: { text: '유입총대장균군수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'efflWqltClfgrpcnt', fieldName: '방류총대장균군수', header: { text: '방류총대장균군수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 처리특성
- { name: 'tmEfficiency', fieldName: '처리효율(%)', header: { text: '처리효율(%)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'pcLoad', fieldName: '처리부하량(kgBOD/D)', header: { text: '처리부하량(kgBOD/D)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'trtFrfHanNm', fieldName: '처리방법', header: { text: '처리방법' }, editable: false },
-
- // 연계처리량
- { name: 'excretionsTot', fieldName: '분뇨', header: { text: '분뇨' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'stkrsngWstwtrTot', fieldName: '축산', header: { text: '축산' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'lchtTot', fieldName: '침출수', header: { text: '침출수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'etcTot', fieldName: '기타', header: { text: '기타' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 시설정보
- { name: 'tel', fieldName: '전화번호', header: { text: '전화번호' }, editable: false },
- { name: 'rnDt', fieldName: '준공일', header: { text: '준공일' }, editable: false },
- { name: 'compDt', fieldName: '가동개시일', header: { text: '가동개시일' }, editable: false },
- { name: 'tot', fieldName: '사업비', header: { text: '사업비' }, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 방류수 소독방법
- { name: 'dsfctNm', fieldName: '방류수 소독방법', header: { text: '방류수 소독방법' }, editable: false },
-
- // 방류수역
- { name: 'wbsnNm', fieldName: '수계', header: { text: '수계' }, editable: false },
- { name: 'rvNm', fieldName: '지류', header: { text: '지류' }, editable: false },
- { name: 'mdmbsn', fieldName: '세부단위구역', header: { text: '세부단위구역' }, editable: false },
- { name: 'efflWqltStndrdNm', fieldName: '지역구분', header: { text: '지역구분' }, editable: false },
-
- // 방류수역 > 중권역
- { name: 'lgbsn', fieldName: '명칭', header: { text: '명칭' }, editable: false },
- { name: 'lgbsnBod', fieldName: '목표수질(BOD)', header: { text: '목표수질(BOD)' }, editable: false },
-
- // 에너지 자립률
- { name: 'toeRt', fieldName: '에너지자립률(%)', header: { text: '에너지자립률(%)' }, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 에너지 자체 생산량
- { name: 'useQnty', fieldName: '에너지자체생산량(TOE)', header: { text: '에너지자체생산량(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 연간 총 에너지 사용량
- { name: 'toeSum', fieldName: '계(TOE)', header: { text: '계(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'elcpwAmnt', fieldName: '총 전력사용량(kWh)', header: { text: '총 전력사용량(kWh)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'toeQnty', fieldName: '자체 에너지사용량(TOE)', header: { text: '자체 에너지사용량(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
-
- // 하수처리량당 CO2배출량
- { name: 'co2Emissions', fieldName: '하수처리량당 CO2배출량(kgCO2/m³)', header: { text: '하수처리량당 CO2배출량(kgCO2/m³)' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000' },
-
- // 운영주체
- { name: 'oprClsNm', fieldName: '운영주체(자체/공기업/민간대행)', header: { text: '운영주체(자체/공기업/민간대행)' }, editable: false },
-
- // 위탁현황
- { name: 'trstOprEtpNm', fieldName: '위탁업체명', header: { text: '위탁업체명' } },
- { name: 'yrstpTrstCst', fieldName: '위탁비용(백만원/년)', header: { text: '위탁비용(백만원/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
- { name: 'trstOprDt', fieldName: '위탁계약기간(yyyy-mm-dd~yyyy-mm-dd)', header: { text: '위탁계약기간(yyyy-mm-dd~yyyy-mm-dd)' } },
-
- // 기타
- { name: 'cntrTrtFctNm', fieldName: '중심처리시설', header: { text: '중심처리시설' } },
- { name: 'totWtrQrm', fieldName: '직원총수(명)', header: { text: '직원총수(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
- { name: 'safeAcdntCo', fieldName: '안전사고건수', header: { text: '안전사고건수' }, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
- { name: 'rmk', fieldName: '비고', header: { text: '비고' } },
- ],
-
- columnLayout: [
- {
- name: 'administrative',
- hideChildHeaders: false,
- header: { text: '행정구역' },
- items: ['sidoCd', 'gugun'],
- },
- 'bscFctNm',
- 'addr',
- 'fctCpc',
- {
- name: 'facilityCapacityDetail',
- hideChildHeaders: false,
- header: { text: '(m³/일)' },
- items: ['fctCpc1', 'fctCpc2', 'fctCpc3'],
- },
- 'totInflAmntAve',
- {
- name: 'influentWaterDetail',
- hideChildHeaders: false,
- header: { text: '(m³/일)' },
- items: ['pInflAmntAve', 'oInflAmntAve', 'aInflAmntAve'],
- },
- 'totTputAve',
- {
- name: 'effluentWaterDetail',
- hideChildHeaders: false,
- header: { text: '(m³/일)' },
- items: ['pTputAve', 'oTputAve', 'aTputAve'],
- },
- 'inflAssctBfrWqltBod',
- 'efflWqltBod',
- 'inflAssctBfrWqltToc',
- 'efflWqltToc',
- 'inflAssctBfrWqltSs',
- 'efflWqltSs',
- 'inflAssctBfrWqltTn',
- 'efflWqltTn',
- 'inflAssctBfrWqltTp',
- 'efflWqltTp',
- 'inflAssctBfrWqltClfgrpcnt',
- 'efflWqltClfgrpcnt',
- 'tmEfficiency',
- 'pcLoad',
- 'trtFrfHanNm',
- {
- name: 'linkedTreatment',
- hideChildHeaders: false,
- header: { text: '연계처리량(m³/일) (500m³/일 이상/미만)' },
- items: ['excretionsTot', 'stkrsngWstwtrTot', 'lchtTot', 'etcTot'],
- },
- 'tel',
- 'rnDt',
- 'compDt',
- 'tot',
- 'dsfctNm',
- {
- name: 'dischargeArea',
- hideChildHeaders: false,
- header: { text: '방류수역' },
- items: [
- 'wbsnNm',
- 'rvNm',
- 'mdmbsn',
- 'efflWqltStndrdNm',
- {
- name: 'mediumWatershed',
- hideChildHeaders: false,
- header: { text: '중권역' },
- items: ['lgbsn', 'lgbsnBod'],
- },
- ],
- },
- 'toeRt',
- 'useQnty',
- {
- name: 'energy',
- hideChildHeaders: false,
- header: { text: '연간 총 에너지 사용량(TOE)' },
- items: ['toeSum', 'elcpwAmnt', 'toeQnty'],
- },
- 'co2Emissions',
- 'oprClsNm',
- {
- name: 'consignmentStatus',
- hideChildHeaders: false,
- header: { text: '위탁현황' },
- items: ['trstOprEtpNm', 'yrstpTrstCst', 'trstOprDt'],
- },
- 'cntrTrtFctNm',
- 'totWtrQrm',
- 'safeAcdntCo',
- 'rmk',
- ]
-};
\ No newline at end of file
diff --git a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/MainFacilityInpColumn.ts b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/MainFacilityInpColumn.ts
new file mode 100644
index 000000000..eed27df03
--- /dev/null
+++ b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/MainFacilityInpColumn.ts
@@ -0,0 +1,73 @@
+import { ValueType } from "realgrid";
+
+export const MainFacilityColumn = {
+ columns: [
+ { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명' }, editable: false },
+ { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '소재지' }, editable: false },
+ { name: 'prxyBzentyNmCn', fieldName: 'prxyBzentyNmCn', header: { text: '위탁업체명' }, editable: false },
+ { name: 'cnsgnCstVl', fieldName: 'cnsgnCstVl', header: { text: '위탁비용(백만원/년)' }, editable: false },
+ { name: 'prxyCtrtCn', fieldName: 'prxyCtrtCn', header: { text: '위탁계약기간' }, editable: false },
+ { name: 'isMainYn', fieldName: 'isMainYn', header: { text: '중심처리시설여부' }, editable: false },
+
+ { 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, styleName: 'rg-cell-readonly' },
+ { name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '하수처리시설코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ ],
+ columnLayout: [
+ 'swtrmtFcltNm',
+ 'fcltPstnCn',
+ 'prxyBzentyNmCn',
+ 'cnsgnCstVl',
+ 'prxyCtrtCn',
+ 'isMainYn',
+ 'admdstCd',
+ 'fcltSn',
+ 'swtrmtFcltCd',
+ 'sggNm',
+ 'admdstNm',
+ ],
+ rowStartNum: 1,
+ fixedColumns: 1,
+ tabKey: 'MainFacility',
+ tabLabel: '지자체별공공하수처리시설'
+};
+
+// Tab 6-2: 하수처리장별 연결 현황 (왼쪽 그리드)
+export const MainFacilityTargetColumn = {
+ columns: [
+ // 하수처리장 정보
+ { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명' }, editable: false },
+ { name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '소재지' }, editable: false },
+ { name: 'mappedYn', fieldName: 'mappedYn', header: { text: '연결여부' }, editable: false },
+
+ { name: 'fcltSn', fieldName: 'fcltSn', header: { text: '처리시설일련번호' }, visible: false, editable: false, valueType: ValueType.TEXT, styleName: 'rg-cell-readonly' },
+ { name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '하수처리시설코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'mainFcltSn', fieldName: 'mainFcltSn', header: { text: '연결된중심시설일련번호' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'isMainYn', fieldName: 'isMainYn', header: { text: '중심처리시설여부' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ ],
+ columnLayout: [
+ 'swtrmtFcltNm',
+ 'fcltPstnCn',
+ 'mappedYn',
+ 'fcltSn',
+ 'swtrmtFcltCd',
+ 'admdstNm',
+ 'mainFcltSn',
+ 'isMainYn',
+ ],
+ rowStartNum: 1,
+ fixedColumns: 1,
+ tabKey: 'MainFacilityTarget',
+ tabLabel: '연결대상시설'
+};
+
+export const MainFacilityInpColumn = {
+ tabKey: 'ST00060002',
+ tabLabel: '중심 처리 시설',
+ isSplitGrid: true,
+ left: MainFacilityColumn,
+ right: MainFacilityTargetColumn,
+};
\ No newline at end of file
diff --git a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts
new file mode 100644
index 000000000..091286300
--- /dev/null
+++ b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactColumn.ts
@@ -0,0 +1,220 @@
+import { footerInt, footerDecimal1, footerDecimal3 } from "@/components/util/grid/footerSummary";
+import { ValueType } from "realgrid";
+
+/**
+ * 하수도 통계 관리 > 06. 공공하수처리시설
+ */
+export const PublicSewageFactColumn = {
+ columns: [
+ // 행정구역
+ { name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, editable: false, footer: { text: '합계' }, styleName: 'rg-cell-readonly' },
+
+ // 시설명
+ { name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '시설명(500m³/일 이상/미만)' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 소재지
+ { name: 'impdFcltPstnCn', fieldName: 'impdFcltPstnCn', header: { text: '소재지' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 시설용량
+ { name: 'prcsFcltCpct', fieldName: 'prcsFcltCpct', header: { text: '시설용량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-total' },
+
+ // (m³/일)
+ { name: 'prcsFcltPhysCpct', fieldName: 'prcsFcltPhysCpct', header: { text: '물리적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+ { name: 'prcsFcltBoilCpct', fieldName: 'prcsFcltBoilCpct', header: { text: '생물학적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+ { name: 'prcsFcltAltdCpct', fieldName: 'prcsFcltAltdCpct', header: { text: '고도' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+
+ // 유입하수량
+ { name: 'inflwSwageQnt', fieldName: 'inflwSwageQnt', header: { text: '유입하수량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // (m³/일)
+ { name: 'inflwSwagePhysQnt', fieldName: 'inflwSwagePhysQnt', header: { text: '물리적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+ { name: 'inflwSwageBoilQnt', fieldName: 'inflwSwageBoilQnt', header: { text: '생물학적' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+ { name: 'inflwSwageAltdQnt', fieldName: 'inflwSwageAltdQnt', header: { text: '고도' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
+
+ // 방류량
+ { name: 'prcsQnt', fieldName: 'prcsQnt', header: { text: '방류량(500m³/일 이상/미만)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 방류량 - (m³/일)
+ { name: 'prcsPhysCpct', fieldName: 'prcsPhysCpct', header: { text: '물리적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'prcsBoilCpct', fieldName: 'prcsBoilCpct', header: { text: '생물학적' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'prcsAltdCpct', fieldName: 'prcsAltdCpct', header: { text: '고도' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 수질
+ { name: 'inflwBodVl', fieldName: 'inflwBodVl', header: { text: '유입BOD' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'dschgBodVl', fieldName: 'dschgBodVl', header: { text: '방류BOD' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'inflwTocQnt', fieldName: 'inflwTocQnt', header: { text: '유입TOC' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'dschgTocQnt', fieldName: 'dschgTocQnt', header: { text: '방류TOC' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'inflwSsQnt', fieldName: 'inflwSsQnt', header: { text: '유입SS' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'dschgSsQnt', fieldName: 'dschgSsQnt', header: { text: '방류SS' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'inflwTnVl', fieldName: 'inflwTnVl', header: { text: '유입T-N' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000', styleName: 'rg-cell-readonly' },
+ { name: 'dschgTnVl', fieldName: 'dschgTnVl', header: { text: '방류T-N' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000', styleName: 'rg-cell-readonly' },
+ { name: 'inflwTpVl', fieldName: 'inflwTpVl', header: { text: '유입T-P' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000', styleName: 'rg-cell-readonly' },
+ { name: 'dschgTpVl', fieldName: 'dschgTpVl', header: { text: '방류T-P' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000', styleName: 'rg-cell-readonly' },
+ { name: 'inflwGrssClfgVl', fieldName: 'inflwGrssClfgVl', header: { text: '유입총대장균군수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'dschgGrssClfgVl', fieldName: 'dschgGrssClfgVl', header: { text: '방류총대장균군수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 처리특성
+ { name: 'prcsRt', fieldName: 'prcsRt', header: { text: '처리효율(%)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-total' },
+ { name: 'prcsLodQnt', fieldName: 'prcsLodQnt', header: { text: '처리부하량(kgBOD/D)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-total' },
+ { name: 'prcsMthdExpln', fieldName: 'prcsMthdExpln', header: { text: '처리방법' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 연계처리량
+ { name: 'wholHmnQnt', fieldName: 'wholHmnQnt', header: { text: '분뇨' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'wholLvstQnt', fieldName: 'wholLvstQnt', header: { text: '축산' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'wholEfntQnt', fieldName: 'wholEfntQnt', header: { text: '침출수' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'wholEtcQnt', fieldName: 'wholEtcQnt', header: { text: '기타' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 시설정보
+ { name: 'telNo', fieldName: 'telNo', header: { text: '전화번호' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'cmptnStrtYmd', fieldName: 'cmptnStrtYmd', header: { text: '준공일' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'oprtngStrtYmd', fieldName: 'oprtngStrtYmd', header: { text: '가동개시일' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'wholBizVl', fieldName: 'wholBizVl', header: { text: '사업비' }, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 방류수 소독방법
+ { name: 'eflntDsnfMthdExpln', fieldName: 'eflntDsnfMthdExpln', header: { text: '방류수 소독방법' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 방류수역
+ { name: 'wtsysNm', fieldName: 'wtsysNm', header: { text: '수계' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'trbtrNm', fieldName: 'trbtrNm', header: { text: '지류' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'dtlUnitZoneCn', fieldName: 'dtlUnitZoneCn', header: { text: '세부단위구역' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'rgnSeNm', fieldName: 'rgnSeNm', header: { text: '지역구분' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 방류수역 > 중권역
+ { name: 'msirbCn', fieldName: 'msirbCn', header: { text: '명칭' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'goalWqNo', fieldName: 'goalWqNo', header: { text: '목표수질(BOD)' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 에너지 자립률
+ { name: 'engySrlneRt', fieldName: 'engySrlneRt', header: { text: '에너지자립률(%)' }, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 에너지 자체 생산량
+ { name: 'engyItslfPrdctnQnt', fieldName: 'engyItslfPrdctnQnt', header: { text: '에너지자체생산량(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 연간 총 에너지 사용량
+ { name: 'anlEngyWholUseQnt', fieldName: 'anlEngyWholUseQnt', header: { text: '계(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'anlElpwrUseQnt', fieldName: 'anlElpwrUseQnt', header: { text: '총 전력사용량(kWh)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'itslfEngyUseQnt', fieldName: 'itslfEngyUseQnt', header: { text: '자체 에너지사용량(TOE)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+
+ // 하수처리량당 CO2배출량
+ { name: 'swtrmtEmsnQnt', fieldName: 'swtrmtEmsnQnt', header: { text: '하수처리량당 CO2배출량(kgCO2/m³)' }, editable: false, footer: footerDecimal3, valueType: ValueType.NUMBER, dataFormat: '#,##0.000', styleName: 'rg-cell-total' },
+
+ // 운영주체
+ { name: 'operMnbdCn', fieldName: 'operMnbdCn', header: { text: '운영주체(자체/공기업/민간대행)' }, editable: false, styleName: 'rg-cell-readonly' },
+
+ // 위탁현황
+ { name: 'prxyBzentyNmCn', fieldName: 'prxyBzentyNmCn', header: { text: '위탁업체명' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'cnsgnCstVl', fieldName: 'cnsgnCstVl', header: { text: '위탁비용(백만원/년)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly' },
+ { name: 'prxyCtrtCn', fieldName: 'prxyCtrtCn', header: { text: '위탁계약기간' } },
+
+ // 기타
+ { name: 'intgPrcsFcltCn', fieldName: 'intgPrcsFcltCn', header: { text: '중심처리시설' }, editable: false, styleName: 'rg-cell-readonly' },
+ { name: 'wholNope', fieldName: 'wholNope', header: { text: '직원총수(명)' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0', styleName: 'rg-cell-readonly' },
+ { name: 'sftyAcdntEvntcsCnt', fieldName: 'sftyAcdntEvntcsCnt', header: { text: '안전사고건수' }, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
+ { name: 'rmk', fieldName: '비고', header: { text: '비고' } },
+ { 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, styleName: 'rg-cell-readonly' },
+ { name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '하수처리시설코드' }, visible: false, editable: false, styleName: 'rg-cell-readonly' },
+ ],
+
+ columnLayout: [
+ {
+ name: 'administrative',
+ hideChildHeaders: false,
+ header: { text: '행정구역' },
+ items: ['ctpvNm', 'sggNm'],
+ },
+ 'swtrmtFcltNm',
+ 'impdFcltPstnCn',
+ 'prcsFcltCpct',
+ {
+ name: 'facilityCapacityDetail',
+ hideChildHeaders: false,
+ header: { text: '(m³/일)' },
+ items: ['prcsFcltPhysCpct', 'prcsFcltBoilCpct', 'prcsFcltAltdCpct'],
+ },
+ 'inflwSwageQnt',
+ {
+ name: 'influentWaterDetail',
+ hideChildHeaders: false,
+ header: { text: '(m³/일)' },
+ items: ['inflwSwagePhysQnt', 'inflwSwageBoilQnt', 'inflwSwageAltdQnt'],
+ },
+ 'prcsQnt',
+ {
+ name: 'effluentWaterDetail',
+ hideChildHeaders: false,
+ header: { text: '(m³/일)' },
+ items: ['prcsPhysCpct', 'prcsBoilCpct', 'prcsAltdCpct'],
+ },
+ 'inflwBodVl',
+ 'dschgBodVl',
+ 'inflwTocQnt',
+ 'dschgTocQnt',
+ 'inflwSsQnt',
+ 'dschgSsQnt',
+ 'inflwTnVl',
+ 'dschgTnVl',
+ 'inflwTpVl',
+ 'dschgTpVl',
+ 'inflwGrssClfgVl',
+ 'dschgGrssClfgVl',
+ 'prcsRt',
+ 'prcsLodQnt',
+ 'prcsMthdExpln',
+ {
+ name: 'linkedTreatment',
+ hideChildHeaders: false,
+ header: { text: '연계처리량(m³/일) (500m³/일 이상/미만)' },
+ items: ['wholHmnQnt', 'wholLvstQnt', 'wholEfntQnt', 'wholEtcQnt'],
+ },
+ 'telNo',
+ 'cmptnStrtYmd',
+ 'oprtngStrtYmd',
+ 'wholBizVl',
+ 'eflntDsnfMthdExpln',
+ {
+ name: 'dischargeArea',
+ hideChildHeaders: false,
+ header: { text: '방류수역' },
+ items: [
+ 'wtsysNm',
+ 'trbtrNm',
+ 'dtlUnitZoneCn',
+ 'rgnSeNm',
+ {
+ name: 'mediumWatershed',
+ hideChildHeaders: false,
+ header: { text: '중권역' },
+ items: ['msirbCn', 'goalWqNo'],
+ },
+ ],
+ },
+ 'engySrlneRt',
+ 'engyItslfPrdctnQnt',
+ {
+ name: 'energy',
+ hideChildHeaders: false,
+ header: { text: '연간 총 에너지 사용량(TOE)' },
+ items: ['anlEngyWholUseQnt', 'anlElpwrUseQnt', 'itslfEngyUseQnt'],
+ },
+ 'swtrmtEmsnQnt',
+ 'operMnbdCn',
+ {
+ name: 'consignmentStatus',
+ hideChildHeaders: false,
+ header: { text: '위탁현황' },
+ items: ['prxyBzentyNmCn', 'cnsgnCstVl', 'prxyCtrtCn'],
+ },
+ 'intgPrcsFcltCn',
+ 'wholNope',
+ 'sftyAcdntEvntcsCnt',
+ 'rmk',
+ 'admdstCd',
+ 'fcltSn',
+ 'swtrmtFcltCd',
+ ],
+ rowStartNum: 3,
+ fixedColumns: 2,
+ tabKey: 'ST00060001',
+ tabLabel: '공공 하수처리 시설'
+};
\ No newline at end of file
diff --git a/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactInpColumn.ts b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactInpColumn.ts
new file mode 100644
index 000000000..3a8345224
--- /dev/null
+++ b/apps/st/src/components/util/column/input/PublicSewageFactInpColumn/PublicSewageFactInpColumn.ts
@@ -0,0 +1,8 @@
+import type { ColumnInfoList } from "@/components/type/DataGrid.type";
+import { MainFacilityInpColumn } from "./MainFacilityInpColumn";
+import { PublicSewageFactColumn } from "./PublicSewageFactColumn";
+
+export const PublicSewageFactInpColumnList: ColumnInfoList[] = [
+ PublicSewageFactColumn,
+ MainFacilityInpColumn,
+];
\ No newline at end of file
diff --git a/apps/st/src/entities/statistics/api/dashboard/dashboard-queries.ts b/apps/st/src/entities/statistics/api/dashboard/dashboard-queries.ts
index 2f37dbaa2..5b4e124f8 100644
--- a/apps/st/src/entities/statistics/api/dashboard/dashboard-queries.ts
+++ b/apps/st/src/entities/statistics/api/dashboard/dashboard-queries.ts
@@ -41,11 +41,14 @@ export function useDashboardUnSubmitCount(
params: DashboardSearchParams | null,
) {
return useQuery({
- queryKey: createDashboardQueryKey("un-submit-count", params),
+ queryKey: createDashboardQueryKey("submission-status", params),
queryFn: async () => {
if (!params)
throw new Error("Dashboard search params are required.");
- const response = await dashboardApi.getUnSubmitCount(params);
+ const response = await dashboardApi.getUnSubmitCount({
+ ...params,
+ unSubmitOnly: true,
+ });
return response.data;
},
enabled: hasRequiredDashboardParams(params),
diff --git a/apps/st/src/entities/statistics/api/dashboard/dashboard-service.ts b/apps/st/src/entities/statistics/api/dashboard/dashboard-service.ts
index 5fcaa3ac8..0bb830e61 100644
--- a/apps/st/src/entities/statistics/api/dashboard/dashboard-service.ts
+++ b/apps/st/src/entities/statistics/api/dashboard/dashboard-service.ts
@@ -35,7 +35,7 @@ async function getUnSubmitCount(
): Promise
> {
const response = await stClient.get<
DashboardApiResponse
- >(`${ENDPOINT.ST_SERVICE.DASHBOARD}/un-submit-count`, { params });
+ >(`${ENDPOINT.ST_SERVICE.DASHBOARD}/submission-status`, { params });
return response.data;
}
diff --git a/apps/st/src/entities/statistics/api/statistics-service.ts b/apps/st/src/entities/statistics/api/statistics-service.ts
index b7aec86ac..37cd9e3a6 100644
--- a/apps/st/src/entities/statistics/api/statistics-service.ts
+++ b/apps/st/src/entities/statistics/api/statistics-service.ts
@@ -26,6 +26,8 @@ import {
type SubmitExceptionResponse,
type ImrResponse,
type ImrStatusResponse,
+ type SubmitVerifyExceptionRequest,
+ type SubmitVerifyExceptionResponse,
} from "../model/statistics-interface";
export class StatisticsApiService implements StatisticsService {
@@ -164,6 +166,14 @@ export class StatisticsApiService implements StatisticsService {
);
return response.data;
}
+
+ public async SubmitVerifyException(param: SubmitVerifyExceptionRequest): Promise {
+ const response = await stClient.put(
+ `${ENDPOINT.ST_SERVICE.INPUTVERIFY}/results/exception`,
+ param,
+ );
+ return response.data;
+ }
}
export const statisticsApi = new StatisticsApiService();
diff --git a/apps/st/src/entities/statistics/model/dashboard/dashboard-interface.ts b/apps/st/src/entities/statistics/model/dashboard/dashboard-interface.ts
index f66eec7dc..b0d9093a0 100644
--- a/apps/st/src/entities/statistics/model/dashboard/dashboard-interface.ts
+++ b/apps/st/src/entities/statistics/model/dashboard/dashboard-interface.ts
@@ -3,6 +3,10 @@ export interface DashboardSearchParams {
dtlInstCd: string;
enoCd?: string;
laeSeCd?: string;
+ sewerBzmnCd?: string;
+ sido?: string;
+ sggNm?: string;
+ unSubmitOnly?: boolean;
}
export interface DashboardApiResponse {
@@ -34,13 +38,19 @@ export interface VrfcErrCountResponse {
export interface UnSubmitCountResponse {
statsYr: string;
- unSubmitCount: number;
- unSubmitList: UnSubmitStatsResponse[];
+ statusList: UnSubmitStatsResponse[];
+ submittedCount: number;
+ totalCount: number;
+ unSubmittedCount: number;
}
export interface UnSubmitStatsResponse {
+ sbmsnYn: string;
+ sidoSggNm: string;
statsCd: string;
statsNm: string;
+ statusCd: string;
+ statusNm: string;
}
export interface StatsSubmissionResponse {
diff --git a/apps/st/src/entities/statistics/model/input/statistics-sewage-supply-rate-input-interface.ts b/apps/st/src/entities/statistics/model/input/statistics-sewage-supply-rate-input-interface.ts
index f88e9a08f..de49aee29 100644
--- a/apps/st/src/entities/statistics/model/input/statistics-sewage-supply-rate-input-interface.ts
+++ b/apps/st/src/entities/statistics/model/input/statistics-sewage-supply-rate-input-interface.ts
@@ -221,7 +221,7 @@ export function getVerificationPeriodActionBlockedMessage(
const to = formatCheckInputYmdAsDash(v.endYmd);
const range =
from && to ? `${from} ~ ${to}` : [from, to].filter(Boolean).join(" ~ ");
- return `검증기간에는 저장, 제출, 제출 취소를 할 수 없습니다.\n검증기간: ${range}`;
+ return `검증기간에는 저장, 제출, 제출 취소를\n 할 수 없습니다.\n(검증기간: ${range})`;
}
export interface StatisticsInputSewSupplyRateService {
diff --git a/apps/st/src/entities/statistics/model/statistics-interface.ts b/apps/st/src/entities/statistics/model/statistics-interface.ts
index 5c95fb8bf..00383e994 100644
--- a/apps/st/src/entities/statistics/model/statistics-interface.ts
+++ b/apps/st/src/entities/statistics/model/statistics-interface.ts
@@ -268,6 +268,24 @@ export interface ReviewSubmitResponse {
message?: string;
}
+export interface SubmitVerifyExceptionRequest {
+ sewerBzmnCd: string;
+ statsYr: string;
+ statsCd: string;
+ userId: string;
+ exceptionList: [
+ {
+ vrfcSn: number;
+ prcsOpnnExpln: string;
+ }
+ ];
+}
+
+export interface SubmitVerifyExceptionResponse {
+ status: string;
+ message?: string;
+}
+
export interface StatisticsService {
getSidoList(params?: { instSeCd?: string }): Promise>;
getSggList(sidoName: string, params?: { instSeCd?: string; gugunSkipYn?: "Y" | "N" }): Promise>;
@@ -280,7 +298,8 @@ export interface StatisticsService {
saveReviewOpinion(param: ReviewOpinionSaveRequest): Promise;
getReviewOpinionDetail(param: getReviewOpinionDetailRequest): Promise;
saveReviewReturn(param: ReviewReturnSaveRequest): Promise;
- submitReview(param :ReviewSubmitRequest): Promise;
+ submitReview(param: ReviewSubmitRequest): Promise;
getVerificationResultList(param: VerificationResultListRequest): Promise;
getImrStatus(param: string): Promise;
+ SubmitVerifyException(param: SubmitVerifyExceptionRequest): Promise;
}
\ No newline at end of file
diff --git a/apps/st/src/pages/statistics/ui/panels/unsubmit-panel.tsx b/apps/st/src/pages/statistics/ui/panels/unsubmit-panel.tsx
index fae349694..c4981be02 100644
--- a/apps/st/src/pages/statistics/ui/panels/unsubmit-panel.tsx
+++ b/apps/st/src/pages/statistics/ui/panels/unsubmit-panel.tsx
@@ -24,7 +24,7 @@ export function UnSubmitPanel({ params }: UnSubmitPanelProps) {
미제출 지표
{data && (
- {data.unSubmitCount}건
+ {data.unSubmittedCount ?? 0}건
)}
@@ -43,13 +43,13 @@ export function UnSubmitPanel({ params }: UnSubmitPanelProps) {
)}
{data && (