[st] - 입력단 작업 완료
This commit is contained in:
@@ -3,9 +3,27 @@ import { ValueType } from "realgrid"
|
||||
|
||||
import RealGrid, { GridFitStyle } from "realgrid"
|
||||
import { RealGridReact, RGDataColumn } from "realgrid-react"
|
||||
import type { DataGridProps, RealGridColumnInfo, GridViewWithSetColumns, FooterItemWithCallback, CellStyleCallback } from "../type/DataGrid.type"
|
||||
import type { DataGridProps, RealGridColumnInfo, GridViewWithSetColumns, FooterItemWithCallback, CellStyleCallback, CellStyleCallbackResult, CellStyleCallbackParams } from "../type/DataGrid.type"
|
||||
import { getComputedValueCallback } from "@/components/util/grid/computedFieldCallbacks"
|
||||
|
||||
function mergeCellStyleCallbackResult(
|
||||
baseStyleName: string | undefined,
|
||||
extra: CellStyleCallbackResult | undefined,
|
||||
): CellStyleCallbackResult {
|
||||
if (!extra) {
|
||||
return baseStyleName ? { styleName: baseStyleName } : {};
|
||||
}
|
||||
if (typeof extra === "string") {
|
||||
const styleName = [extra, baseStyleName].filter(Boolean).join(" ");
|
||||
return styleName ? { styleName } : {};
|
||||
}
|
||||
const styleName = [extra.styleName, baseStyleName].filter(Boolean).join(" ");
|
||||
return {
|
||||
...extra,
|
||||
...(styleName ? { styleName } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
// RealGrid 타입 확장
|
||||
declare module "realgrid" {
|
||||
interface GridView {
|
||||
@@ -411,18 +429,33 @@ const CompactDataGrid = ({
|
||||
columns.forEach((column) => {
|
||||
const baseStyleName = column.styleName;
|
||||
const gridCol = currentGridView.columnByName(column.name) as {
|
||||
styleCallback?: (g: unknown, dataCell: { itemIndex?: number; index?: { itemIndex?: number }; dataField?: string; fieldName?: string }) => string;
|
||||
styleCallback?: (
|
||||
g: unknown,
|
||||
dataCell: {
|
||||
itemIndex?: number;
|
||||
index?: { itemIndex?: number };
|
||||
dataField?: string;
|
||||
fieldName?: string;
|
||||
},
|
||||
) => CellStyleCallbackResult;
|
||||
} | null;
|
||||
if (gridCol) {
|
||||
gridCol.styleCallback = (_g, dataCell) => {
|
||||
gridCol.styleCallback = (grid, dataCell) => {
|
||||
const itemIndex = dataCell?.index?.itemIndex ?? dataCell?.itemIndex ?? -1;
|
||||
const fieldName = (dataCell?.dataField ?? dataCell?.fieldName ?? column.fieldName) ?? '';
|
||||
const fieldName =
|
||||
(dataCell?.dataField ?? dataCell?.fieldName ?? column.fieldName) ?? "";
|
||||
const data = rowDataRef.current;
|
||||
if (itemIndex < 0 || itemIndex >= data.length) return baseStyleName ?? '';
|
||||
if (itemIndex < 0 || itemIndex >= data.length) {
|
||||
return mergeCellStyleCallbackResult(baseStyleName, undefined);
|
||||
}
|
||||
const row = data[itemIndex] as Record<string, string | number>;
|
||||
const extra = cellStyleCallbackRef.current?.({ rowIndex: itemIndex, fieldName, row });
|
||||
if (!extra) return baseStyleName ?? '';
|
||||
return baseStyleName ? `${extra} ${baseStyleName}` : extra;
|
||||
const extra = cellStyleCallbackRef.current?.({
|
||||
rowIndex: itemIndex,
|
||||
fieldName,
|
||||
row,
|
||||
grid: grid as CellStyleCallbackParams["grid"],
|
||||
});
|
||||
return mergeCellStyleCallbackResult(baseStyleName, extra);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -11,6 +11,8 @@ import { Button } from "@common/components";
|
||||
|
||||
import type {
|
||||
CellStyleCallback,
|
||||
CellStyleCallbackParams,
|
||||
CellStyleCallbackResult,
|
||||
CellTooltipCallback,
|
||||
ColumnLayoutItem,
|
||||
DataGridProps,
|
||||
@@ -28,6 +30,24 @@ import {
|
||||
} from "@/components/util/gridExcelExport";
|
||||
import { useTabStore } from "@/store/tab-store";
|
||||
|
||||
function mergeCellStyleCallbackResult(
|
||||
baseStyleName: string | undefined,
|
||||
extra: CellStyleCallbackResult | undefined,
|
||||
): CellStyleCallbackResult {
|
||||
if (!extra) {
|
||||
return baseStyleName ? { styleName: baseStyleName } : {};
|
||||
}
|
||||
if (typeof extra === "string") {
|
||||
const styleName = [extra, baseStyleName].filter(Boolean).join(" ");
|
||||
return styleName ? { styleName } : {};
|
||||
}
|
||||
const styleName = [extra.styleName, baseStyleName].filter(Boolean).join(" ");
|
||||
return {
|
||||
...extra,
|
||||
...(styleName ? { styleName } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
// RealGrid 타입 확장
|
||||
declare module "realgrid" {
|
||||
interface GridView {
|
||||
@@ -570,6 +590,14 @@ function buildFieldsFromColumns(
|
||||
"denominatorQuotient" in col.computed &&
|
||||
col.computed.numeratorQuotient.length === 2 &&
|
||||
col.computed.denominatorQuotient.length === 2;
|
||||
const hasQuotientTimesMultiplierPercent =
|
||||
col.computed.type === "quotientTimesMultiplierPercent" &&
|
||||
"numeratorField" in col.computed &&
|
||||
"denominatorField" in col.computed &&
|
||||
"multiplierField" in col.computed &&
|
||||
Boolean(col.computed.numeratorField) &&
|
||||
Boolean(col.computed.denominatorField) &&
|
||||
Boolean(col.computed.multiplierField);
|
||||
if (
|
||||
hasFields ||
|
||||
hasNumeratorDenominator ||
|
||||
@@ -581,7 +609,8 @@ function buildFieldsFromColumns(
|
||||
hasPumpGrossPpqty ||
|
||||
hasBodPrcsRt ||
|
||||
hasSumPerTenThousand ||
|
||||
hasQuotientRatioPercent
|
||||
hasQuotientRatioPercent ||
|
||||
hasQuotientTimesMultiplierPercent
|
||||
) {
|
||||
const computedCallback = getComputedValueCallback(
|
||||
col.computed,
|
||||
@@ -1922,7 +1951,7 @@ const DataGrid = ({
|
||||
dataField?: string;
|
||||
fieldName?: string;
|
||||
},
|
||||
) => string;
|
||||
) => CellStyleCallbackResult;
|
||||
renderer?: { showTooltip?: boolean };
|
||||
} | null;
|
||||
if (gridCol) {
|
||||
@@ -1961,7 +1990,7 @@ const DataGrid = ({
|
||||
{ showTooltip: true },
|
||||
);
|
||||
}
|
||||
gridCol.styleCallback = (_g, dataCell) => {
|
||||
gridCol.styleCallback = (grid, dataCell) => {
|
||||
const itemIndex =
|
||||
dataCell?.index?.itemIndex ??
|
||||
dataCell?.itemIndex ??
|
||||
@@ -1974,8 +2003,12 @@ const DataGrid = ({
|
||||
if (
|
||||
itemIndex < 0 ||
|
||||
itemIndex >= data.length
|
||||
)
|
||||
return baseStyleName ?? "";
|
||||
) {
|
||||
return mergeCellStyleCallbackResult(
|
||||
baseStyleName,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
const row = data[itemIndex] as Record<
|
||||
string,
|
||||
string | number
|
||||
@@ -1985,11 +2018,12 @@ const DataGrid = ({
|
||||
rowIndex: itemIndex,
|
||||
fieldName,
|
||||
row,
|
||||
grid: grid as CellStyleCallbackParams["grid"],
|
||||
});
|
||||
if (!extra) return baseStyleName ?? "";
|
||||
return baseStyleName
|
||||
? `${extra} ${baseStyleName}`
|
||||
: extra;
|
||||
return mergeCellStyleCallbackResult(
|
||||
baseStyleName,
|
||||
extra,
|
||||
);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -10,9 +10,27 @@ import { useAlertStore } from "@/shared/lib";
|
||||
import { Tabs, TabsContent,TabsList, TabsTrigger } from "@common/components";
|
||||
import { Button } from "@common/components";
|
||||
|
||||
import type { CellStyleCallback,ColumnConfig, ColumnInfo, ColumnLayoutItem, FooterItemWithCallback, GridViewWithSetColumns, RealGridColumnInfo, TabDataGridProps } from "../type/DataGrid.type"
|
||||
import type { CellStyleCallback, CellStyleCallbackParams, CellStyleCallbackResult, ColumnConfig, ColumnInfo, ColumnLayoutItem, FooterItemWithCallback, GridViewWithSetColumns, RealGridColumnInfo, TabDataGridProps } from "../type/DataGrid.type"
|
||||
|
||||
import GridTopActionButton from "./GridTopActionButton";
|
||||
|
||||
function mergeCellStyleCallbackResult(
|
||||
baseStyleName: string | undefined,
|
||||
extra: CellStyleCallbackResult | undefined,
|
||||
): CellStyleCallbackResult {
|
||||
if (!extra) {
|
||||
return baseStyleName ? { styleName: baseStyleName } : {};
|
||||
}
|
||||
if (typeof extra === "string") {
|
||||
const styleName = [extra, baseStyleName].filter(Boolean).join(" ");
|
||||
return styleName ? { styleName } : {};
|
||||
}
|
||||
const styleName = [extra.styleName, baseStyleName].filter(Boolean).join(" ");
|
||||
return {
|
||||
...extra,
|
||||
...(styleName ? { styleName } : {}),
|
||||
};
|
||||
}
|
||||
import SplitDataGrid from "./SplitDataGrid";
|
||||
|
||||
import { getComputedValueCallback } from "@/components/util/grid/computedFieldCallbacks"
|
||||
@@ -73,10 +91,12 @@ function safeGridViewRefresh(gv: { refresh?: () => void } | null | undefined) {
|
||||
function safeColumnByName(
|
||||
gv: { columnByName?: (name: string) => unknown } | null | undefined,
|
||||
name: string,
|
||||
): { styleCallback?: (g: unknown, dataCell: Record<string, unknown>) => string } | null {
|
||||
): { styleCallback?: (g: unknown, dataCell: Record<string, unknown>) => CellStyleCallbackResult } | null {
|
||||
if (!gv?.columnByName) return null;
|
||||
try {
|
||||
const col = gv.columnByName(name) as { styleCallback?: (g: unknown, dataCell: Record<string, unknown>) => string } | null;
|
||||
const col = gv.columnByName(name) as {
|
||||
styleCallback?: (g: unknown, dataCell: Record<string, unknown>) => CellStyleCallbackResult;
|
||||
} | null;
|
||||
return col ?? null;
|
||||
} catch {
|
||||
return null;
|
||||
@@ -296,7 +316,7 @@ const TabDataGrid = ({
|
||||
const gridCol = safeColumnByName(gv, column.name);
|
||||
if (!gridCol) continue;
|
||||
const baseStyleName = column.styleName;
|
||||
gridCol.styleCallback = (_g, dataCell) => {
|
||||
gridCol.styleCallback = (grid, dataCell) => {
|
||||
const dc = dataCell as {
|
||||
itemIndex?: number;
|
||||
index?: { itemIndex?: number };
|
||||
@@ -307,16 +327,16 @@ const TabDataGrid = ({
|
||||
const fieldName = dc?.dataField ?? dc?.fieldName ?? column.fieldName;
|
||||
const data = rowDataMapRef.current.get(tabKey) || [];
|
||||
if (itemIndex < 0 || itemIndex >= data.length) {
|
||||
return baseStyleName ?? "";
|
||||
return mergeCellStyleCallbackResult(baseStyleName, undefined);
|
||||
}
|
||||
const row = data[itemIndex] as Record<string, string | number>;
|
||||
const extra = cellStyleCallbackRef.current?.({
|
||||
rowIndex: itemIndex,
|
||||
fieldName,
|
||||
row,
|
||||
grid: grid as CellStyleCallbackParams["grid"],
|
||||
});
|
||||
if (!extra) return baseStyleName ?? "";
|
||||
return baseStyleName ? `${extra} ${baseStyleName}` : extra;
|
||||
return mergeCellStyleCallbackResult(baseStyleName, extra);
|
||||
};
|
||||
attachedCount += 1;
|
||||
}
|
||||
|
||||
@@ -1140,8 +1140,8 @@ const PrivateSewageFacilityInp = () => {
|
||||
onValuesChange={setSearchValues}
|
||||
/>
|
||||
{showActionToolbarCard && (
|
||||
<div className="card !py-0">
|
||||
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
|
||||
<div className="card !py-0">
|
||||
<div className="flex justify-end items-center gap-[0.6rem] m-[0.6rem]">
|
||||
<VerificationResultButton
|
||||
VerificationResultButtonFunc={openVerificationHistoryDialog}
|
||||
/>
|
||||
@@ -1150,7 +1150,7 @@ const PrivateSewageFacilityInp = () => {
|
||||
<LastYearDataButton
|
||||
getLastYearDataFunc={() => void lastYearDataFunc()}
|
||||
/>
|
||||
<SubmitButton submitFunc={submitFunc} />
|
||||
<SubmitButton submitFunc={submitFunc} />
|
||||
</>
|
||||
)}
|
||||
{activeTabStatus?.laeSbmsnSttsCd === "2" && (
|
||||
|
||||
@@ -967,7 +967,7 @@ const PumpingStationInp = () => {
|
||||
onValuesChange={setSearchValues}
|
||||
/>
|
||||
{showActionToolbarCard && (
|
||||
<div className="card !py-0">
|
||||
<div className="card !py-0">
|
||||
<div className="m-[0.6rem] flex items-center justify-end gap-[0.6rem]">
|
||||
<VerificationResultButton
|
||||
VerificationResultButtonFunc={openVerificationHistoryDialog}
|
||||
@@ -977,18 +977,18 @@ const PumpingStationInp = () => {
|
||||
<LastYearDataButton
|
||||
getLastYearDataFunc={() => void getLastYearDataFunc()}
|
||||
/>
|
||||
<SubmitButton submitFunc={submitFunc} />
|
||||
<SubmitButton submitFunc={submitFunc} />
|
||||
</>
|
||||
)}
|
||||
{statusInfo?.laeSbmsnSttsCd === "2" && (
|
||||
<CancelSubmitButton cnacelSubmitFunc={cnacelSubmitFunc} />
|
||||
)}
|
||||
{showSaveInToolbar && <SaveButton saveFunc={saveFunc} />}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{showArticleToolbarCard && (
|
||||
<div className="card !py-0">
|
||||
<div className="card !py-0">
|
||||
<div className="m-[0.6rem] flex items-center justify-end gap-[0.6rem]">
|
||||
{showNotApplicable && (
|
||||
<NotApplicableCheckButton
|
||||
@@ -996,10 +996,10 @@ const PumpingStationInp = () => {
|
||||
setIsCheck={setIsNotApplicable}
|
||||
/>
|
||||
)}
|
||||
<AddArticleButton addArticleFunc={addArticleFunc} />
|
||||
<DeleteArticleButton deleteArticleFunc={deleteArticleFunc} />
|
||||
</div>
|
||||
</div>
|
||||
<AddArticleButton addArticleFunc={addArticleFunc} />
|
||||
<DeleteArticleButton deleteArticleFunc={deleteArticleFunc} />
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{isLoading && (
|
||||
<div className="absolute inset-0 z-50 flex items-center justify-center rounded-lg p-10 [data-theme='black']:bg-transparent">
|
||||
@@ -1008,14 +1008,14 @@ const PumpingStationInp = () => {
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<DataGrid
|
||||
<DataGrid
|
||||
key={canEditGrid ? "enterable" : "readonly"}
|
||||
getGridRef={gridRef as RefObject<RealGridReact | null>}
|
||||
columnInfo={columnInfo}
|
||||
rowStartNum={PumpingStationInpColumn.rowStartNum}
|
||||
fixedColumns={PumpingStationInpColumn.fixedColumns}
|
||||
rowData={rowData}
|
||||
setRowData={setRowData}
|
||||
rowData={rowData}
|
||||
setRowData={setRowData}
|
||||
getGridDataRef={gridGetRowsRef}
|
||||
showHeaderCheckbox
|
||||
statusInfo={statusInfo}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -37,7 +37,11 @@ import {
|
||||
type SewerageServiceLevelResidentFriendlyFactSaveItem,
|
||||
type SewerageServiceLevelVerificationResult,
|
||||
} from "@/entities/statistics/model/input/statistics-input-sewerage-service-level-interface";
|
||||
import type { SewerageStatusInfo, cancelSubmitRequest, ImrStatusResponse } from "@/entities/statistics/model/statistics-interface";
|
||||
import type {
|
||||
SewerageStatusInfo,
|
||||
cancelSubmitRequest,
|
||||
ImrStatusResponse,
|
||||
} from "@/entities/statistics/model/statistics-interface";
|
||||
import type { StatisticsInputSubmitInfoFormData } from "@/entities/statistics/model/statistics-input-submit-info-schema";
|
||||
import { useAlertStore, useGlobalProgressStore, useStatisticsInputToolbarGroupGate } from "@/shared/lib";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
@@ -62,6 +66,18 @@ const SEWERAGE_SERVICE_LEVEL_COLUMN_GUIDE_STATS_CD_BY_TAB_KEY: Record<string, st
|
||||
[ResidentFriendlyFactInpColumn.tabKey]: SEWERAGE_SERVICE_LEVEL_RESIDENT_FRIENDLY_FACT_STATS_CD,
|
||||
};
|
||||
|
||||
const EMPTY_PUBLIC_SEWAGE_FACILITIES_MSG =
|
||||
"06. 공공하수처리시설 데이터가 없으면 전년도 데이터 조회 및 항목 추가가 불가능 합니다.";
|
||||
|
||||
function buildEmptyDataAlertOverrides(
|
||||
tabKey: string,
|
||||
): { alertIfResidentFriendlyEmpty?: boolean } | undefined {
|
||||
if (tabKey === ResidentFriendlyFactInpColumn.tabKey) {
|
||||
return { alertIfResidentFriendlyEmpty: true };
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
type GridRowWithVerification = Record<string, string | number> & {
|
||||
verificationResult?: SewerageServiceLevelVerificationResult;
|
||||
};
|
||||
@@ -299,6 +315,8 @@ const SewerageServiceLevelInp = () => {
|
||||
const periodEnterableRef = useRef(true);
|
||||
const activeTabRef = useRef(activeTab);
|
||||
const getGridDataRef = useRef<(() => Record<string, string | number>[]) | null>(null);
|
||||
/** ST00130002 당해 조회 결과 유무(공공하수처리시설 연동) — 전년도 조회 가능 여부 */
|
||||
const publicSewageFacilitiesAvailableRef = useRef(false);
|
||||
activeTabRef.current = activeTab;
|
||||
|
||||
useEffect(() => {
|
||||
@@ -384,9 +402,10 @@ const SewerageServiceLevelInp = () => {
|
||||
searchContext: SearchFormValues,
|
||||
mergeIntoExistingMap: boolean,
|
||||
updateLastSearchedValues: boolean,
|
||||
overrides?: { mode?: string },
|
||||
overrides?: { mode?: string; alertIfResidentFriendlyEmpty?: boolean },
|
||||
): Promise<boolean> => {
|
||||
const requestParam = overrides?.mode ? { ...param, mode: overrides.mode } : param;
|
||||
const fromPreYear = overrides?.mode === "PRE";
|
||||
|
||||
if (tabKey === ComplaintInpColumn.tabKey) {
|
||||
const response =
|
||||
@@ -426,6 +445,12 @@ const SewerageServiceLevelInp = () => {
|
||||
(residentFriendlyFactList ?? []) as SewerageServiceLevelResidentFriendlyFactItem[],
|
||||
commonInfo.ctpvNm,
|
||||
);
|
||||
if (!fromPreYear) {
|
||||
publicSewageFacilitiesAvailableRef.current = gridRows.length > 0;
|
||||
if (gridRows.length === 0 && overrides?.alertIfResidentFriendlyEmpty) {
|
||||
alert(EMPTY_PUBLIC_SEWAGE_FACILITIES_MSG);
|
||||
}
|
||||
}
|
||||
|
||||
applyRowMap(mergeIntoExistingMap, (m) => {
|
||||
m.set(ResidentFriendlyFactInpColumn.tabKey, gridRows);
|
||||
@@ -460,6 +485,7 @@ const SewerageServiceLevelInp = () => {
|
||||
searchParamRef.current = null;
|
||||
searchDoneRef.current = false;
|
||||
periodEnterableRef.current = true;
|
||||
publicSewageFacilitiesAvailableRef.current = false;
|
||||
};
|
||||
|
||||
const handleSearch = async (values: SearchFormValues) => {
|
||||
@@ -507,6 +533,7 @@ const SewerageServiceLevelInp = () => {
|
||||
values,
|
||||
!yearChangedFromLastSearch,
|
||||
true,
|
||||
buildEmptyDataAlertOverrides(activeTabRef.current),
|
||||
);
|
||||
} catch {
|
||||
alert("데이터 조회 중 오류가 발생했습니다.");
|
||||
@@ -541,6 +568,7 @@ const SewerageServiceLevelInp = () => {
|
||||
lastSearchedValues,
|
||||
true,
|
||||
false,
|
||||
buildEmptyDataAlertOverrides(tabKey),
|
||||
);
|
||||
} catch {
|
||||
alert("데이터 조회 중 오류가 발생했습니다.");
|
||||
@@ -559,6 +587,13 @@ const SewerageServiceLevelInp = () => {
|
||||
alert("먼저 데이터를 조회해주세요.");
|
||||
return;
|
||||
}
|
||||
if (
|
||||
activeTabRef.current === ResidentFriendlyFactInpColumn.tabKey &&
|
||||
!publicSewageFacilitiesAvailableRef.current
|
||||
) {
|
||||
alert(EMPTY_PUBLIC_SEWAGE_FACILITIES_MSG);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
setIsLoading(true);
|
||||
|
||||
@@ -481,17 +481,6 @@ function mapTreatWaterReuseStatusListToGridRows<
|
||||
});
|
||||
}
|
||||
|
||||
function mapWaterReuseListToGridRows<
|
||||
T extends { verificationResult?: WaterReuseVerificationResult },
|
||||
>(list: T[], ctpvNm: string): GridRowWithVerification[] {
|
||||
return list.map((item) => {
|
||||
const { verificationResult, ...rest } = item;
|
||||
const row = toGridRows([{ ctpvNm, ...rest }])[0] as GridRowWithVerification;
|
||||
if (verificationResult) row.verificationResult = verificationResult;
|
||||
return row;
|
||||
});
|
||||
}
|
||||
|
||||
const sleep = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));
|
||||
|
||||
async function waitForImrJobCompleted(
|
||||
@@ -1871,7 +1860,6 @@ const WaterReuseInp = () => {
|
||||
}, [tabStatusInfoMap, inputPeriodEnterable, isAdminInfo, columnGuidesByTab, sggOptions]);
|
||||
|
||||
const activeTabStatus = tabStatusInfoMap.get(activeTab) ?? null;
|
||||
const activeTabRowData = rowDataMap.get(activeTab) ?? [];
|
||||
const activeTabToolbar =
|
||||
toolbarSnapshotByTab.get(activeTab) ??
|
||||
computeTabToolbarSnapshot(
|
||||
|
||||
@@ -184,6 +184,13 @@ export type ComputedFieldConfig =
|
||||
numeratorQuotient: [string, string];
|
||||
denominatorQuotient: [string, string];
|
||||
type: "quotientRatioPercent";
|
||||
}
|
||||
| {
|
||||
/** (numeratorField / denominatorField) × multiplierField × 100 */
|
||||
numeratorField: string;
|
||||
denominatorField: string;
|
||||
multiplierField: string;
|
||||
type: "quotientTimesMultiplierPercent";
|
||||
};
|
||||
|
||||
export type ColumnConfig = {
|
||||
@@ -306,15 +313,30 @@ export type ColumnInfoList = {
|
||||
};
|
||||
|
||||
// 개별 셀 스타일을 동적으로 결정하기 위한 콜백 (예: 검증 오류 셀 강조)
|
||||
export type CellStyleCallbackGrid = {
|
||||
getValue?: (itemIndex: number, fieldName: string) => unknown;
|
||||
};
|
||||
|
||||
export type CellStyleCallbackParams = {
|
||||
rowIndex: number;
|
||||
fieldName: string;
|
||||
row: Record<string, string | number>;
|
||||
/** styleCallback 시점의 그리드 값 조회(행 단위 동적 스타일용) */
|
||||
grid?: CellStyleCallbackGrid;
|
||||
};
|
||||
|
||||
/** RealGrid styleCallback — 문자열(styleName) 또는 editable 등 동적 스타일 객체 */
|
||||
export type CellStyleCallbackResult =
|
||||
| string
|
||||
| {
|
||||
styleName?: string;
|
||||
editable?: boolean;
|
||||
readOnly?: boolean;
|
||||
};
|
||||
|
||||
export type CellStyleCallback = (
|
||||
params: CellStyleCallbackParams,
|
||||
) => string | undefined;
|
||||
) => CellStyleCallbackResult | undefined;
|
||||
|
||||
/** 셀 hover 시 툴팁 문구 (반환 시 해당 문구 표시, 검증 오류 메시지 등) */
|
||||
export type CellTooltipCallbackParams = {
|
||||
|
||||
+43
-42
@@ -5,74 +5,75 @@ import { ValueType } from "realgrid";
|
||||
export const ExcretaRelatedIndustryInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
|
||||
// 행정코드 (hidden)
|
||||
{ name: 'ADST_DSTR_CD', fieldName: '행정구역코드', header: { text: '행정구역코드' }, visible: false },
|
||||
{ name: 'ADST_CD', fieldName: '행정코드', header: { text: '행정코드' }, visible: false },
|
||||
{ name: 'ADST_DONG', fieldName: '행정동', header: { text: '행정동' }, visible: false },
|
||||
{ name: 'RGN_NM', fieldName: '지역명', header: { text: '지역명' }, visible: false },
|
||||
{ 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: 'ECSCS_SM', fieldName: '업체수(개소)', header: { text: '업체수(개소)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'bzentyCnt', fieldName: 'bzentyCnt', header: { text: '업체수(개소)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 종사인원(명)
|
||||
{ name: 'ECSCS_BSMN', fieldName: '종사인원(명)', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'empNope', fieldName: 'empNope', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 시설(차량) 확보현황(대수)
|
||||
{ name: 'VHCLE_SM', fieldName: '계', header: { text: '계' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'THREE_BELOW', fieldName: '3톤이하', header: { text: '3톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'FOUR_BELOW', fieldName: '4.5톤이하', header: { text: '4.5톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'EIGHT_BELOW', fieldName: '8톤이하', header: { text: '8톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ETC', fieldName: '기타', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{
|
||||
name: 'fcltSecrPrstCnt',
|
||||
fieldName: 'fcltSecrPrstCnt',
|
||||
header: { text: '계' },
|
||||
editable: false, footer:
|
||||
footerInt,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['n3TonUdrCnt', 'n4TonUdrCnt', 'n8TonUdrCnt', 'etcCnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'n3TonUdrCnt', fieldName: 'n3TonUdrCnt', header: { text: '3톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'n4TonUdrCnt', fieldName: 'n4TonUdrCnt', header: { text: '4.5톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'n8TonUdrCnt', fieldName: 'n8TonUdrCnt', header: { text: '8톤이하' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'etcCnt', fieldName: 'etcCnt', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 수집·운반 실적(m³/년)
|
||||
{ name: 'COLCT_TRSP_ACMSLT', fieldName: '수집·운반 실적(m³/년)', header: { text: '수집·운반 실적(m³/년)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'clctCnvncPrfmncQnt', fieldName: 'clctCnvncPrfmncQnt', header: { text: '수집·운반 실적(m³/년)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 의견 필드
|
||||
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, visible: false },
|
||||
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, visible: false },
|
||||
|
||||
// Hidden: Check fields : 데이터 변경 여부를 판단하는 필드로, UI에서 숨김 처리
|
||||
{ name: 'CHK_ECSCS_SM', fieldName: 'CHK_ECSCS_SM', header: { text: 'CHK_ECSCS_SM' }, visible: false },
|
||||
{ name: 'CHK_ECSCS_BSMN', fieldName: 'CHK_ECSCS_BSMN', header: { text: 'CHK_ECSCS_BSMN' }, visible: false },
|
||||
{ name: 'CHK_VHCLE_SM', fieldName: 'CHK_VHCLE_SM', header: { text: 'CHK_VHCLE_SM' }, visible: false },
|
||||
{ name: 'CHK_THREE_BELOW', fieldName: 'CHK_THREE_BELOW', header: { text: 'CHK_THREE_BELOW' }, visible: false },
|
||||
{ name: 'CHK_FOUR_BELOW', fieldName: 'CHK_FOUR_BELOW', header: { text: 'CHK_FOUR_BELOW' }, visible: false },
|
||||
{ name: 'CHK_EIGHT_BELOW', fieldName: 'CHK_EIGHT_BELOW', header: { text: 'CHK_EIGHT_BELOW' }, visible: false },
|
||||
{ name: 'CHK_ETC', fieldName: 'CHK_ETC', header: { text: 'CHK_ETC' }, visible: false },
|
||||
{ name: 'CHK_COLCT_TRSP_ACMSLT', fieldName: 'CHK_COLCT_TRSP_ACMSLT', header: { text: 'CHK_COLCT_TRSP_ACMSLT' }, visible: false },
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO', 'GUGUN']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'ECSCS_SM',
|
||||
'ECSCS_BSMN',
|
||||
'bzentyCnt',
|
||||
'empNope',
|
||||
{
|
||||
name: 'group_vehicle_status',
|
||||
header: { text: '시설(차량) 확보현황(대수)' },
|
||||
items: [
|
||||
'VHCLE_SM',
|
||||
'THREE_BELOW',
|
||||
'FOUR_BELOW',
|
||||
'EIGHT_BELOW',
|
||||
'ETC'
|
||||
'fcltSecrPrstCnt',
|
||||
'n3TonUdrCnt',
|
||||
'n4TonUdrCnt',
|
||||
'n8TonUdrCnt',
|
||||
'etcCnt'
|
||||
]
|
||||
},
|
||||
'COLCT_TRSP_ACMSLT',
|
||||
'RMK'
|
||||
'clctCnvncPrfmncQnt',
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 1,
|
||||
tabKey: 'excretaRelatedIndustryInp',
|
||||
fixedColumns: 0,
|
||||
tabKey: 'ST00120003',
|
||||
tabLabel: '분뇨수집·운반업'
|
||||
};
|
||||
+23
-46
@@ -5,82 +5,59 @@ import { ValueType } from "realgrid";
|
||||
export const PrivateSewageTreatRelatedIndustryInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
|
||||
// 행정코드 (hidden)
|
||||
{ name: 'ADST_DONG', fieldName: '행정동', header: { text: '행정동' }, visible: false },
|
||||
{ name: 'RGN_NM', fieldName: '지역명', header: { text: '지역명' }, visible: false },
|
||||
{ name: 'ADST_CD', fieldName: '행정코드', header: { text: '행정코드' }, visible: false },
|
||||
{ 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: 'CNSTRCT_ENTRPS', fieldName: '업소수', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'CNSTRCT_BSMN', fieldName: '종사인원(명)', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'designMdsrCnt', fieldName: 'designMdsrCnt', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'designMdsrNope', fieldName: 'designMdsrNope', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 개인하수처리시설 제조업
|
||||
{ name: 'MNFCTUR_ENTRPS', fieldName: '업소수', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'MNFCTUR_BSMN', fieldName: '종사인원(명)', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mfbizCnt', fieldName: 'mfbizCnt', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mfbizMdsrNope', fieldName: 'mfbizMdsrNope', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 개인하수처리시설 관리업
|
||||
{ name: 'MGMT_ENTRPS', fieldName: '업소수', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'MGMT_BSMN', fieldName: '종사인원(명)', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mngCnt', fieldName: 'mngCnt', header: { text: '업소수' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mngMdsrNope', fieldName: 'mngMdsrNope', header: { text: '종사인원(명)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 의견 필드
|
||||
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, visible: false },
|
||||
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, visible: false },
|
||||
|
||||
// Hidden: 추가 필드 (화면에 미노출이, DB 저장)
|
||||
{ name: 'CNSTRCT_FCT_CNT', fieldName: '설계시공시설개수', header: { text: '설계시공시설개수' }, visible: false },
|
||||
{ name: 'CNSTRCT_FCT_CPCTY', fieldName: '설계시공시설용량', header: { text: '설계시공시설용량' }, visible: false },
|
||||
{ name: 'MNFCTUR_STTY_CNT', fieldName: '제조정원', header: { text: '제조정원' }, visible: false },
|
||||
{ name: 'MNFCTUR_WRRTN_CNT', fieldName: '제조권원', header: { text: '제조권원' }, visible: false },
|
||||
{ name: 'MGMT_STTY_CNT', fieldName: '관리정원', header: { text: '관리정원' }, visible: false },
|
||||
{ name: 'MGMT_WRRTN_CNT', fieldName: '관리권원', header: { text: '관리권원' }, visible: false },
|
||||
|
||||
// Hidden: Check fields : 데이터 변경 여부를 판단하는 필드로, UI에서 숨김 처리
|
||||
{ name: 'CHK_CNSTRCT_ENTRPS', fieldName: 'CHK_CNSTRCT_ENTRPS', header: { text: 'CHK_CNSTRCT_ENTRPS' }, visible: false },
|
||||
{ name: 'CHK_CNSTRCT_BSMN', fieldName: 'CHK_CNSTRCT_BSMN', header: { text: 'CHK_CNSTRCT_BSMN' }, visible: false },
|
||||
{ name: 'CHK_CNSTRCT_FCT_CNT', fieldName: 'CHK_CNSTRCT_FCT_CNT', header: { text: 'CHK_CNSTRCT_FCT_CNT' }, visible: false },
|
||||
{ name: 'CHK_CNSTRCT_FCT_CPCTY', fieldName: 'CHK_CNSTRCT_FCT_CPCTY', header: { text: 'CHK_CNSTRCT_FCT_CPCTY' }, visible: false },
|
||||
{ name: 'CHK_MNFCTUR_ENTRPS', fieldName: 'CHK_MNFCTUR_ENTRPS', header: { text: 'CHK_MNFCTUR_ENTRPS' }, visible: false },
|
||||
{ name: 'CHK_MNFCTUR_BSMN', fieldName: 'CHK_MNFCTUR_BSMN', header: { text: 'CHK_MNFCTUR_BSMN' }, visible: false },
|
||||
{ name: 'CHK_MNFCTUR_STTY_CNT', fieldName: 'CHK_MNFCTUR_STTY_CNT', header: { text: 'CHK_MNFCTUR_STTY_CNT' }, visible: false },
|
||||
{ name: 'CHK_MNFCTUR_WRRTN_CNT', fieldName: 'CHK_MNFCTUR_WRRTN_CNT', header: { text: 'CHK_MNFCTUR_WRRTN_CNT' }, visible: false },
|
||||
{ name: 'CHK_MGMT_ENTRPS', fieldName: 'CHK_MGMT_ENTRPS', header: { text: 'CHK_MGMT_ENTRPS' }, visible: false },
|
||||
{ name: 'CHK_MGMT_BSMN', fieldName: 'CHK_MGMT_BSMN', header: { text: 'CHK_MGMT_BSMN' }, visible: false },
|
||||
{ name: 'CHK_MGMT_STTY_CNT', fieldName: 'CHK_MGMT_STTY_CNT', header: { text: 'CHK_MGMT_STTY_CNT' }, visible: false },
|
||||
{ name: 'CHK_MGMT_WRRTN_CNT', fieldName: 'CHK_MGMT_WRRTN_CNT', header: { text: 'CHK_MGMT_WRRTN_CNT' }, visible: false },
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO', 'GUGUN']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'group_design_construct',
|
||||
header: { text: '개인하수처리시설 설계·시공업' },
|
||||
items: ['CNSTRCT_ENTRPS', 'CNSTRCT_BSMN']
|
||||
items: ['designMdsrCnt', 'designMdsrNope']
|
||||
},
|
||||
{
|
||||
name: 'group_manufacture',
|
||||
header: { text: '개인하수처리시설 제조업' },
|
||||
items: ['MNFCTUR_ENTRPS', 'MNFCTUR_BSMN']
|
||||
items: ['mfbizCnt', 'mfbizMdsrNope']
|
||||
},
|
||||
{
|
||||
name: 'group_management',
|
||||
header: { text: '개인하수처리시설 관리업' },
|
||||
items: ['MGMT_ENTRPS', 'MGMT_BSMN']
|
||||
items: ['mngCnt', 'mngMdsrNope']
|
||||
},
|
||||
'RMK'
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 1,
|
||||
tabKey: 'privateSewageTreatRelatedIndustryInp',
|
||||
fixedColumns: 0,
|
||||
tabKey: 'ST00120004',
|
||||
tabLabel: '개인하수처리관련업'
|
||||
};
|
||||
+72
-51
@@ -5,86 +5,107 @@ import { ValueType } from "realgrid";
|
||||
export const PublicInstitutionExcretaIndustryInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
|
||||
// 행정코드 (hidden)
|
||||
{ name: 'ADST_CD', fieldName: '행정코드', header: { text: '행정코드' }, visible: false },
|
||||
{ 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: 'OCGNZ', fieldName: '직 제', header: { text: '직 제' } },
|
||||
{ name: 'ognzNm', fieldName: 'ognzNm', header: { text: '직 제' } },
|
||||
|
||||
// 직원총수
|
||||
{ name: 'TOT_WTR_QRM', fieldName: '직원총수', header: { text: '직원총수' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{
|
||||
name: 'empGrssCnt',
|
||||
fieldName: 'empGrssCnt',
|
||||
header: { text: '직원총수' },
|
||||
editable: false,
|
||||
footer: footerInt,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['engrkCnt', 'mchnCnt', 'prvtmCnt', 'chmengCnt', 'envCnt', 'enjbEtcCnt', 'etcCnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 행정직
|
||||
{ name: 'ADMINIST_JSSFC', fieldName: '행정직', header: { text: '행정직' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'pbadmsNope', fieldName: 'pbadmsNope', header: { text: '행정직' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기술직
|
||||
{ name: 'TCHNLGY_JSSFC_SM', fieldName: '계', header: { text: '계' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ENGRK_JSSFC', fieldName: '토목', header: { text: '토목' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'MCHN_JSSFC', fieldName: '기계', header: { text: '기계' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ELCTY_JSSFC', fieldName: '전기', header: { text: '전기' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'CHMSTRY_JSSFC', fieldName: '화공', header: { text: '화공' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ENVRN_JSSFC', fieldName: '환경', header: { text: '환경' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'TCHNLGY_ETC', fieldName: '기타', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기능직 (hidden)
|
||||
{ name: 'TCNSRV', fieldName: '기능직', header: { text: '기능직' }, visible: false },
|
||||
{
|
||||
name: 'techWholNope',
|
||||
fieldName: 'techWholNope',
|
||||
header: { text: '계' },
|
||||
editable: false,
|
||||
footer: footerInt,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['engrkCnt', 'mchnCnt', 'prvtmCnt', 'chmengCnt', 'envCnt', 'enjbEtcCnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'engrkCnt', fieldName: 'engrkCnt', header: { text: '토목' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mchnCnt', fieldName: 'mchnCnt', header: { text: '기계' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'prvtmCnt', fieldName: 'prvtmCnt', header: { text: '전기' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'chmengCnt', fieldName: 'chmengCnt', header: { text: '화공' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'envCnt', fieldName: 'envCnt', header: { text: '환경' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'enjbEtcCnt', fieldName: 'enjbEtcCnt', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기타
|
||||
{ name: 'ETC', fieldName: '기타', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'etcCnt', fieldName: 'etcCnt', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 의견 필드
|
||||
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, visible: false },
|
||||
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, visible: false },
|
||||
|
||||
// Hidden: Check fields : 데이터 변경 여부를 판단하는 필드로, UI에서 숨김 처리
|
||||
{ name: 'CHK_OCGNZ', fieldName: 'CHK_OCGNZ', header: { text: 'CHK_OCGNZ' }, visible: false },
|
||||
{ name: 'CHK_TOT_WTR_QRM', fieldName: 'CHK_TOT_WTR_QRM', header: { text: 'CHK_TOT_WTR_QRM' }, visible: false },
|
||||
{ name: 'CHK_ADMINIST_JSSFC', fieldName: 'CHK_ADMINIST_JSSFC', header: { text: 'CHK_ADMINIST_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_TCHNLGY_JSSFC_SM', fieldName: 'CHK_TCHNLGY_JSSFC_SM', header: { text: 'CHK_TCHNLGY_JSSFC_SM' }, visible: false },
|
||||
{ name: 'CHK_ENGRK_JSSFC', fieldName: 'CHK_ENGRK_JSSFC', header: { text: 'CHK_ENGRK_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_MCHN_JSSFC', fieldName: 'CHK_MCHN_JSSFC', header: { text: 'CHK_MCHN_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_ELCTY_JSSFC', fieldName: 'CHK_ELCTY_JSSFC', header: { text: 'CHK_ELCTY_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_CHMSTRY_JSSFC', fieldName: 'CHK_CHMSTRY_JSSFC', header: { text: 'CHK_CHMSTRY_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_ENVRN_JSSFC', fieldName: 'CHK_ENVRN_JSSFC', header: { text: 'CHK_ENVRN_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_TCHNLGY_ETC', fieldName: 'CHK_TCHNLGY_ETC', header: { text: 'CHK_TCHNLGY_ETC' }, visible: false },
|
||||
{ name: 'CHK_TCNSRV', fieldName: 'CHK_TCNSRV', header: { text: 'CHK_TCNSRV' }, visible: false },
|
||||
{ name: 'CHK_ETC', fieldName: 'CHK_ETC', header: { text: 'CHK_ETC' }, visible: false },
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'ognzSn', fieldName: 'ognzSn', header: { text: '조직일련번호' }, visible: false },
|
||||
{
|
||||
name: '__isNewArticle',
|
||||
fieldName: '__isNewArticle',
|
||||
header: { text: '신규항목' },
|
||||
visible: false,
|
||||
editable: false,
|
||||
valueType: ValueType.NUMBER,
|
||||
},
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO', 'GUGUN']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'OCGNZ',
|
||||
'TOT_WTR_QRM',
|
||||
'ADMINIST_JSSFC',
|
||||
'ognzNm',
|
||||
'empGrssCnt',
|
||||
'pbadmsNope',
|
||||
{
|
||||
name: 'group_technology',
|
||||
header: { text: '기술직' },
|
||||
items: [
|
||||
'TCHNLGY_JSSFC_SM',
|
||||
'ENGRK_JSSFC',
|
||||
'MCHN_JSSFC',
|
||||
'ELCTY_JSSFC',
|
||||
'CHMSTRY_JSSFC',
|
||||
'ENVRN_JSSFC',
|
||||
'TCHNLGY_ETC'
|
||||
'techWholNope',
|
||||
'engrkCnt',
|
||||
'mchnCnt',
|
||||
'prvtmCnt',
|
||||
'chmengCnt',
|
||||
'envCnt',
|
||||
'enjbEtcCnt'
|
||||
]
|
||||
},
|
||||
'ETC',
|
||||
'RMK'
|
||||
'etcCnt',
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'ognzSn',
|
||||
'__isNewArticle',
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 0,
|
||||
tabKey: 'publicInstitutionExcretaIndustryInp',
|
||||
tabKey: 'ST00120002',
|
||||
tabLabel: '공공기관 분뇨분야'
|
||||
};
|
||||
+73
-52
@@ -5,86 +5,107 @@ import { ValueType } from "realgrid";
|
||||
export const PublicInstitutionSewerIndustryInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'GUGUN', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
|
||||
// 행정코드 (hidden)
|
||||
{ name: 'ADST_CD', fieldName: '행정코드', header: { text: '행정코드' }, visible: false },
|
||||
{ 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: 'OCGNZ', fieldName: '직 제', header: { text: '직 제' } },
|
||||
{ name: 'ognzNm', fieldName: 'ognzNm', header: { text: '직 제' } },
|
||||
|
||||
// 직원총수
|
||||
{ name: 'TOT_WTR_QRM', fieldName: '직원총수', header: { text: '직원총수' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{
|
||||
name: 'empGrssCnt',
|
||||
fieldName: 'empGrssCnt',
|
||||
header: { text: '직원총수' },
|
||||
editable: false,
|
||||
footer: footerInt,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['engrkCnt', 'mchnCnt', 'prvtmCnt', 'chmengCnt', 'envCnt', 'enjbEtcCnt', 'etcCnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 행정직
|
||||
{ name: 'ADMINIST_JSSFC', fieldName: '행정직', header: { text: '행정직' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'pbadmsNope', fieldName: 'pbadmsNope', header: { text: '행정직' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기술직
|
||||
{ name: 'TCHNLGY_JSSFC_SM', fieldName: '계', header: { text: '계' }, editable: false, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ENGRK_JSSFC', fieldName: '토목', header: { text: '토목' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'MCHN_JSSFC', fieldName: '기계', header: { text: '기계' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ELCTY_JSSFC', fieldName: '전기', header: { text: '전기' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'CHMSTRY_JSSFC', fieldName: '화공', header: { text: '화공' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'ENVRN_JSSFC', fieldName: '환경', header: { text: '환경' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'TCHNLGY_ETC', fieldName: '기타', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기능직 (hidden)
|
||||
{ name: 'TCNSRV', fieldName: '기능직', header: { text: '기능직' }, visible: false },
|
||||
{
|
||||
name: 'techWholNope',
|
||||
fieldName: 'techWholNope',
|
||||
header: { text: '계' },
|
||||
editable: false,
|
||||
footer: footerInt,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['engrkCnt', 'mchnCnt', 'prvtmCnt', 'chmengCnt', 'envCnt', 'enjbEtcCnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'engrkCnt', fieldName: 'engrkCnt', header: { text: '토목' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'mchnCnt', fieldName: 'mchnCnt', header: { text: '기계' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'prvtmCnt', fieldName: 'prvtmCnt', header: { text: '전기' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'chmengCnt', fieldName: 'chmengCnt', header: { text: '화공' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'envCnt', fieldName: 'envCnt', header: { text: '환경' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'enjbEtcCnt', fieldName: 'enjbEtcCnt', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 기타
|
||||
{ name: 'ETC', fieldName: '기타', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'etcCnt', fieldName: 'etcCnt', header: { text: '기타' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 의견 필드
|
||||
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, visible: false },
|
||||
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, visible: false },
|
||||
|
||||
// Hidden: Check fields : 데이터 변경 여부를 판단하는 필드로, UI에서 숨김 처리
|
||||
{ name: 'CHK_OCGNZ', fieldName: 'CHK_OCGNZ', header: { text: 'CHK_OCGNZ' }, visible: false },
|
||||
{ name: 'CHK_TOT_WTR_QRM', fieldName: 'CHK_TOT_WTR_QRM', header: { text: 'CHK_TOT_WTR_QRM' }, visible: false },
|
||||
{ name: 'CHK_ADMINIST_JSSFC', fieldName: 'CHK_ADMINIST_JSSFC', header: { text: 'CHK_ADMINIST_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_TCHNLGY_JSSFC_SM', fieldName: 'CHK_TCHNLGY_JSSFC_SM', header: { text: 'CHK_TCHNLGY_JSSFC_SM' }, visible: false },
|
||||
{ name: 'CHK_ENGRK_JSSFC', fieldName: 'CHK_ENGRK_JSSFC', header: { text: 'CHK_ENGRK_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_MCHN_JSSFC', fieldName: 'CHK_MCHN_JSSFC', header: { text: 'CHK_MCHN_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_ELCTY_JSSFC', fieldName: 'CHK_ELCTY_JSSFC', header: { text: 'CHK_ELCTY_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_CHMSTRY_JSSFC', fieldName: 'CHK_CHMSTRY_JSSFC', header: { text: 'CHK_CHMSTRY_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_ENVRN_JSSFC', fieldName: 'CHK_ENVRN_JSSFC', header: { text: 'CHK_ENVRN_JSSFC' }, visible: false },
|
||||
{ name: 'CHK_TCHNLGY_ETC', fieldName: 'CHK_TCHNLGY_ETC', header: { text: 'CHK_TCHNLGY_ETC' }, visible: false },
|
||||
{ name: 'CHK_TCNSRV', fieldName: 'CHK_TCNSRV', header: { text: 'CHK_TCNSRV' }, visible: false },
|
||||
{ name: 'CHK_ETC', fieldName: 'CHK_ETC', header: { text: 'CHK_ETC' }, visible: false },
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'ognzSn', fieldName: 'ognzSn', header: { text: '조직일련번호' }, visible: false },
|
||||
{
|
||||
name: '__isNewArticle',
|
||||
fieldName: '__isNewArticle',
|
||||
header: { text: '신규항목' },
|
||||
visible: false,
|
||||
editable: false,
|
||||
valueType: ValueType.NUMBER,
|
||||
},
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO', 'GUGUN']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'OCGNZ',
|
||||
'TOT_WTR_QRM',
|
||||
'ADMINIST_JSSFC',
|
||||
'ognzNm',
|
||||
'empGrssCnt',
|
||||
'pbadmsNope',
|
||||
{
|
||||
name: 'group_technology',
|
||||
header: { text: '기술직' },
|
||||
items: [
|
||||
'TCHNLGY_JSSFC_SM',
|
||||
'ENGRK_JSSFC',
|
||||
'MCHN_JSSFC',
|
||||
'ELCTY_JSSFC',
|
||||
'CHMSTRY_JSSFC',
|
||||
'ENVRN_JSSFC',
|
||||
'TCHNLGY_ETC'
|
||||
'techWholNope',
|
||||
'engrkCnt',
|
||||
'mchnCnt',
|
||||
'prvtmCnt',
|
||||
'chmengCnt',
|
||||
'envCnt',
|
||||
'enjbEtcCnt'
|
||||
]
|
||||
},
|
||||
'ETC',
|
||||
'RMK'
|
||||
'etcCnt',
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'ognzSn',
|
||||
'__isNewArticle',
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 1,
|
||||
tabKey: 'publicInstitutionSewerIndustryInp',
|
||||
fixedColumns: 0,
|
||||
tabKey: 'ST00120001',
|
||||
tabLabel: '공공기관 하수분야'
|
||||
};
|
||||
+115
-48
@@ -1,91 +1,158 @@
|
||||
import type { ColumnConfig } from "@/components/type/DataGrid.type";
|
||||
import { footerDecimal1 } from "@/components/util/grid/footerSummary";
|
||||
import { ValueType } from "realgrid";
|
||||
|
||||
export const DIGESTOR_OPERATING_STATUS_YN_VALUES = ["Y", "N"] as const;
|
||||
export const DIGESTOR_OPERATING_STATUS_EN_YN_FIELD = "digstnEnYn" as const;
|
||||
|
||||
/** 소화조 유/무가 N이면 해당 행의 입력 셀을 잠근다(digstnEnYn 제외). */
|
||||
export function isDigestorOperatingRowDisabled(
|
||||
row: Record<string, string | number>,
|
||||
grid?: { getValue?: (itemIndex: number, fieldName: string) => unknown },
|
||||
rowIndex?: number,
|
||||
): boolean {
|
||||
const live =
|
||||
grid?.getValue != null && rowIndex != null && rowIndex >= 0
|
||||
? grid.getValue(rowIndex, DIGESTOR_OPERATING_STATUS_EN_YN_FIELD)
|
||||
: undefined;
|
||||
const raw =
|
||||
live !== undefined && live !== null
|
||||
? live
|
||||
: row[DIGESTOR_OPERATING_STATUS_EN_YN_FIELD];
|
||||
return String(raw ?? "").trim().toUpperCase() === "N";
|
||||
}
|
||||
|
||||
function dropdownColumn(
|
||||
col: Pick<ColumnConfig, "name" | "fieldName" | "header"> &
|
||||
Partial<ColumnConfig>,
|
||||
options: readonly string[],
|
||||
): ColumnConfig {
|
||||
const values = [...options];
|
||||
return {
|
||||
...col,
|
||||
values,
|
||||
labels: values,
|
||||
lookupDisplay: true,
|
||||
editor: {
|
||||
type: "dropdown",
|
||||
domainOnly: true,
|
||||
textReadOnly: true,
|
||||
commitOnSelect: true,
|
||||
dropDownWhenClick: true,
|
||||
values,
|
||||
labels: values,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// 하수도 통계 관리 > 11. 하수 및 분뇨찌꺼기(슬러지)처리 > tab 2. 소화조 운영현황
|
||||
export const DigestorOperatingStatusInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO_CD', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'ADST_CD', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
{ 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: 'BSC_FCT_NM', fieldName: '하수처리장명', header: { text: '하수처리장명' }, editable: false },
|
||||
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false },
|
||||
|
||||
// 소화조 운영현황
|
||||
{ name: 'DGSTR_FNNC', fieldName: '소화조 유/무(Y/N)선택', header: { text: '소화조 유/무(Y/N)선택' } },
|
||||
{ name: 'DGSTR_CPC', fieldName: '설계용량(m³)', header: { text: '설계용량(m³)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_OPR_CPC', fieldName: '실제운전용량(m³)', header: { text: '실제운전용량(m³)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_IN', fieldName: '투입량(m³/일)', header: { text: '투입량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_TS', fieldName: '투입 TS 농도(%)', header: { text: '투입 TS 농도(%)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_YRSTP_RN_DYN', fieldName: '가동일수(연간)', header: { text: '가동일수(연간)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_OCCUR_GAS', fieldName: '발생가스량(m³/일)', header: { text: '발생가스량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
dropdownColumn(
|
||||
{
|
||||
name: 'digstnEnYn',
|
||||
fieldName: 'digstnEnYn',
|
||||
header: { text: '소화조 유/무(Y/N)선택' },
|
||||
},
|
||||
DIGESTOR_OPERATING_STATUS_YN_VALUES,
|
||||
),
|
||||
{ name: 'digstnCpct', fieldName: 'digstnCpct', header: { text: '설계용량(m³)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'actlDrvnCpct', fieldName: 'actlDrvnCpct', header: { text: '실제운전용량(m³)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnGasInputQnt', fieldName: 'digstnGasInputQnt', header: { text: '투입량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnGasInputSldDnst', fieldName: 'digstnGasInputSldDnst', header: { text: '투입 TS 농도(%)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnTnkOprtngDayCnt', fieldName: 'digstnTnkOprtngDayCnt', header: { text: '가동일수(연간)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'ocrnGasQnt', fieldName: 'ocrnGasQnt', header: { text: '발생가스량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 소화조 운영현황 > 소화가스 이용현황(m³/일)
|
||||
{ name: 'DGSTR_SM', fieldName: '계', header: { text: '계' }, footer: footerDecimal1, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_SLE', fieldName: '판매', header: { text: '판매' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_ELTGNR', fieldName: '발전', header: { text: '발전' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_ONSLF', fieldName: '자체활용', header: { text: '자체활용' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'DGSTR_ETC', fieldName: '기타(CNG등)', header: { text: '기타(CNG등)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'digstnGasUtztnWholPrst',
|
||||
fieldName: 'digstnGasUtztnWholPrst',
|
||||
header: { text: '계' },
|
||||
footer: footerDecimal1,
|
||||
editable: false,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'digstnGasUtztnNtslQnt',
|
||||
'digstnGasUtztnEtgtQnt',
|
||||
'digstnGasUtztnItslfQnt',
|
||||
'digstnGasUtztnEtcQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'digstnGasUtztnNtslQnt', fieldName: 'digstnGasUtztnNtslQnt', header: { text: '판매' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnGasUtztnEtgtQnt', fieldName: 'digstnGasUtztnEtgtQnt', header: { text: '발전' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnGasUtztnItslfQnt', fieldName: 'digstnGasUtztnItslfQnt', header: { text: '자체활용' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'digstnGasUtztnEtcQnt', fieldName: 'digstnGasUtztnEtcQnt', header: { text: '기타(CNG등)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 소화조 운영현황 > 잉여가스량
|
||||
{ name: 'DGSTR_GAS', fieldName: '잉여가스량(m³/일)', header: { text: '잉여가스량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'surplsGasQnt', fieldName: 'surplsGasQnt', header: { text: '잉여가스량(m³/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'DGSTR_RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: Check fields for change detection
|
||||
{ name: 'CHK_DGSTR_FNNC', fieldName: 'CHK_DGSTR_FNNC', header: { text: 'CHK_DGSTR_FNNC' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_IN', fieldName: 'CHK_DGSTR_IN', header: { text: 'CHK_DGSTR_IN' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_TS', fieldName: 'CHK_DGSTR_TS', header: { text: 'CHK_DGSTR_TS' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_YRSTP_RN_DYN', fieldName: 'CHK_DGSTR_YRSTP_RN_DYN', header: { text: 'CHK_DGSTR_YRSTP_RN_DYN' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_OCCUR_GAS', fieldName: 'CHK_DGSTR_OCCUR_GAS', header: { text: 'CHK_DGSTR_OCCUR_GAS' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_CPC', fieldName: 'CHK_DGSTR_CPC', header: { text: 'CHK_DGSTR_CPC' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_OPR_CPC', fieldName: 'CHK_DGSTR_OPR_CPC', header: { text: 'CHK_DGSTR_OPR_CPC' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_SM', fieldName: 'CHK_DGSTR_SM', header: { text: 'CHK_DGSTR_SM' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_SLE', fieldName: 'CHK_DGSTR_SLE', header: { text: 'CHK_DGSTR_SLE' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_ELTGNR', fieldName: 'CHK_DGSTR_ELTGNR', header: { text: 'CHK_DGSTR_ELTGNR' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_ONSLF', fieldName: 'CHK_DGSTR_ONSLF', header: { text: 'CHK_DGSTR_ONSLF' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_ETC', fieldName: 'CHK_DGSTR_ETC', header: { text: 'CHK_DGSTR_ETC' }, visible: false },
|
||||
{ name: 'CHK_DGSTR_GAS', fieldName: 'CHK_DGSTR_GAS', header: { text: 'CHK_DGSTR_GAS' }, visible: false },
|
||||
// hidden
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '시설물일련번호' }, visible: false },
|
||||
{ name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '처리장코드' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO_CD', 'ADST_CD']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'BSC_FCT_NM',
|
||||
'swtrmtFcltNm',
|
||||
{
|
||||
name: 'group_digestor_operating',
|
||||
header: { text: '소화조 운영현황' },
|
||||
items: [
|
||||
'DGSTR_FNNC',
|
||||
'DGSTR_CPC',
|
||||
'DGSTR_OPR_CPC',
|
||||
'DGSTR_IN',
|
||||
'DGSTR_TS',
|
||||
'DGSTR_YRSTP_RN_DYN',
|
||||
'DGSTR_OCCUR_GAS',
|
||||
'digstnEnYn',
|
||||
'digstnCpct',
|
||||
'actlDrvnCpct',
|
||||
'digstnGasInputQnt',
|
||||
'digstnGasInputSldDnst',
|
||||
'digstnTnkOprtngDayCnt',
|
||||
'ocrnGasQnt',
|
||||
{
|
||||
name: 'group_gas_usage',
|
||||
header: { text: '소화가스 이용현황(m³/일)' },
|
||||
items: [
|
||||
'DGSTR_SM',
|
||||
'DGSTR_SLE',
|
||||
'DGSTR_ELTGNR',
|
||||
'DGSTR_ONSLF',
|
||||
'DGSTR_ETC'
|
||||
'digstnGasUtztnWholPrst',
|
||||
'digstnGasUtztnNtslQnt',
|
||||
'digstnGasUtztnEtgtQnt',
|
||||
'digstnGasUtztnItslfQnt',
|
||||
'digstnGasUtztnEtcQnt'
|
||||
]
|
||||
},
|
||||
'DGSTR_GAS'
|
||||
'surplsGasQnt'
|
||||
]
|
||||
},
|
||||
'DGSTR_RMK'
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'fcltSn',
|
||||
'swtrmtFcltCd'
|
||||
],
|
||||
|
||||
rowStartNum: 3,
|
||||
fixedColumns: 0,
|
||||
tabKey: 'digestorOperatingStatusInp',
|
||||
tabKey: 'ST00110002',
|
||||
tabLabel: '소화조 운영현황'
|
||||
};
|
||||
+81
-44
@@ -5,79 +5,116 @@ import { ValueType } from "realgrid";
|
||||
export const ExcretaSlurgeProcessingStatusInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO_CD', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'ADST_CD', fieldName: '시군구', header: { text: '시군구' }, editable: false, footer: { text: '합계' } },
|
||||
{ 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: 'ECSCS_NM', fieldName: '분 뇨 처리장명', header: { text: '분 뇨 처리장명' }, editable: false },
|
||||
{ name: 'fcltNm', fieldName: 'fcltNm', header: { text: '분뇨 처리장명' }, editable: false },
|
||||
|
||||
// 발생량
|
||||
{ name: 'OCTY', fieldName: '발생량 (A)=(B)+(C)', header: { text: '발생량 (A)=(B)+(C)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'gnam',
|
||||
fieldName: 'gnam',
|
||||
header: { text: '발생량 (A)=(B)+(C)' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'rcycQnt',
|
||||
'olandLfvlm',
|
||||
'incnrQnt',
|
||||
'oceanInputQnt',
|
||||
'fuelQnt',
|
||||
'etcQnt',
|
||||
'nondspsQnt'
|
||||
],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 처 분 량(톤/년)
|
||||
{ name: 'PROCESS_CPCTY_SM', fieldName: '계(B)', header: { text: '계(B)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'RUSE', fieldName: '재활용', header: { text: '재활용' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'LAND_RCLM', fieldName: '육상매립', header: { text: '육상매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'INCNR', fieldName: '소각', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'OCEAN_DPSL', fieldName: '해양투기', header: { text: '해양투기' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'FUEL', fieldName: '연료화', header: { text: '연료화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'ETC', fieldName: '기타', header: { text: '기타' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'wholDspsQnt',
|
||||
fieldName: 'wholDspsQnt',
|
||||
header: { text: '계(B)' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'rcycQnt',
|
||||
'olandLfvlm',
|
||||
'incnrQnt',
|
||||
'oceanInputQnt',
|
||||
'fuelQnt',
|
||||
'etcQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'rcycQnt', fieldName: 'rcycQnt', header: { text: '재활용' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'olandLfvlm', fieldName: 'olandLfvlm', header: { text: '육상매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'incnrQnt', fieldName: 'incnrQnt', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'oceanInputQnt', fieldName: 'oceanInputQnt', header: { text: '해양투기' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'fuelQnt', fieldName: 'fuelQnt', header: { text: '연료화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'etcQnt', fieldName: 'etcQnt', header: { text: '기타' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 미처분량(이월량)(C)
|
||||
{ name: 'CYFD_CPCTY', fieldName: '미처분량(이월량)(C)', header: { text: '미처분량(이월량)(C)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'nondspsQnt', fieldName: 'nondspsQnt', header: { text: '미처분량(이월량)(C)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 타시설연계여부
|
||||
{ name: 'OUT_BSC_FCT_NM', fieldName: '타시설연계여부', header: { text: '타시설연계여부' } },
|
||||
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '타시설연계여부' } },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 의견
|
||||
{ name: 'WRTER_OPINION', fieldName: '사용자의견', header: { text: '사용자의견' }, visible: false },
|
||||
{ name: 'CHCKER_OPINION', fieldName: '검토자의견', header: { text: '검토자의견' }, visible: false },
|
||||
|
||||
// Hidden: Check fields for change detection
|
||||
{ name: 'CHK_ECSCS_NM', fieldName: 'CHK_ECSCS_NM', header: { text: 'CHK_ECSCS_NM' }, visible: false },
|
||||
{ name: 'CHK_OCTY', fieldName: 'CHK_OCTY', header: { text: 'CHK_OCTY' }, visible: false },
|
||||
{ name: 'CHK_PROCESS_CPCTY_SM', fieldName: 'CHK_PROCESS_CPCTY_SM', header: { text: 'CHK_PROCESS_CPCTY_SM' }, visible: false },
|
||||
{ name: 'CHK_RUSE', fieldName: 'CHK_RUSE', header: { text: 'CHK_RUSE' }, visible: false },
|
||||
{ name: 'CHK_LAND_RCLM', fieldName: 'CHK_LAND_RCLM', header: { text: 'CHK_LAND_RCLM' }, visible: false },
|
||||
{ name: 'CHK_INCNR', fieldName: 'CHK_INCNR', header: { text: 'CHK_INCNR' }, visible: false },
|
||||
{ name: 'CHK_OCEAN_DPSL', fieldName: 'CHK_OCEAN_DPSL', header: { text: 'CHK_OCEAN_DPSL' }, visible: false },
|
||||
{ name: 'CHK_FUEL', fieldName: 'CHK_FUEL', header: { text: 'CHK_FUEL' }, visible: false },
|
||||
{ name: 'CHK_ETC', fieldName: 'CHK_ETC', header: { text: 'CHK_ETC' }, visible: false },
|
||||
{ name: 'CHK_CYFD_CPCTY', fieldName: 'CHK_CYFD_CPCTY', header: { text: 'CHK_CYFD_CPCTY' }, visible: false },
|
||||
{ name: 'CHK_OUT_BSC_FCT_NM', fieldName: 'CHK_OUT_BSC_FCT_NM', header: { text: 'CHK_OUT_BSC_FCT_NM' }, visible: false },
|
||||
// hidden
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '시설물일련번호' }, visible: false },
|
||||
{ name: 'fcltPstnCn', fieldName: 'fcltPstnCn', header: { text: '시설물위치내용' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO_CD', 'ADST_CD']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'ECSCS_NM',
|
||||
'OCTY',
|
||||
'fcltNm',
|
||||
'gnam',
|
||||
{
|
||||
name: 'group_process_amount',
|
||||
header: { text: '처 분 량(톤/년)' },
|
||||
items: [
|
||||
'PROCESS_CPCTY_SM',
|
||||
'RUSE',
|
||||
'LAND_RCLM',
|
||||
'INCNR',
|
||||
'OCEAN_DPSL',
|
||||
'FUEL',
|
||||
'ETC'
|
||||
'wholDspsQnt',
|
||||
'rcycQnt',
|
||||
'olandLfvlm',
|
||||
'incnrQnt',
|
||||
'oceanInputQnt',
|
||||
'fuelQnt',
|
||||
'etcQnt'
|
||||
]
|
||||
},
|
||||
'CYFD_CPCTY',
|
||||
'OUT_BSC_FCT_NM',
|
||||
'RMK'
|
||||
'nondspsQnt',
|
||||
'swtrmtFcltNm',
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'fcltSn',
|
||||
'fcltPstnCn'
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 2,
|
||||
tabKey: 'excretaSlurgeProcessingStatusInp',
|
||||
tabKey: 'ST00110004',
|
||||
tabLabel: '분뇨찌꺼기(슬러지)처리현황'
|
||||
};
|
||||
+45
-28
@@ -5,22 +5,37 @@ import { ValueType } from "realgrid";
|
||||
export const SewageSlurgeProcessingFacStatusInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO_CD', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'ADST_CD', fieldName: '시군구', header: { text: '시군구' }, footer: { text: '합계' } },
|
||||
{ name: 'ctpvNm', fieldName: 'ctpvNm', header: { text: '시도' }, footer: { text: '합계' }, editable: false, styleName: 'rg-cell-readonly' },
|
||||
{ name: 'sggNm', fieldName: 'sggNm', header: { text: '시군구' }, styleName: 'rg-cell-readonly' },
|
||||
|
||||
// 찌꺼기처리시설명
|
||||
{ name: 'SLG_FCT_NM', fieldName: '찌꺼기처리시설명', header: { text: '찌꺼기처리시설명' } },
|
||||
{ name: 'fcltNm', fieldName: 'fcltNm', header: { text: '찌꺼기처리시설명' } },
|
||||
|
||||
// 처리시설 운영현황
|
||||
{ name: 'TRT_METHOD', fieldName: '처리방식', header: { text: '처리방식' } },
|
||||
{ name: 'SLG_FCT_CPC', fieldName: '시설용량(톤/일)', header: { text: '시설용량(톤/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'OPR_CPC', fieldName: '연간처리량(톤/년)', header: { text: '연간처리량(톤/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'ODY_RN_TIME', fieldName: '일평균가동시간(1~24)', header: { text: '일평균가동시간(1~24)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'YRSTP_RN_DYN', fieldName: '연중 가동일(1~330)', header: { text: '연중 가동일(1~330)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'OPR_RT', fieldName: '가동율(%)', header: { text: '가동율(%)' }, footer: footerDecimal1, editable: false, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'prcsMthExpln', fieldName: 'prcsMthExpln', header: { text: '처리방식' } },
|
||||
{ name: 'fcltCpct', fieldName: 'fcltCpct', header: { text: '시설용량(톤/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'anlPrcsQnt', fieldName: 'anlPrcsQnt', header: { text: '연간처리량(톤/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dayAvgOprtngHr', fieldName: 'dayAvgOprtngHr', header: { text: '일평균가동시간(1~24)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{ name: 'anlOprtngDayCnt', fieldName: 'anlOprtngDayCnt', header: { text: '연중 가동일(1~330)' }, footer: footerInt, valueType: ValueType.NUMBER, dataFormat: '#,##0' },
|
||||
{
|
||||
name: 'oprtngRt',
|
||||
fieldName: 'oprtngRt',
|
||||
header: { text: '가동율(%)' },
|
||||
footer: footerDecimal1,
|
||||
editable: false,
|
||||
styleName: 'rg-cell-total',
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
computed: {
|
||||
numeratorField: 'anlPrcsQnt',
|
||||
denominatorField: 'fcltCpct',
|
||||
multiplierField: 'anlOprtngDayCnt',
|
||||
type: 'quotientTimesMultiplierPercent' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 비고
|
||||
{ name: 'SLG_FCT_RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: 기본 정보
|
||||
{ name: 'STPN_SEQ', fieldName: 'STPN_SEQ', header: { text: 'STPN_SEQ' }, visible: false },
|
||||
@@ -30,40 +45,42 @@ export const SewageSlurgeProcessingFacStatusInpColumn = {
|
||||
{ name: 'BSNM_CD', fieldName: 'BSNM_CD', header: { text: 'BSNM_CD' }, visible: false },
|
||||
{ name: 'BSC_FCT_CD', fieldName: 'BSC_FCT_CD', header: { text: 'BSC_FCT_CD' }, visible: false },
|
||||
|
||||
// Hidden: Check fields for change detection
|
||||
{ name: 'CHK_SLG_FCT_NM', fieldName: 'CHK_SLG_FCT_NM', header: { text: 'CHK_SLG_FCT_NM' }, visible: false },
|
||||
{ name: 'CHK_TRT_METHOD', fieldName: 'CHK_TRT_METHOD', header: { text: 'CHK_TRT_METHOD' }, visible: false },
|
||||
{ name: 'CHK_SLG_FCT_CPC', fieldName: 'CHK_SLG_FCT_CPC', header: { text: 'CHK_SLG_FCT_CPC' }, visible: false },
|
||||
{ name: 'CHK_OPR_CPC', fieldName: 'CHK_OPR_CPC', header: { text: 'CHK_OPR_CPC' }, visible: false },
|
||||
{ name: 'CHK_ODY_RN_TIME', fieldName: 'CHK_ODY_RN_TIME', header: { text: 'CHK_ODY_RN_TIME' }, visible: false },
|
||||
{ name: 'CHK_YRSTP_RN_DYN', fieldName: 'CHK_YRSTP_RN_DYN', header: { text: 'CHK_YRSTP_RN_DYN' }, visible: false },
|
||||
{ name: 'CHK_OPR_RT', fieldName: 'CHK_OPR_RT', header: { text: 'CHK_OPR_RT' }, visible: false },
|
||||
// hidden
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '시설물일련번호' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO_CD', 'ADST_CD']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'SLG_FCT_NM',
|
||||
'fcltNm',
|
||||
{
|
||||
name: 'group_processing_fac_operating',
|
||||
header: { text: '처리시설 운영현황' },
|
||||
items: [
|
||||
'TRT_METHOD',
|
||||
'SLG_FCT_CPC',
|
||||
'OPR_CPC',
|
||||
'ODY_RN_TIME',
|
||||
'YRSTP_RN_DYN',
|
||||
'OPR_RT'
|
||||
'prcsMthExpln',
|
||||
'fcltCpct',
|
||||
'anlPrcsQnt',
|
||||
'dayAvgOprtngHr',
|
||||
'anlOprtngDayCnt',
|
||||
'oprtngRt'
|
||||
]
|
||||
},
|
||||
'SLG_FCT_RMK'
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'fcltSn',
|
||||
],
|
||||
|
||||
rowStartNum: 2,
|
||||
fixedColumns: 1,
|
||||
tabKey: 'sewageSlurgeProcessingFacStatusInp',
|
||||
tabKey: 'ST00110003',
|
||||
tabLabel: '하수찌꺼기 처리시설 운영현황'
|
||||
};
|
||||
+256
-111
@@ -5,212 +5,357 @@ import { ValueType } from "realgrid";
|
||||
export const SlurgeProcessingFacStatusInpColumn = {
|
||||
columns: [
|
||||
// 행정구역
|
||||
{ name: 'SIDO_CD', fieldName: '시도', header: { text: '시도' }, editable: false },
|
||||
{ name: 'ADST_CD', fieldName: '시군구', header: { text: '시군구' }, footer: { text: '합계' } },
|
||||
{ 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: 'BSC_FCT_NM', fieldName: '하수처리장명', header: { text: '하수처리장명' }, },
|
||||
{ name: 'swtrmtFcltNm', fieldName: 'swtrmtFcltNm', header: { text: '하수처리장명' }, editable: false, styleName: 'rg-cell-readonly' },
|
||||
|
||||
// 찌꺼기발생량(톤/년, 탈수기준)
|
||||
{ name: 'TOT_AMNT', fieldName: '합계', header: { text: '합계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'P_AMNT', fieldName: '자체', header: { text: '자체' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'OUT_AMNT', fieldName: '외부유입량', header: { text: '외부유입량' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'gnamWhol',
|
||||
fieldName: 'gnamWhol',
|
||||
header: { text: '합계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['itslfQnt', 'otsdInflwQnt'],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'itslfQnt', fieldName: 'itslfQnt', header: { text: '자체' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdInflwQnt', fieldName: 'otsdInflwQnt', header: { text: '외부유입량' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 이송처리장
|
||||
{ name: 'OUT_FCT_NM', fieldName: '이송처리장', header: { text: '이송처리장' } },
|
||||
{ name: 'transfTmplntNm', fieldName: 'transfTmplntNm', header: { text: '이송처리장' } },
|
||||
|
||||
// 이송처리량 - 쿼리에서 못찾음 (임의)
|
||||
{ name: 'a', fieldName: '이송처리량(m³/년)', header: { text: '이송처리량(m³/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'transfPrcsQnt', fieldName: 'transfPrcsQnt', header: { text: '이송처리량(m³/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 함수율
|
||||
{ name: 'DSP_MOIRAT', fieldName: '함수율(%, 탈수기준)', header: { text: '함수율(%, 탈수기준)' }, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'srpFncRt', fieldName: 'srpFncRt', header: { text: '함수율(%, 탈수기준)' }, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 찌꺼기처리량합계
|
||||
{ name: 'DSP_SM', fieldName: '찌꺼기처리량합계(톤/년)', header: { text: '찌꺼기처리량합계(톤/년)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'wholSrpPrcsQnt',
|
||||
fieldName: 'wholSrpPrcsQnt',
|
||||
header: { text: '찌꺼기처리량합계(톤/년)' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'itslfTs1RclmQnt',
|
||||
'itslfTs1IncnrQnt',
|
||||
'itslfTs1AltdQnt',
|
||||
'itslfTs1DryQnt',
|
||||
'itslfTs1FuelQnt',
|
||||
'itslfTs2CmpstgQnt',
|
||||
'otsdCnsgnRclmQnt',
|
||||
'otsdCnsgnIncnrQnt',
|
||||
'otsdCnsgnFuelPwplQnt',
|
||||
'otsdCnsgnPrdctRmtrlQnt',
|
||||
'otsdCnsgnFmlyrQnt',
|
||||
'otsdCnsgnCmpstgQnt',
|
||||
'cparTs1Whol',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
|
||||
// 자체 찌꺼기 처리량 > 자체찌꺼기처리량소계
|
||||
{ name: 'DSP_SELF_SM', fieldName: '자체찌꺼기처리량소계', header: { text: '자체찌꺼기처리량소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'itslfTs1Whol',
|
||||
fieldName: 'itslfTs1Whol',
|
||||
header: { text: '자체찌꺼기처리량소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'itslfTs1RclmQnt',
|
||||
'itslfTs1IncnrQnt',
|
||||
'itslfTs1AltdQnt',
|
||||
'itslfTs1DryQnt',
|
||||
'itslfTs1FuelQnt',
|
||||
'itslfTs2CmpstgQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
|
||||
// 자체 찌꺼기 처리량 > 매립
|
||||
{ name: 'O_DSP_RCLM', fieldName: '매립', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs1RclmQnt', fieldName: 'itslfTs1RclmQnt', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 소각(1차)
|
||||
{ name: 'O_DSP_INCNR', fieldName: '소각(1차)', header: { text: '소각(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs1IncnrQnt', fieldName: 'itslfTs1IncnrQnt', header: { text: '소각(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 소각 후 처리(2차) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'b1', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'b2', fieldName: '매립', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'b3', fieldName: '제품원료', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'b4', fieldName: '복토재', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'b5', fieldName: '시설(업체명)', header: { text: '시설(업체명)' } },
|
||||
{
|
||||
name: 'incnrPrcsWhol',
|
||||
fieldName: 'incnrPrcsWhol',
|
||||
header: { text: '소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'incnrPrcsLfvlm',
|
||||
'incnrPrcsPrdctRmtrlQnt',
|
||||
'incnrPrcsFmlyrQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
{ name: 'incnrPrcsLfvlm', fieldName: 'incnrPrcsLfvlm', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'incnrPrcsPrdctRmtrlQnt', fieldName: 'incnrPrcsPrdctRmtrlQnt', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'incnrPrcsFmlyrQnt', fieldName: 'incnrPrcsFmlyrQnt', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'incnrPrcsFcltNm', fieldName: 'incnrPrcsFcltNm', header: { text: '시설(업체명)' } },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 고화(1차) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'c1', fieldName: '고화(1차)', header: { text: '고화(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs1AltdQnt', fieldName: 'itslfTs1AltdQnt', header: { text: '고화(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 고화 후 처리(2차) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'c2', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'c3', fieldName: '매립', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'c4', fieldName: '복토재', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'c5', fieldName: '시설(업체명)', header: { text: '시설(업체명)' } },
|
||||
{
|
||||
name: 'stbznPrcsWhol',
|
||||
fieldName: 'stbznPrcsWhol',
|
||||
header: { text: '소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'stbznPrcsLfvlm',
|
||||
'stbznPrcsFmlyrQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
{ name: 'stbznPrcsLfvlm', fieldName: 'stbznPrcsLfvlm', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'stbznPrcsFmlyrQnt', fieldName: 'stbznPrcsFmlyrQnt', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'stbznPrcsFcltNm', fieldName: 'stbznPrcsFcltNm', header: { text: '시설(업체명)' } },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 건조(1차)
|
||||
{ name: 'DSP_DESIC', fieldName: '건조(1차)', header: { text: '건조(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs1DryQnt', fieldName: 'itslfTs1DryQnt', header: { text: '건조(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 건조 후 처리(2차) - 쿼리에 없음
|
||||
{ name: 'd1', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd2', fieldName: '매립', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd3', fieldName: '소각', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd4', fieldName: '연료', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd5', fieldName: '제품원료', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd6', fieldName: '복토재', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd7', fieldName: '퇴비화', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'd8', fieldName: '시설(업체명)', header: { text: '시설(업체명)' }, editable: true },
|
||||
{
|
||||
name: 'dryPrcsWhol',
|
||||
fieldName: 'dryPrcsWhol',
|
||||
header: { text: '소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'dryPrcsLfvlm',
|
||||
'dryPrcsIncnrQnt',
|
||||
'dryPrcsFuelQnt',
|
||||
'dryPrcsPrdctRmtrlQnt',
|
||||
'dryPrcsFmlyrQnt',
|
||||
'dryPrcsCmpstgQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
{ name: 'dryPrcsLfvlm', fieldName: 'dryPrcsLfvlm', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsIncnrQnt', fieldName: 'dryPrcsIncnrQnt', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsFuelQnt', fieldName: 'dryPrcsFuelQnt', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsPrdctRmtrlQnt', fieldName: 'dryPrcsPrdctRmtrlQnt', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsFmlyrQnt', fieldName: 'dryPrcsFmlyrQnt', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsCmpstgQnt', fieldName: 'dryPrcsCmpstgQnt', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'dryPrcsFcltNm', fieldName: 'dryPrcsFcltNm', header: { text: '시설(업체명)' }, editable: true },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 탄화(1차) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'e1', fieldName: '탄화(1차)', header: { text: '탄화(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs1FuelQnt', fieldName: 'itslfTs1FuelQnt', header: { text: '탄화(1차)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 탄화 후 처리(2차) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'e2', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'e3', fieldName: '소각', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'e4', fieldName: '연료', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'e5', fieldName: '시설(업체명)', header: { text: '시설(업체명)' } },
|
||||
{
|
||||
name: 'fuelPrcsWhol',
|
||||
fieldName: 'fuelPrcsWhol',
|
||||
header: { text: '소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: ['fuelPrcsIncnrQnt', 'fuelPrcsFuelQnt'],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
{ name: 'fuelPrcsIncnrQnt', fieldName: 'fuelPrcsIncnrQnt', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'fuelPrcsFuelQnt', fieldName: 'fuelPrcsFuelQnt', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'fuelPrcsFcltNm', fieldName: 'fuelPrcsFcltNm', header: { text: '시설(업체명)' } },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 퇴비화 - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'f1', fieldName: '퇴비화', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'itslfTs2CmpstgQnt', fieldName: 'itslfTs2CmpstgQnt', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 자체 찌꺼기 처리량 > 퇴비화 > 시설(업체명) - 쿼리에 없음 (임의 생성)
|
||||
{ name: 'f2', fieldName: '시설(업체명)', header: { text: '시설(업체명)' } },
|
||||
{ name: 'cmpsPrcsFcltBzentyNm', fieldName: 'cmpsPrcsFcltBzentyNm', header: { text: '시설(업체명)' } },
|
||||
|
||||
// 외부위탁 처리량(톤/년)
|
||||
{ name: 'DSP_CONSIGNMENT', fieldName: '소계', header: { text: '소계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g1', fieldName: '매립', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g2', fieldName: '소각', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g3', fieldName: '연료', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g4', fieldName: '제품원료', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g5', fieldName: '복토재', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g6', fieldName: '퇴비화', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'g7', fieldName: '시설(업체명)', header: { text: '시설(업체명)' } },
|
||||
{
|
||||
name: 'otsdCnsgnWhol',
|
||||
fieldName: 'otsdCnsgnWhol',
|
||||
header: { text: '소계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'otsdCnsgnRclmQnt',
|
||||
'otsdCnsgnIncnrQnt',
|
||||
'otsdCnsgnFuelPwplQnt',
|
||||
'otsdCnsgnPrdctRmtrlQnt',
|
||||
'otsdCnsgnFmlyrQnt',
|
||||
'otsdCnsgnCmpstgQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
}
|
||||
},
|
||||
{ name: 'otsdCnsgnRclmQnt', fieldName: 'otsdCnsgnRclmQnt', header: { text: '매립' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnIncnrQnt', fieldName: 'otsdCnsgnIncnrQnt', header: { text: '소각' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnFuelPwplQnt', fieldName: 'otsdCnsgnFuelPwplQnt', header: { text: '연료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnPrdctRmtrlQnt', fieldName: 'otsdCnsgnPrdctRmtrlQnt', header: { text: '제품원료' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnFmlyrQnt', fieldName: 'otsdCnsgnFmlyrQnt', header: { text: '복토재' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnCmpstgQnt', fieldName: 'otsdCnsgnCmpstgQnt', header: { text: '퇴비화' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'otsdCnsgnFcltNm', fieldName: 'otsdCnsgnFcltNm', header: { text: '시설(업체명)' } },
|
||||
|
||||
// 수도권광역위탁처리량
|
||||
{ name: 'DSP_WIDE', fieldName: '수도권광역위탁처리량(톤/년)', header: { text: '수도권광역위탁처리량(톤/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{ name: 'cparTs1Whol', fieldName: 'cparTs1Whol', header: { text: '수도권광역위탁처리량(톤/년)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 비고
|
||||
{ name: 'RMK', fieldName: '비고', header: { text: '비고' } },
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
|
||||
// Hidden: Check fields
|
||||
{ name: 'CHK_TOT_AMNT', fieldName: 'CHK_TOT_AMNT', header: { text: 'CHK_TOT_AMNT' }, visible: false },
|
||||
{ name: 'CHK_P_AMNT', fieldName: 'CHK_P_AMNT', header: { text: 'CHK_P_AMNT' }, visible: false },
|
||||
{ name: 'CHK_OUT_AMNT', fieldName: 'CHK_OUT_AMNT', header: { text: 'CHK_OUT_AMNT' }, visible: false },
|
||||
{ name: 'CHK_DSP_MOIRAT', fieldName: 'CHK_DSP_MOIRAT', header: { text: 'CHK_DSP_MOIRAT' }, visible: false },
|
||||
{ name: 'CHK_DSP_SM', fieldName: 'CHK_DSP_SM', header: { text: 'CHK_DSP_SM' }, visible: false },
|
||||
{ name: 'CHK_DSP_SELF_SM', fieldName: 'CHK_DSP_SELF_SM', header: { text: 'CHK_DSP_SELF_SM' }, visible: false },
|
||||
{ name: 'CHK_O_DSP_RCLM', fieldName: 'CHK_O_DSP_RCLM', header: { text: 'CHK_O_DSP_RCLM' }, visible: false },
|
||||
{ name: 'CHK_O_DSP_INCNR', fieldName: 'CHK_O_DSP_INCNR', header: { text: 'CHK_O_DSP_INCNR' }, visible: false },
|
||||
{ name: 'CHK_DSP_DESIC', fieldName: 'CHK_DSP_DESIC', header: { text: 'CHK_DSP_DESIC' }, visible: false },
|
||||
{ name: 'CHK_DSP_CONSIGNMENT', fieldName: 'CHK_DSP_CONSIGNMENT', header: { text: 'CHK_DSP_CONSIGNMENT' }, visible: false },
|
||||
{ name: 'CHK_DSP_WIDE', fieldName: 'CHK_DSP_WIDE', header: { text: 'CHK_DSP_WIDE' }, visible: false },
|
||||
{ name: 'CHK_OUT_FCT_NM', fieldName: 'CHK_OUT_FCT_NM', header: { text: 'CHK_OUT_FCT_NM' }, visible: false },
|
||||
// hidden
|
||||
{ name: 'admdstCd', fieldName: 'admdstCd', header: { text: '행정구역코드' }, visible: false, },
|
||||
{ name: 'admdstNm', fieldName: 'admdstNm', header: { text: '행정구역명' }, visible: false },
|
||||
{ name: 'fcltSn', fieldName: 'fcltSn', header: { text: '시설물일련번호' }, visible: false },
|
||||
{ name: 'swtrmtFcltCd', fieldName: 'swtrmtFcltCd', header: { text: '처리장코드' }, visible: false },
|
||||
],
|
||||
|
||||
columnLayout: [
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['SIDO_CD', 'ADST_CD']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'BSC_FCT_NM',
|
||||
'swtrmtFcltNm',
|
||||
{
|
||||
name: 'group_occur_amount',
|
||||
header: { text: '찌꺼기발생량(톤/년, 탈수기준)' },
|
||||
items: [
|
||||
'TOT_AMNT',
|
||||
'P_AMNT',
|
||||
'OUT_AMNT'
|
||||
'gnamWhol',
|
||||
'itslfQnt',
|
||||
'otsdInflwQnt'
|
||||
]
|
||||
},
|
||||
'OUT_FCT_NM',
|
||||
'a',
|
||||
'DSP_MOIRAT',
|
||||
'DSP_SM',
|
||||
'transfTmplntNm',
|
||||
'transfPrcsQnt',
|
||||
'srpFncRt',
|
||||
'wholSrpPrcsQnt',
|
||||
{
|
||||
name: 'group_self_treatment',
|
||||
header: { text: '자체 찌꺼기 처리량(톤/년)' },
|
||||
items: [
|
||||
'DSP_SELF_SM',
|
||||
'O_DSP_RCLM',
|
||||
'O_DSP_INCNR',
|
||||
'itslfTs1Whol',
|
||||
'itslfTs1RclmQnt',
|
||||
'itslfTs1IncnrQnt',
|
||||
{
|
||||
name: 'group_incinerate_2nd',
|
||||
header: { text: '소각 후 처리(2차)' },
|
||||
items: [
|
||||
'b1',
|
||||
'b2',
|
||||
'b3',
|
||||
'b4',
|
||||
'b5'
|
||||
'incnrPrcsWhol',
|
||||
'incnrPrcsLfvlm',
|
||||
'incnrPrcsPrdctRmtrlQnt',
|
||||
'incnrPrcsFmlyrQnt',
|
||||
'incnrPrcsFcltNm'
|
||||
]
|
||||
},
|
||||
'c1',
|
||||
'itslfTs1AltdQnt',
|
||||
{
|
||||
name: 'group_solidify_2nd',
|
||||
header: { text: '고화 후 처리(2차)' },
|
||||
items: [
|
||||
'c2',
|
||||
'c3',
|
||||
'c4',
|
||||
'c5'
|
||||
'stbznPrcsWhol',
|
||||
'stbznPrcsLfvlm',
|
||||
'stbznPrcsFmlyrQnt',
|
||||
'stbznPrcsFcltNm'
|
||||
]
|
||||
},
|
||||
'DSP_DESIC',
|
||||
'itslfTs1DryQnt',
|
||||
{
|
||||
name: 'group_drying_2nd',
|
||||
header: { text: '건조 후 처리(2차)' },
|
||||
items: [
|
||||
'd1',
|
||||
'd2',
|
||||
'd3',
|
||||
'd4',
|
||||
'd5',
|
||||
'd6',
|
||||
'd7',
|
||||
'd8'
|
||||
'dryPrcsWhol',
|
||||
'dryPrcsLfvlm',
|
||||
'dryPrcsIncnrQnt',
|
||||
'dryPrcsFuelQnt',
|
||||
'dryPrcsPrdctRmtrlQnt',
|
||||
'dryPrcsFmlyrQnt',
|
||||
'dryPrcsCmpstgQnt',
|
||||
'dryPrcsFcltNm'
|
||||
]
|
||||
},
|
||||
'e1',
|
||||
'itslfTs1FuelQnt',
|
||||
{
|
||||
name: 'group_carbonize_2nd',
|
||||
header: { text: '탄화 후 처리(2차)' },
|
||||
items: [
|
||||
'e2',
|
||||
'e3',
|
||||
'e4',
|
||||
'e5'
|
||||
'fuelPrcsWhol',
|
||||
'fuelPrcsIncnrQnt',
|
||||
'fuelPrcsFuelQnt',
|
||||
'fuelPrcsFcltNm'
|
||||
]
|
||||
},
|
||||
'f1',
|
||||
'f2'
|
||||
'itslfTs2CmpstgQnt',
|
||||
'cmpsPrcsFcltBzentyNm'
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'group_external_treatment',
|
||||
header: { text: '외부위탁 처리량(톤/년)' },
|
||||
items: [
|
||||
'DSP_CONSIGNMENT',
|
||||
'g1',
|
||||
'g2',
|
||||
'g3',
|
||||
'g4',
|
||||
'g5',
|
||||
'g6',
|
||||
'g7'
|
||||
'otsdCnsgnWhol',
|
||||
'otsdCnsgnRclmQnt',
|
||||
'otsdCnsgnIncnrQnt',
|
||||
'otsdCnsgnFuelPwplQnt',
|
||||
'otsdCnsgnPrdctRmtrlQnt',
|
||||
'otsdCnsgnFmlyrQnt',
|
||||
'otsdCnsgnCmpstgQnt',
|
||||
'otsdCnsgnFcltNm'
|
||||
]
|
||||
},
|
||||
'DSP_WIDE',
|
||||
'RMK'
|
||||
'cparTs1Whol',
|
||||
'rmrk',
|
||||
'admdstCd',
|
||||
'admdstNm',
|
||||
'fcltSn',
|
||||
'swtrmtFcltCd'
|
||||
],
|
||||
|
||||
rowStartNum: 3,
|
||||
fixedColumns: 2,
|
||||
tabKey: 'slurgeProcessingFacStatusInp',
|
||||
tabKey: 'ST00110001',
|
||||
tabLabel: '찌꺼기(슬러지)처리시설현황'
|
||||
};
|
||||
+97
-5
@@ -31,6 +31,25 @@ function dropdownColumn(
|
||||
};
|
||||
}
|
||||
|
||||
/** 하수처리수 재이용현황(천톤/년) — 장내·장외 세부 항목 합산 필드 */
|
||||
const PUBLIC_SEWAGE_REUSE_USE_QNT_SUM_FIELDS = [
|
||||
'ithlClnQty',
|
||||
'ithlFrzgQty',
|
||||
'ithlLdhcUswtrQnt',
|
||||
'ithlDltnUswtrQnt',
|
||||
'ithlRuswtrQnt',
|
||||
'ithlEtcQnt',
|
||||
'ithlUnsdQnt',
|
||||
'otcntrClnRstrmQnt',
|
||||
'otcntrWshwtrQnt',
|
||||
'otcntrLdhcUswtrQnt',
|
||||
'otcntrHdrplUswtrQnt',
|
||||
'otcntrRvrKeepQnt',
|
||||
'agrcltUswtrPstnQnt',
|
||||
'ugwtrChargQnt',
|
||||
'mdsrUswtrQnt',
|
||||
] as const;
|
||||
|
||||
// 하수도 통계 관리 > 10. 물 재이용 > tab 1: 공공하수처리수 재이용
|
||||
export const PublicSewageTreatWaterReuseInpColumn = {
|
||||
columns: [
|
||||
@@ -102,10 +121,44 @@ export const PublicSewageTreatWaterReuseInpColumn = {
|
||||
{ name: 'ruswtPumpLen', fieldName: 'ruswtPumpLen', header: { text: '공급펌프(톤/일)' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
|
||||
// 하수처리수 재이용현황 > 총계
|
||||
{ name: 'wholUseQnt', fieldName: 'wholUseQnt', header: { text: '총계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'wholUseQnt',
|
||||
fieldName: 'wholUseQnt',
|
||||
header: { text: '총계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [...PUBLIC_SEWAGE_REUSE_USE_QNT_SUM_FIELDS],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 하수처리수 재이용현황 > 장내용수
|
||||
{ name: 'ithlWshwtrQnt', fieldName: 'ithlWshwtrQnt', header: { text: '계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'ithlWshwtrQnt',
|
||||
fieldName: 'ithlWshwtrQnt',
|
||||
header: { text: '계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'ithlClnQty',
|
||||
'ithlFrzgQty',
|
||||
'ithlLdhcUswtrQnt',
|
||||
'ithlDltnUswtrQnt',
|
||||
'ithlRuswtrQnt',
|
||||
'ithlEtcQnt',
|
||||
'ithlUnsdQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'ithlClnQty', fieldName: 'ithlClnQty', header: { text: '세척수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
{ name: 'ithlFrzgQty', fieldName: 'ithlFrzgQty', header: { text: '냉각수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
{ name: 'ithlLdhcUswtrQnt', fieldName: 'ithlLdhcUswtrQnt', header: { text: '청소수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
@@ -115,7 +168,29 @@ export const PublicSewageTreatWaterReuseInpColumn = {
|
||||
{ name: 'ithlUnsdQnt', fieldName: 'ithlUnsdQnt', header: { text: '장내기타용수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
|
||||
// 하수처리수 재이용현황 > 장외용수
|
||||
{ name: 'otcntrUswtrWhol', fieldName: 'otcntrUswtrWhol', header: { text: '계' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'otcntrUswtrWhol',
|
||||
fieldName: 'otcntrUswtrWhol',
|
||||
header: { text: '계' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
fields: [
|
||||
'otcntrClnRstrmQnt',
|
||||
'otcntrWshwtrQnt',
|
||||
'otcntrLdhcUswtrQnt',
|
||||
'otcntrHdrplUswtrQnt',
|
||||
'otcntrRvrKeepQnt',
|
||||
'agrcltUswtrPstnQnt',
|
||||
'ugwtrChargQnt',
|
||||
'mdsrUswtrQnt',
|
||||
],
|
||||
type: 'sum' as const,
|
||||
},
|
||||
},
|
||||
{ name: 'otcntrClnRstrmQnt', fieldName: 'otcntrClnRstrmQnt', header: { text: '청소·화장실용수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
{ name: 'otcntrWshwtrQnt', fieldName: 'otcntrWshwtrQnt', header: { text: '세척·살수용수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
{ name: 'otcntrLdhcUswtrQnt', fieldName: 'otcntrLdhcUswtrQnt', header: { text: '조경용수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
@@ -126,7 +201,21 @@ export const PublicSewageTreatWaterReuseInpColumn = {
|
||||
{ name: 'mdsrUswtrQnt', fieldName: 'mdsrUswtrQnt', header: { text: '공업용수' }, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0', styleName: 'rg-cell-readonly', editable: false },
|
||||
|
||||
// 재이용률
|
||||
{ name: 'rtlztnRt', fieldName: 'rtlztnRt', header: { text: '재이용률(%)' }, editable: false, footer: footerDecimal1, valueType: ValueType.NUMBER, dataFormat: '#,##0.0' },
|
||||
{
|
||||
name: 'rtlztnRt',
|
||||
fieldName: 'rtlztnRt',
|
||||
header: { text: '재이용률(%)' },
|
||||
editable: false,
|
||||
footer: footerDecimal1,
|
||||
valueType: ValueType.NUMBER,
|
||||
dataFormat: '#,##0.0',
|
||||
styleName: 'rg-cell-total',
|
||||
computed: {
|
||||
numeratorFields: [...PUBLIC_SEWAGE_REUSE_USE_QNT_SUM_FIELDS],
|
||||
denominatorFields: ['wholPrcsQnt'],
|
||||
type: 'pblswrgPopltnSuprtRate' as const,
|
||||
},
|
||||
},
|
||||
|
||||
// 비고
|
||||
{ name: 'rmrk', fieldName: 'rmrk', header: { text: '비고' } },
|
||||
@@ -142,7 +231,10 @@ export const PublicSewageTreatWaterReuseInpColumn = {
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['ctpvNm', 'sggNm']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'group_facility',
|
||||
|
||||
+4
-1
@@ -139,7 +139,10 @@ export const RainFallUtilFactStatusInpColumn = {
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['ctpvNm', 'sggNm']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'fcltNm',
|
||||
'bdstTypCn',
|
||||
|
||||
@@ -157,7 +157,10 @@ export const RecycledWaterStatusInpColumn = {
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['ctpvNm', 'sggNm']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'fcltNm',
|
||||
'bldgSeCn',
|
||||
|
||||
+4
-1
@@ -40,7 +40,10 @@ export const TreatWaterReuseBusinessApprStatusInpColumn = {
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['ctpvNm', 'sggNm']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'bplcNm',
|
||||
'rprsvNm',
|
||||
|
||||
+4
-1
@@ -40,7 +40,10 @@ export const TreatWaterReuseDesignConstStatusInpColumn = {
|
||||
{
|
||||
name: 'group_admin',
|
||||
header: { text: '행정구역' },
|
||||
items: ['ctpvNm', 'sggNm']
|
||||
items: [
|
||||
{ column: 'ctpvNm', footerUserSpans: [{ colspan: 2 }] },
|
||||
'sggNm',
|
||||
],
|
||||
},
|
||||
'bplcNm',
|
||||
'rprsvNm',
|
||||
|
||||
@@ -328,6 +328,25 @@ export function createQuotientValueCallback(fields: string[]): DataFieldValueCal
|
||||
};
|
||||
}
|
||||
|
||||
/** (numerator / denominator) × multiplier × 100 — 분모 0이면 0 */
|
||||
export function createQuotientTimesMultiplierPercentValueCallback(
|
||||
numeratorField: string,
|
||||
denominatorField: string,
|
||||
multiplierField: string,
|
||||
): DataFieldValueCallback {
|
||||
return (_prod, _dataRow, _fieldName, fieldNamesArr, values) => {
|
||||
const getVal = (field: string) => {
|
||||
const idx = fieldNamesArr.indexOf(field);
|
||||
return idx >= 0 ? toNum(values[idx]) : 0;
|
||||
};
|
||||
const denominator = getVal(denominatorField);
|
||||
if (denominator === 0) return 0;
|
||||
const quotient = getVal(numeratorField) / denominator;
|
||||
const multiplier = getVal(multiplierField);
|
||||
return truncateToFirstDecimal(quotient * multiplier * 100);
|
||||
};
|
||||
}
|
||||
|
||||
/** 연산 타입에 맞는 valueCallback 반환 */
|
||||
export function getComputedValueCallback(config: ComputedFieldConfig): DataFieldValueCallback {
|
||||
switch (config.type) {
|
||||
@@ -384,5 +403,11 @@ export function getComputedValueCallback(config: ComputedFieldConfig): DataField
|
||||
config.numeratorFields,
|
||||
config.denominatorField,
|
||||
);
|
||||
case 'quotientTimesMultiplierPercent':
|
||||
return createQuotientTimesMultiplierPercentValueCallback(
|
||||
config.numeratorField,
|
||||
config.denominatorField,
|
||||
config.multiplierField,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
import { stClient } from "@/shared/api/client";
|
||||
import { withAuthHeader } from "@/shared/api/with-auth-header";
|
||||
import { ENDPOINT } from "@/shared/config";
|
||||
|
||||
import type {
|
||||
ExcretaRelatedIndustryApiResponse,
|
||||
ExcretaRelatedIndustrySaveRequest,
|
||||
ExcretaRelatedIndustrySubmitRequest,
|
||||
PrivateSewageTreatRelatedIndustryApiResponse,
|
||||
PrivateSewageTreatRelatedIndustrySaveRequest,
|
||||
PrivateSewageTreatRelatedIndustrySubmitRequest,
|
||||
PublicInstitutionExcretaIndustryApiResponse,
|
||||
PublicInstitutionExcretaIndustrySaveRequest,
|
||||
PublicInstitutionExcretaIndustrySubmitRequest,
|
||||
PublicInstitutionSewerIndustryApiResponse,
|
||||
PublicInstitutionSewerIndustrySaveRequest,
|
||||
PublicInstitutionSewerIndustrySubmitRequest,
|
||||
SewageExcretaRelatedRequestParams,
|
||||
SewageExcretaRelatedSaveResponse,
|
||||
SewageExcretaRelatedSubmitResponse,
|
||||
StatisticsInputSewageExcretaRelatedService,
|
||||
} from "../../model/input/statistics-input-sewage-excreta-related-interface";
|
||||
|
||||
const BASE = `${ENDPOINT.ST_SERVICE.INPUT}/sewage-excreta-related`;
|
||||
|
||||
export class StatisticsInputSewageExcretaRelatedApiService
|
||||
implements StatisticsInputSewageExcretaRelatedService
|
||||
{
|
||||
/** 공공기관 하수분야 조회 — ST00120001 */
|
||||
public async getPublicInstitutionSewerIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PublicInstitutionSewerIndustryApiResponse> {
|
||||
const response = await stClient.get<PublicInstitutionSewerIndustryApiResponse>(
|
||||
`${BASE}/public-institution-sewer-industry`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공기관 하수분야 저장 — ST00120001 */
|
||||
public async savePublicInstitutionSewerIndustry(
|
||||
request: PublicInstitutionSewerIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSaveResponse>(
|
||||
`${BASE}/public-institution-sewer-industry/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공기관 하수분야 제출 — ST00120001 */
|
||||
public async submitPublicInstitutionSewerIndustry(
|
||||
request: PublicInstitutionSewerIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSubmitResponse>(
|
||||
`${BASE}/public-institution-sewer-industry/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공기관 분뇨분야 조회 — ST00120002 */
|
||||
public async getPublicInstitutionExcretaIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PublicInstitutionExcretaIndustryApiResponse> {
|
||||
const response = await stClient.get<PublicInstitutionExcretaIndustryApiResponse>(
|
||||
`${BASE}/public-institution-excreta-industry`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공기관 분뇨분야 저장 — ST00120002 */
|
||||
public async savePublicInstitutionExcretaIndustry(
|
||||
request: PublicInstitutionExcretaIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSaveResponse>(
|
||||
`${BASE}/public-institution-excreta-industry/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공기관 분뇨분야 제출 — ST00120002 */
|
||||
public async submitPublicInstitutionExcretaIndustry(
|
||||
request: PublicInstitutionExcretaIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSubmitResponse>(
|
||||
`${BASE}/public-institution-excreta-industry/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨수집·운반업 조회 — ST00120003 */
|
||||
public async getExcretaRelatedIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<ExcretaRelatedIndustryApiResponse> {
|
||||
const response = await stClient.get<ExcretaRelatedIndustryApiResponse>(
|
||||
`${BASE}/excreta-related-industry`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨수집·운반업 저장 — ST00120003 */
|
||||
public async saveExcretaRelatedIndustry(
|
||||
request: ExcretaRelatedIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSaveResponse>(
|
||||
`${BASE}/excreta-related-industry/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨수집·운반업 제출 — ST00120003 */
|
||||
public async submitExcretaRelatedIndustry(
|
||||
request: ExcretaRelatedIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSubmitResponse>(
|
||||
`${BASE}/excreta-related-industry/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 개인하수처리관련업 조회 — ST00120004 */
|
||||
public async getPrivateSewageTreatRelatedIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PrivateSewageTreatRelatedIndustryApiResponse> {
|
||||
const response = await stClient.get<PrivateSewageTreatRelatedIndustryApiResponse>(
|
||||
`${BASE}/private-sewage-treat-related-industry`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 개인하수처리관련업 저장 — ST00120004 */
|
||||
public async savePrivateSewageTreatRelatedIndustry(
|
||||
request: PrivateSewageTreatRelatedIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSaveResponse>(
|
||||
`${BASE}/private-sewage-treat-related-industry/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 개인하수처리관련업 제출 — ST00120004 */
|
||||
public async submitPrivateSewageTreatRelatedIndustry(
|
||||
request: PrivateSewageTreatRelatedIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse> {
|
||||
const response = await stClient.put<SewageExcretaRelatedSubmitResponse>(
|
||||
`${BASE}/private-sewage-treat-related-industry/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
|
||||
export const statisticsInputSewageExcretaRelatedApi =
|
||||
new StatisticsInputSewageExcretaRelatedApiService();
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
import { stClient } from "@/shared/api/client";
|
||||
import { withAuthHeader } from "@/shared/api/with-auth-header";
|
||||
import { ENDPOINT } from "@/shared/config";
|
||||
|
||||
import type {
|
||||
DigestorOperatingStatusApiResponse,
|
||||
DigestorOperatingStatusSaveRequest,
|
||||
DigestorOperatingStatusSaveResponse,
|
||||
DigestorOperatingStatusSubmitRequest,
|
||||
DigestorOperatingStatusSubmitResponse,
|
||||
ExcretaSlurgeProcessingStatusApiResponse,
|
||||
ExcretaSlurgeProcessingStatusSaveRequest,
|
||||
ExcretaSlurgeProcessingStatusSaveResponse,
|
||||
ExcretaSlurgeProcessingStatusSubmitRequest,
|
||||
ExcretaSlurgeProcessingStatusSubmitResponse,
|
||||
PublicSewageFacilitiesListApiResponse,
|
||||
PublicSewageFacilitiesListRequest,
|
||||
SewageExcretaSlurgeRequestParams,
|
||||
SewageSlurgeProcessingFacStatusApiResponse,
|
||||
SewageSlurgeProcessingFacStatusSaveRequest,
|
||||
SewageSlurgeProcessingFacStatusSaveResponse,
|
||||
SewageSlurgeProcessingFacStatusSubmitRequest,
|
||||
SewageSlurgeProcessingFacStatusSubmitResponse,
|
||||
SlurgeProcessingFacStatusApiResponse,
|
||||
SlurgeProcessingFacStatusSaveRequest,
|
||||
SlurgeProcessingFacStatusSaveResponse,
|
||||
SlurgeProcessingFacStatusSubmitRequest,
|
||||
SlurgeProcessingFacStatusSubmitResponse,
|
||||
StatisticsInputSewageExcretaSlurgeService,
|
||||
} from "../../model/input/statistics-input-sewage-excreta-slurge-interface";
|
||||
|
||||
const BASE = `${ENDPOINT.ST_SERVICE.INPUT}/sewage-excreta-slurge`;
|
||||
|
||||
export class StatisticsInputSewageExcretaSlurgeApiService
|
||||
implements StatisticsInputSewageExcretaSlurgeService
|
||||
{
|
||||
/** 찌꺼기(슬러지)처리시설현황 조회 — ST00110001 */
|
||||
public async getSlurgeProcessingFacStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<SlurgeProcessingFacStatusApiResponse> {
|
||||
const response = await stClient.get<SlurgeProcessingFacStatusApiResponse>(
|
||||
`${BASE}/slurge-processing-fac-status`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 찌꺼기(슬러지)처리시설현황 저장 — ST00110001 */
|
||||
public async saveSlurgeProcessingFacStatus(
|
||||
request: SlurgeProcessingFacStatusSaveRequest,
|
||||
): Promise<SlurgeProcessingFacStatusSaveResponse> {
|
||||
const response = await stClient.put<SlurgeProcessingFacStatusSaveResponse>(
|
||||
`${BASE}/slurge-processing-fac-status/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 찌꺼기(슬러지)처리시설현황 제출 — ST00110001 */
|
||||
public async submitSlurgeProcessingFacStatus(
|
||||
request: SlurgeProcessingFacStatusSubmitRequest,
|
||||
): Promise<SlurgeProcessingFacStatusSubmitResponse> {
|
||||
const response = await stClient.put<SlurgeProcessingFacStatusSubmitResponse>(
|
||||
`${BASE}/slurge-processing-fac-status/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 소화조 운영현황 조회 — ST00110002 */
|
||||
public async getDigestorOperatingStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<DigestorOperatingStatusApiResponse> {
|
||||
const response = await stClient.get<DigestorOperatingStatusApiResponse>(
|
||||
`${BASE}/digestor-operating-status`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 소화조 운영현황 저장 — ST00110002 */
|
||||
public async saveDigestorOperatingStatus(
|
||||
request: DigestorOperatingStatusSaveRequest,
|
||||
): Promise<DigestorOperatingStatusSaveResponse> {
|
||||
const response = await stClient.put<DigestorOperatingStatusSaveResponse>(
|
||||
`${BASE}/digestor-operating-status/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 소화조 운영현황 제출 — ST00110002 */
|
||||
public async submitDigestorOperatingStatus(
|
||||
request: DigestorOperatingStatusSubmitRequest,
|
||||
): Promise<DigestorOperatingStatusSubmitResponse> {
|
||||
const response = await stClient.put<DigestorOperatingStatusSubmitResponse>(
|
||||
`${BASE}/digestor-operating-status/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 하수찌꺼기 처리시설 운영현황 조회 — ST00110003 */
|
||||
public async getSewageSlurgeProcessingFacStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<SewageSlurgeProcessingFacStatusApiResponse> {
|
||||
const response = await stClient.get<SewageSlurgeProcessingFacStatusApiResponse>(
|
||||
`${BASE}/sewage-slurge-processing-fac-status`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 하수찌꺼기 처리시설 운영현황 저장 — ST00110003 */
|
||||
public async saveSewageSlurgeProcessingFacStatus(
|
||||
request: SewageSlurgeProcessingFacStatusSaveRequest,
|
||||
): Promise<SewageSlurgeProcessingFacStatusSaveResponse> {
|
||||
const response = await stClient.put<SewageSlurgeProcessingFacStatusSaveResponse>(
|
||||
`${BASE}/sewage-slurge-processing-fac-status/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 하수찌꺼기 처리시설 운영현황 제출 — ST00110003 */
|
||||
public async submitSewageSlurgeProcessingFacStatus(
|
||||
request: SewageSlurgeProcessingFacStatusSubmitRequest,
|
||||
): Promise<SewageSlurgeProcessingFacStatusSubmitResponse> {
|
||||
const response = await stClient.put<SewageSlurgeProcessingFacStatusSubmitResponse>(
|
||||
`${BASE}/sewage-slurge-processing-fac-status/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 조회 — ST00110004 */
|
||||
public async getExcretaSlurgeProcessingStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<ExcretaSlurgeProcessingStatusApiResponse> {
|
||||
const response = await stClient.get<ExcretaSlurgeProcessingStatusApiResponse>(
|
||||
`${BASE}/excreta-slurge-processing-status`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 저장 — ST00110004 */
|
||||
public async saveExcretaSlurgeProcessingStatus(
|
||||
request: ExcretaSlurgeProcessingStatusSaveRequest,
|
||||
): Promise<ExcretaSlurgeProcessingStatusSaveResponse> {
|
||||
const response = await stClient.put<ExcretaSlurgeProcessingStatusSaveResponse>(
|
||||
`${BASE}/excreta-slurge-processing-status/save`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 제출 — ST00110004 */
|
||||
public async submitExcretaSlurgeProcessingStatus(
|
||||
request: ExcretaSlurgeProcessingStatusSubmitRequest,
|
||||
): Promise<ExcretaSlurgeProcessingStatusSubmitResponse> {
|
||||
const response = await stClient.put<ExcretaSlurgeProcessingStatusSubmitResponse>(
|
||||
`${BASE}/excreta-slurge-processing-status/submit`,
|
||||
request,
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공공하수처리시설 목록 조회 */
|
||||
public async getPublicSewageFacilitiesList(
|
||||
params: PublicSewageFacilitiesListRequest,
|
||||
): Promise<PublicSewageFacilitiesListApiResponse> {
|
||||
const response = await stClient.get<PublicSewageFacilitiesListApiResponse>(
|
||||
`${BASE}/public-sewage-facilities`,
|
||||
withAuthHeader({ params }),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
|
||||
export const statisticsInputSewageExcretaSlurgeApi =
|
||||
new StatisticsInputSewageExcretaSlurgeApiService();
|
||||
+328
@@ -0,0 +1,328 @@
|
||||
import type { ApiResponse, SewerageStatusInfo } from "../statistics-interface";
|
||||
|
||||
/** 하수·분뇨관련산업 — 공공기관 하수분야(ST00120001) `PublicInstitutionSewerIndustryInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_PUBLIC_INSTITUTION_SEWER_STATS_CD = "ST00120001" as const;
|
||||
|
||||
/** 검증 결과 한 건 */
|
||||
export interface SewageExcretaRelatedVerificationResultItem {
|
||||
vrfcCd: string;
|
||||
rsnExpln: string;
|
||||
nowVlCn: string;
|
||||
compVlCn: string;
|
||||
}
|
||||
|
||||
/** 필드명 → 검증 결과 배열 */
|
||||
export type SewageExcretaRelatedVerificationResult = Record<
|
||||
string,
|
||||
SewageExcretaRelatedVerificationResultItem[]
|
||||
>;
|
||||
|
||||
/** 조회 `data.commonInfo` */
|
||||
export interface SewageExcretaRelatedCommonInfo {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sewerBzmnCd: string;
|
||||
statsCd: string;
|
||||
verificationResult?: SewageExcretaRelatedVerificationResult;
|
||||
}
|
||||
|
||||
/** 하수·분뇨관련산업 조회 요청 파라미터 */
|
||||
export interface SewageExcretaRelatedRequestParams {
|
||||
ctpvNm?: string;
|
||||
sggNm?: string;
|
||||
sewerBzmnCd?: string;
|
||||
statsYr?: string;
|
||||
mode?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* ST00120001 조회 `data.publicInstitutionSewerIndustryList[]` 한 행.
|
||||
* `PublicInstitutionSewerIndustryInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface PublicInstitutionSewerIndustryItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
ognzSn: string;
|
||||
ognzNm: string;
|
||||
empGrssCnt: number;
|
||||
pbadmsNope: number;
|
||||
techWholNope: number;
|
||||
engrkCnt: number;
|
||||
mchnCnt: number;
|
||||
prvtmCnt: number;
|
||||
chmengCnt: number;
|
||||
envCnt: number;
|
||||
enjbEtcCnt: number;
|
||||
etcCnt: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaRelatedVerificationResult;
|
||||
}
|
||||
|
||||
export interface PublicInstitutionSewerIndustryResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaRelatedCommonInfo;
|
||||
publicInstitutionSewerIndustryList: PublicInstitutionSewerIndustryItem[];
|
||||
}
|
||||
|
||||
export type PublicInstitutionSewerIndustryApiResponse =
|
||||
ApiResponse<PublicInstitutionSewerIndustryResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/** 하수·분뇨관련산업 — 공공기관 분뇨분야(ST00120002) `PublicInstitutionExcretaIndustryInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_PUBLIC_INSTITUTION_EXCRETA_STATS_CD = "ST00120002" as const;
|
||||
|
||||
/**
|
||||
* ST00120002 조회 `data.publicInstitutionExcretaIndustryList[]` 한 행.
|
||||
* `PublicInstitutionExcretaIndustryInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface PublicInstitutionExcretaIndustryItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
ognzSn: string;
|
||||
ognzNm: string;
|
||||
empGrssCnt: number;
|
||||
pbadmsNope: number;
|
||||
techWholNope: number;
|
||||
engrkCnt: number;
|
||||
mchnCnt: number;
|
||||
prvtmCnt: number;
|
||||
chmengCnt: number;
|
||||
envCnt: number;
|
||||
enjbEtcCnt: number;
|
||||
etcCnt: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaRelatedVerificationResult;
|
||||
}
|
||||
|
||||
export interface PublicInstitutionExcretaIndustryResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaRelatedCommonInfo;
|
||||
publicInstitutionExcretaIndustryList: PublicInstitutionExcretaIndustryItem[];
|
||||
}
|
||||
|
||||
export type PublicInstitutionExcretaIndustryApiResponse =
|
||||
ApiResponse<PublicInstitutionExcretaIndustryResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/** 하수·분뇨관련산업 — 분뇨수집·운반업(ST00120003) `ExcretaRelatedIndustryInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_EXCRETA_RELATED_INDUSTRY_STATS_CD = "ST00120003" as const;
|
||||
|
||||
/**
|
||||
* ST00120003 조회 `data.excretaRelatedIndustryList[]` 한 행.
|
||||
* `ExcretaRelatedIndustryInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface ExcretaRelatedIndustryItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
bzentyCnt: number;
|
||||
empNope: number;
|
||||
fcltSecrPrstCnt: number;
|
||||
n3TonUdrCnt: number;
|
||||
n4TonUdrCnt: number;
|
||||
n8TonUdrCnt: number;
|
||||
etcCnt: number;
|
||||
clctCnvncPrfmncQnt: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaRelatedVerificationResult;
|
||||
}
|
||||
|
||||
export interface ExcretaRelatedIndustryResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaRelatedCommonInfo;
|
||||
excretaRelatedIndustryList: ExcretaRelatedIndustryItem[];
|
||||
}
|
||||
|
||||
export type ExcretaRelatedIndustryApiResponse = ApiResponse<ExcretaRelatedIndustryResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/** 하수·분뇨관련산업 — 개인하수처리관련업(ST00120004) `PrivateSewageTreatRelatedIndustryInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_PRIVATE_SEWAGE_TREAT_RELATED_INDUSTRY_STATS_CD = "ST00120004" as const;
|
||||
|
||||
/**
|
||||
* ST00120004 조회 `data.privateSewageTreatRelatedIndustryList[]` 한 행.
|
||||
* `PrivateSewageTreatRelatedIndustryInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface PrivateSewageTreatRelatedIndustryItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
designMdsrCnt: number;
|
||||
designMdsrNope: number;
|
||||
mfbizCnt: number;
|
||||
mfbizMdsrNope: number;
|
||||
mngCnt: number;
|
||||
mngMdsrNope: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaRelatedVerificationResult;
|
||||
}
|
||||
|
||||
export interface PrivateSewageTreatRelatedIndustryResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaRelatedCommonInfo;
|
||||
privateSewageTreatRelatedIndustryList: PrivateSewageTreatRelatedIndustryItem[];
|
||||
}
|
||||
|
||||
export type PrivateSewageTreatRelatedIndustryApiResponse =
|
||||
ApiResponse<PrivateSewageTreatRelatedIndustryResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/** ST00120001·ST00120002 저장 — `saveList` / `deleteList` 항목 (`sggNm`·계산필드·검증결과 제외) */
|
||||
export type PublicInstitutionSewerIndustrySaveItem = Omit<
|
||||
PublicInstitutionSewerIndustryItem,
|
||||
"sggNm" | "verificationResult" | "empGrssCnt" | "techWholNope"
|
||||
>;
|
||||
|
||||
export type PublicInstitutionExcretaIndustrySaveItem = Omit<
|
||||
PublicInstitutionExcretaIndustryItem,
|
||||
"sggNm" | "verificationResult" | "empGrssCnt" | "techWholNope"
|
||||
>;
|
||||
|
||||
/** ST00120003·ST00120004 저장 — `saveList` 항목 (`sggNm`·계산필드·검증결과 제외) */
|
||||
export type ExcretaRelatedIndustrySaveItem = Omit<
|
||||
ExcretaRelatedIndustryItem,
|
||||
"sggNm" | "verificationResult" | "fcltSecrPrstCnt"
|
||||
>;
|
||||
|
||||
export type PrivateSewageTreatRelatedIndustrySaveItem = Omit<
|
||||
PrivateSewageTreatRelatedIndustryItem,
|
||||
"sggNm" | "verificationResult"
|
||||
>;
|
||||
|
||||
export interface SewageExcretaRelatedSaveRequestBase {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
superAdmin?: string;
|
||||
}
|
||||
|
||||
export interface PublicInstitutionSewerIndustrySaveRequest extends SewageExcretaRelatedSaveRequestBase {
|
||||
noApplicable?: boolean;
|
||||
saveList: PublicInstitutionSewerIndustrySaveItem[];
|
||||
deleteList: PublicInstitutionSewerIndustrySaveItem[];
|
||||
}
|
||||
|
||||
export interface PublicInstitutionExcretaIndustrySaveRequest extends SewageExcretaRelatedSaveRequestBase {
|
||||
noApplicable?: boolean;
|
||||
saveList: PublicInstitutionExcretaIndustrySaveItem[];
|
||||
deleteList: PublicInstitutionExcretaIndustrySaveItem[];
|
||||
}
|
||||
|
||||
export interface ExcretaRelatedIndustrySaveRequest extends SewageExcretaRelatedSaveRequestBase {
|
||||
saveList: ExcretaRelatedIndustrySaveItem[];
|
||||
}
|
||||
|
||||
export interface PrivateSewageTreatRelatedIndustrySaveRequest extends SewageExcretaRelatedSaveRequestBase {
|
||||
saveList: PrivateSewageTreatRelatedIndustrySaveItem[];
|
||||
}
|
||||
|
||||
export type SewageExcretaRelatedSaveResponse = ApiResponse<unknown> & {
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export interface SewageExcretaRelatedSubmitRequestBase extends SewageExcretaRelatedSaveRequestBase {
|
||||
laePicNm: string;
|
||||
laePicTelNo: string;
|
||||
laeKbrdrDeptNm: string;
|
||||
laeKbrdrJbgdNm: string;
|
||||
laeIdfrNm: string;
|
||||
laeIdfrTelNo: string;
|
||||
laeIdfrDeptNm: string;
|
||||
laeIdfrJbgdNm: string;
|
||||
}
|
||||
|
||||
export type PublicInstitutionSewerIndustrySubmitItem = PublicInstitutionSewerIndustrySaveItem;
|
||||
|
||||
export interface PublicInstitutionSewerIndustrySubmitRequest extends SewageExcretaRelatedSubmitRequestBase {
|
||||
noApplicable?: boolean;
|
||||
submitList: PublicInstitutionSewerIndustrySubmitItem[];
|
||||
deleteList: PublicInstitutionSewerIndustrySubmitItem[];
|
||||
}
|
||||
|
||||
export type PublicInstitutionExcretaIndustrySubmitItem = PublicInstitutionExcretaIndustrySaveItem;
|
||||
|
||||
export interface PublicInstitutionExcretaIndustrySubmitRequest extends SewageExcretaRelatedSubmitRequestBase {
|
||||
noApplicable?: boolean;
|
||||
submitList: PublicInstitutionExcretaIndustrySubmitItem[];
|
||||
deleteList: PublicInstitutionExcretaIndustrySubmitItem[];
|
||||
}
|
||||
|
||||
export type ExcretaRelatedIndustrySubmitItem = ExcretaRelatedIndustrySaveItem;
|
||||
|
||||
export interface ExcretaRelatedIndustrySubmitRequest extends SewageExcretaRelatedSubmitRequestBase {
|
||||
submitList: ExcretaRelatedIndustrySubmitItem[];
|
||||
}
|
||||
|
||||
export type PrivateSewageTreatRelatedIndustrySubmitItem = PrivateSewageTreatRelatedIndustrySaveItem;
|
||||
|
||||
export interface PrivateSewageTreatRelatedIndustrySubmitRequest extends SewageExcretaRelatedSubmitRequestBase {
|
||||
submitList: PrivateSewageTreatRelatedIndustrySubmitItem[];
|
||||
}
|
||||
|
||||
export interface SewageExcretaRelatedSubmitResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
data?: {
|
||||
finalStatus: string;
|
||||
nvpassed: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
export interface StatisticsInputSewageExcretaRelatedService {
|
||||
/** 공공기관 하수분야 조회 — ST00120001 */
|
||||
getPublicInstitutionSewerIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PublicInstitutionSewerIndustryApiResponse>;
|
||||
/** 공공기관 하수분야 저장 — ST00120001 */
|
||||
savePublicInstitutionSewerIndustry(
|
||||
request: PublicInstitutionSewerIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse>;
|
||||
/** 공공기관 하수분야 제출 — ST00120001 */
|
||||
submitPublicInstitutionSewerIndustry(
|
||||
request: PublicInstitutionSewerIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse>;
|
||||
/** 공공기관 분뇨분야 조회 — ST00120002 */
|
||||
getPublicInstitutionExcretaIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PublicInstitutionExcretaIndustryApiResponse>;
|
||||
/** 공공기관 분뇨분야 저장 — ST00120002 */
|
||||
savePublicInstitutionExcretaIndustry(
|
||||
request: PublicInstitutionExcretaIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse>;
|
||||
/** 공공기관 분뇨분야 제출 — ST00120002 */
|
||||
submitPublicInstitutionExcretaIndustry(
|
||||
request: PublicInstitutionExcretaIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse>;
|
||||
/** 분뇨수집·운반업 조회 — ST00120003 */
|
||||
getExcretaRelatedIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<ExcretaRelatedIndustryApiResponse>;
|
||||
/** 분뇨수집·운반업 저장 — ST00120003 */
|
||||
saveExcretaRelatedIndustry(
|
||||
request: ExcretaRelatedIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse>;
|
||||
/** 분뇨수집·운반업 제출 — ST00120003 */
|
||||
submitExcretaRelatedIndustry(
|
||||
request: ExcretaRelatedIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse>;
|
||||
/** 개인하수처리관련업 조회 — ST00120004 */
|
||||
getPrivateSewageTreatRelatedIndustryList(
|
||||
params: SewageExcretaRelatedRequestParams,
|
||||
): Promise<PrivateSewageTreatRelatedIndustryApiResponse>;
|
||||
/** 개인하수처리관련업 저장 — ST00120004 */
|
||||
savePrivateSewageTreatRelatedIndustry(
|
||||
request: PrivateSewageTreatRelatedIndustrySaveRequest,
|
||||
): Promise<SewageExcretaRelatedSaveResponse>;
|
||||
/** 개인하수처리관련업 제출 — ST00120004 */
|
||||
submitPrivateSewageTreatRelatedIndustry(
|
||||
request: PrivateSewageTreatRelatedIndustrySubmitRequest,
|
||||
): Promise<SewageExcretaRelatedSubmitResponse>;
|
||||
}
|
||||
+539
@@ -0,0 +1,539 @@
|
||||
import type { ApiResponse, SewerageStatusInfo } from "../statistics-interface";
|
||||
|
||||
/** 슬러지 처리 — 찌꺼기(슬러지)처리시설현황(ST00110001) `SlurgeProcessingFacStatusInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_SLURGE_PROCESSING_FAC_STATUS_STATS_CD = "ST00110001" as const;
|
||||
|
||||
/** 슬러지 처리 — 소화조 운영현황(ST00110002) `DigestorOperatingStatusInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_DIGESTOR_OPERATING_STATS_CD = "ST00110002" as const;
|
||||
|
||||
/** 슬러지 처리 — 하수찌꺼기 처리시설 운영현황(ST00110003) `SewageSlurgeProcessingFacStatusInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_SEWAGE_SLURGE_FAC_STATUS_STATS_CD = "ST00110003" as const;
|
||||
|
||||
/** 슬러지 처리 — 분뇨찌꺼기(슬러지)처리현황(ST00110004) `ExcretaSlurgeProcessingStatusInpColumn.tabKey` */
|
||||
export const SEWAGE_EXCRETA_EXCRETA_SLURGE_PROCESSING_STATS_CD = "ST00110004" as const;
|
||||
|
||||
/** 검증 결과 한 건 */
|
||||
export interface SewageExcretaSlurgeVerificationResultItem {
|
||||
vrfcCd: string;
|
||||
rsnExpln: string;
|
||||
nowVlCn: string;
|
||||
compVlCn: string;
|
||||
}
|
||||
|
||||
/** 필드명 → 검증 결과 배열 */
|
||||
export type SewageExcretaSlurgeVerificationResult = Record<
|
||||
string,
|
||||
SewageExcretaSlurgeVerificationResultItem[]
|
||||
>;
|
||||
|
||||
/** 조회 `data.commonInfo` */
|
||||
export interface SewageExcretaSlurgeCommonInfo {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sewerBzmnCd: string;
|
||||
statsCd: string;
|
||||
verificationResult?: SewageExcretaSlurgeVerificationResult;
|
||||
}
|
||||
|
||||
/** 슬러지 처리 조회 요청 파라미터 */
|
||||
export interface SewageExcretaSlurgeRequestParams {
|
||||
ctpvNm?: string;
|
||||
sggNm?: string;
|
||||
sewerBzmnCd?: string;
|
||||
statsYr?: string;
|
||||
fcltNm?: string;
|
||||
mode?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* ST00110001 조회 `data.slurgeProcessingFacStatusList[]` 한 행.
|
||||
* `SlurgeProcessingFacStatusInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface SlurgeProcessingFacStatusItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
fcltSn: string;
|
||||
swtrmtFcltNm: string;
|
||||
swtrmtFcltCd: string;
|
||||
gnamWhol: number;
|
||||
itslfQnt: number;
|
||||
otsdInflwQnt: number;
|
||||
transfTmplntNm: string;
|
||||
transfPrcsQnt: number;
|
||||
srpFncRt: number;
|
||||
wholSrpPrcsQnt: number;
|
||||
itslfTs1Whol: number;
|
||||
itslfTs1RclmQnt: number;
|
||||
itslfTs1IncnrQnt: number;
|
||||
incnrPrcsWhol: number;
|
||||
incnrPrcsLfvlm: number;
|
||||
incnrPrcsPrdctRmtrlQnt: number;
|
||||
incnrPrcsFmlyrQnt: number;
|
||||
incnrPrcsFcltNm: string;
|
||||
itslfTs1AltdQnt: number;
|
||||
stbznPrcsWhol: number;
|
||||
stbznPrcsLfvlm: number;
|
||||
stbznPrcsFmlyrQnt: number;
|
||||
stbznPrcsFcltNm: string;
|
||||
itslfTs1DryQnt: number;
|
||||
dryPrcsWhol: number;
|
||||
dryPrcsLfvlm: number;
|
||||
dryPrcsIncnrQnt: number;
|
||||
dryPrcsFuelQnt: number;
|
||||
dryPrcsPrdctRmtrlQnt: number;
|
||||
dryPrcsFmlyrQnt: number;
|
||||
dryPrcsCmpstgQnt: number;
|
||||
dryPrcsFcltNm: string;
|
||||
itslfTs1FuelQnt: number;
|
||||
fuelPrcsWhol: number;
|
||||
fuelPrcsIncnrQnt: number;
|
||||
fuelPrcsFuelQnt: number;
|
||||
fuelPrcsFcltNm: string;
|
||||
itslfTs2CmpstgQnt: number;
|
||||
cmpsPrcsFcltBzentyNm: string;
|
||||
otsdCnsgnWhol: number;
|
||||
otsdCnsgnRclmQnt: number;
|
||||
otsdCnsgnIncnrQnt: number;
|
||||
otsdCnsgnFuelPwplQnt: number;
|
||||
otsdCnsgnPrdctRmtrlQnt: number;
|
||||
otsdCnsgnFmlyrQnt: number;
|
||||
otsdCnsgnCmpstgQnt: number;
|
||||
otsdCnsgnFcltNm: string;
|
||||
cparTs1Whol: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaSlurgeVerificationResult;
|
||||
}
|
||||
|
||||
export interface SlurgeProcessingFacStatusResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaSlurgeCommonInfo;
|
||||
slurgeProcessingFacStatusList: SlurgeProcessingFacStatusItem[];
|
||||
}
|
||||
|
||||
export type SlurgeProcessingFacStatusApiResponse =
|
||||
ApiResponse<SlurgeProcessingFacStatusResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* ST00110001 저장 — `saveList` / `deleteList` 항목.
|
||||
* `sggNm`·계산필드·검증결과는 저장 요청에서 제외.
|
||||
*/
|
||||
export type SlurgeProcessingFacStatusSaveItem = Omit<
|
||||
SlurgeProcessingFacStatusItem,
|
||||
| "sggNm"
|
||||
| "verificationResult"
|
||||
| "gnamWhol"
|
||||
| "wholSrpPrcsQnt"
|
||||
| "itslfTs1Whol"
|
||||
| "incnrPrcsWhol"
|
||||
| "stbznPrcsWhol"
|
||||
| "dryPrcsWhol"
|
||||
| "fuelPrcsWhol"
|
||||
| "otsdCnsgnWhol"
|
||||
>;
|
||||
|
||||
/** ST00110001 저장 API 요청 */
|
||||
export interface SlurgeProcessingFacStatusSaveRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
saveList: SlurgeProcessingFacStatusSaveItem[];
|
||||
deleteList: SlurgeProcessingFacStatusSaveItem[];
|
||||
}
|
||||
|
||||
export type SlurgeProcessingFacStatusSaveResponse = ApiResponse<unknown> & {
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export type SlurgeProcessingFacStatusSubmitItem = SlurgeProcessingFacStatusSaveItem;
|
||||
|
||||
/** ST00110001 제출 API 요청 */
|
||||
export interface SlurgeProcessingFacStatusSubmitRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
laePicNm: string;
|
||||
laePicTelNo: string;
|
||||
laeKbrdrDeptNm: string;
|
||||
laeKbrdrJbgdNm: string;
|
||||
laeIdfrNm: string;
|
||||
laeIdfrTelNo: string;
|
||||
laeIdfrDeptNm: string;
|
||||
laeIdfrJbgdNm: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
submitList: SlurgeProcessingFacStatusSubmitItem[];
|
||||
deleteList: SlurgeProcessingFacStatusSubmitItem[];
|
||||
}
|
||||
|
||||
export interface SlurgeProcessingFacStatusSubmitResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
data?: {
|
||||
finalStatus: string;
|
||||
nvpassed: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* ST00110002 조회 `data.digestorOperatingStatusList[]` 한 행.
|
||||
* `DigestorOperatingStatusInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface DigestorOperatingStatusItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
fcltSn: string;
|
||||
swtrmtFcltCd: string;
|
||||
swtrmtFcltNm: string;
|
||||
digstnEnYn: string;
|
||||
digstnCpct: number;
|
||||
actlDrvnCpct: number;
|
||||
digstnGasInputQnt: number;
|
||||
digstnGasInputSldDnst: number;
|
||||
digstnTnkOprtngDayCnt: number;
|
||||
ocrnGasQnt: number;
|
||||
digstnGasUtztnWholPrst: number;
|
||||
digstnGasUtztnNtslQnt: number;
|
||||
digstnGasUtztnEtgtQnt: number;
|
||||
digstnGasUtztnItslfQnt: number;
|
||||
digstnGasUtztnEtcQnt: number;
|
||||
surplsGasQnt: number;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaSlurgeVerificationResult;
|
||||
}
|
||||
|
||||
export interface DigestorOperatingStatusResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaSlurgeCommonInfo;
|
||||
digestorOperatingStatusList: DigestorOperatingStatusItem[];
|
||||
}
|
||||
|
||||
export type DigestorOperatingStatusApiResponse =
|
||||
ApiResponse<DigestorOperatingStatusResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* ST00110002 저장 — `saveList` 항목.
|
||||
* `sggNm`·계산필드·검증결과는 저장 요청에서 제외.
|
||||
*/
|
||||
export type DigestorOperatingStatusSaveItem = Omit<
|
||||
DigestorOperatingStatusItem,
|
||||
"sggNm" | "verificationResult" | "digstnGasUtztnWholPrst"
|
||||
>;
|
||||
|
||||
/** ST00110002 저장 API 요청 */
|
||||
export interface DigestorOperatingStatusSaveRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
saveList: DigestorOperatingStatusSaveItem[];
|
||||
deleteList?: DigestorOperatingStatusSaveItem[];
|
||||
}
|
||||
|
||||
export type DigestorOperatingStatusSaveResponse = ApiResponse<unknown> & {
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export type DigestorOperatingStatusSubmitItem = DigestorOperatingStatusSaveItem;
|
||||
|
||||
/** ST00110002 제출 API 요청 */
|
||||
export interface DigestorOperatingStatusSubmitRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
laePicNm: string;
|
||||
laePicTelNo: string;
|
||||
laeKbrdrDeptNm: string;
|
||||
laeKbrdrJbgdNm: string;
|
||||
laeIdfrNm: string;
|
||||
laeIdfrTelNo: string;
|
||||
laeIdfrDeptNm: string;
|
||||
laeIdfrJbgdNm: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
submitList: DigestorOperatingStatusSubmitItem[];
|
||||
}
|
||||
|
||||
export interface DigestorOperatingStatusSubmitResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
data?: {
|
||||
finalStatus: string;
|
||||
nvpassed: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* ST00110003 조회 `data.sewageSlurgeProcessingFacStatusList[]` 한 행.
|
||||
* `SewageSlurgeProcessingFacStatusInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface SewageSlurgeProcessingFacStatusItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
fcltSn: string;
|
||||
fcltNm: string;
|
||||
prcsMthExpln: string;
|
||||
fcltCpct: number;
|
||||
anlPrcsQnt: number;
|
||||
dayAvgOprtngHr: number;
|
||||
anlOprtngDayCnt: number;
|
||||
oprtngRt: number;
|
||||
rmrk: string | null;
|
||||
fcltPstnCn: string;
|
||||
verificationResult?: SewageExcretaSlurgeVerificationResult;
|
||||
}
|
||||
|
||||
export interface SewageSlurgeProcessingFacStatusResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaSlurgeCommonInfo;
|
||||
sewageSlurgeProcessingFacStatusList: SewageSlurgeProcessingFacStatusItem[];
|
||||
}
|
||||
|
||||
export type SewageSlurgeProcessingFacStatusApiResponse =
|
||||
ApiResponse<SewageSlurgeProcessingFacStatusResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* ST00110003 저장 — `saveList` / `deleteList` 항목.
|
||||
* `sggNm`·계산필드·검증결과·`fcltPstnCn`은 저장 요청에서 제외.
|
||||
*/
|
||||
export type SewageSlurgeProcessingFacStatusSaveItem = Omit<
|
||||
SewageSlurgeProcessingFacStatusItem,
|
||||
"sggNm" | "verificationResult" | "oprtngRt" | "fcltPstnCn"
|
||||
>;
|
||||
|
||||
/** ST00110003 저장 API 요청 */
|
||||
export interface SewageSlurgeProcessingFacStatusSaveRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
saveList: SewageSlurgeProcessingFacStatusSaveItem[];
|
||||
deleteList: SewageSlurgeProcessingFacStatusSaveItem[];
|
||||
}
|
||||
|
||||
export type SewageSlurgeProcessingFacStatusSaveResponse = ApiResponse<unknown> & {
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export type SewageSlurgeProcessingFacStatusSubmitItem =
|
||||
SewageSlurgeProcessingFacStatusSaveItem;
|
||||
|
||||
/** ST00110003 제출 API 요청 */
|
||||
export interface SewageSlurgeProcessingFacStatusSubmitRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
laePicNm: string;
|
||||
laePicTelNo: string;
|
||||
laeKbrdrDeptNm: string;
|
||||
laeKbrdrJbgdNm: string;
|
||||
laeIdfrNm: string;
|
||||
laeIdfrTelNo: string;
|
||||
laeIdfrDeptNm: string;
|
||||
laeIdfrJbgdNm: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
submitList: SewageSlurgeProcessingFacStatusSubmitItem[];
|
||||
deleteList: SewageSlurgeProcessingFacStatusSubmitItem[];
|
||||
}
|
||||
|
||||
export interface SewageSlurgeProcessingFacStatusSubmitResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
data?: {
|
||||
finalStatus: string;
|
||||
nvpassed: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* ST00110004 조회 `data.excretaSlurgeProcessingStatusList[]` 한 행.
|
||||
* `ExcretaSlurgeProcessingStatusInpColumn` fieldName과 동일 (`ctpvNm` 그리드 값은 `commonInfo.ctpvNm` 시도명).
|
||||
*/
|
||||
export interface ExcretaSlurgeProcessingStatusItem {
|
||||
admdstCd: string;
|
||||
sggNm: string;
|
||||
admdstNm: string;
|
||||
fcltSn: string;
|
||||
fcltNm: string;
|
||||
fcltPstnCn: string;
|
||||
gnam: number;
|
||||
wholDspsQnt: number;
|
||||
rcycQnt: number;
|
||||
olandLfvlm: number;
|
||||
incnrQnt: number;
|
||||
oceanInputQnt: number;
|
||||
fuelQnt: number;
|
||||
etcQnt: number;
|
||||
nondspsQnt: number;
|
||||
swtrmtFcltNm: string;
|
||||
rmrk: string | null;
|
||||
verificationResult?: SewageExcretaSlurgeVerificationResult;
|
||||
}
|
||||
|
||||
export interface ExcretaSlurgeProcessingStatusResponseData {
|
||||
statusInfo: SewerageStatusInfo;
|
||||
commonInfo: SewageExcretaSlurgeCommonInfo;
|
||||
excretaSlurgeProcessingStatusList: ExcretaSlurgeProcessingStatusItem[];
|
||||
}
|
||||
|
||||
export type ExcretaSlurgeProcessingStatusApiResponse =
|
||||
ApiResponse<ExcretaSlurgeProcessingStatusResponseData> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* ST00110004 저장 — `saveList` 항목.
|
||||
* `sggNm`·계산필드(`gnam`, `wholDspsQnt`)·검증결과는 저장 요청에서 제외.
|
||||
*/
|
||||
export type ExcretaSlurgeProcessingStatusSaveItem = Omit<
|
||||
ExcretaSlurgeProcessingStatusItem,
|
||||
"sggNm" | "verificationResult" | "gnam" | "wholDspsQnt"
|
||||
>;
|
||||
|
||||
/** ST00110004 저장 API 요청 */
|
||||
export interface ExcretaSlurgeProcessingStatusSaveRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
saveList: ExcretaSlurgeProcessingStatusSaveItem[];
|
||||
}
|
||||
|
||||
export type ExcretaSlurgeProcessingStatusSaveResponse = ApiResponse<unknown> & {
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export type ExcretaSlurgeProcessingStatusSubmitItem = ExcretaSlurgeProcessingStatusSaveItem;
|
||||
|
||||
/** ST00110004 제출 API 요청 */
|
||||
export interface ExcretaSlurgeProcessingStatusSubmitRequest {
|
||||
statsYr: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
sewerBzmnCd: string;
|
||||
userId: string;
|
||||
laePicNm: string;
|
||||
laePicTelNo: string;
|
||||
laeKbrdrDeptNm: string;
|
||||
laeKbrdrJbgdNm: string;
|
||||
laeIdfrNm: string;
|
||||
laeIdfrTelNo: string;
|
||||
laeIdfrDeptNm: string;
|
||||
laeIdfrJbgdNm: string;
|
||||
superAdmin?: string;
|
||||
noApplicable?: boolean;
|
||||
submitList: ExcretaSlurgeProcessingStatusSubmitItem[];
|
||||
}
|
||||
|
||||
export interface ExcretaSlurgeProcessingStatusSubmitResponse {
|
||||
status: string;
|
||||
message?: string;
|
||||
data?: {
|
||||
finalStatus: string;
|
||||
nvpassed: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/** `public-sewage-facilities` 조회 요청 */
|
||||
export interface PublicSewageFacilitiesListRequest {
|
||||
statsYr: string;
|
||||
sewerBzmnCd: string;
|
||||
ctpvNm: string;
|
||||
sggNm: string;
|
||||
}
|
||||
|
||||
/** `public-sewage-facilities` 조회 `data[]` 한 행 */
|
||||
export interface PublicSewageFacilityItem {
|
||||
admdstCd: string;
|
||||
admdstNm: string;
|
||||
swtrmtFcltCd: string;
|
||||
swtrmtFcltNm: string;
|
||||
fcltSn: string;
|
||||
}
|
||||
|
||||
export type PublicSewageFacilitiesListApiResponse = ApiResponse<PublicSewageFacilityItem[]> & {
|
||||
message: string;
|
||||
};
|
||||
|
||||
export interface StatisticsInputSewageExcretaSlurgeService {
|
||||
/** 찌꺼기(슬러지)처리시설현황 조회 — ST00110001 */
|
||||
getSlurgeProcessingFacStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<SlurgeProcessingFacStatusApiResponse>;
|
||||
/** 찌꺼기(슬러지)처리시설현황 저장 — ST00110001 */
|
||||
saveSlurgeProcessingFacStatus(
|
||||
request: SlurgeProcessingFacStatusSaveRequest,
|
||||
): Promise<SlurgeProcessingFacStatusSaveResponse>;
|
||||
/** 찌꺼기(슬러지)처리시설현황 제출 — ST00110001 */
|
||||
submitSlurgeProcessingFacStatus(
|
||||
request: SlurgeProcessingFacStatusSubmitRequest,
|
||||
): Promise<SlurgeProcessingFacStatusSubmitResponse>;
|
||||
/** 소화조 운영현황 조회 — ST00110002 */
|
||||
getDigestorOperatingStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<DigestorOperatingStatusApiResponse>;
|
||||
/** 소화조 운영현황 저장 — ST00110002 */
|
||||
saveDigestorOperatingStatus(
|
||||
request: DigestorOperatingStatusSaveRequest,
|
||||
): Promise<DigestorOperatingStatusSaveResponse>;
|
||||
/** 소화조 운영현황 제출 — ST00110002 */
|
||||
submitDigestorOperatingStatus(
|
||||
request: DigestorOperatingStatusSubmitRequest,
|
||||
): Promise<DigestorOperatingStatusSubmitResponse>;
|
||||
/** 하수찌꺼기 처리시설 운영현황 조회 — ST00110003 */
|
||||
getSewageSlurgeProcessingFacStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<SewageSlurgeProcessingFacStatusApiResponse>;
|
||||
/** 하수찌꺼기 처리시설 운영현황 저장 — ST00110003 */
|
||||
saveSewageSlurgeProcessingFacStatus(
|
||||
request: SewageSlurgeProcessingFacStatusSaveRequest,
|
||||
): Promise<SewageSlurgeProcessingFacStatusSaveResponse>;
|
||||
/** 하수찌꺼기 처리시설 운영현황 제출 — ST00110003 */
|
||||
submitSewageSlurgeProcessingFacStatus(
|
||||
request: SewageSlurgeProcessingFacStatusSubmitRequest,
|
||||
): Promise<SewageSlurgeProcessingFacStatusSubmitResponse>;
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 조회 — ST00110004 */
|
||||
getExcretaSlurgeProcessingStatusList(
|
||||
params: SewageExcretaSlurgeRequestParams,
|
||||
): Promise<ExcretaSlurgeProcessingStatusApiResponse>;
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 저장 — ST00110004 */
|
||||
saveExcretaSlurgeProcessingStatus(
|
||||
request: ExcretaSlurgeProcessingStatusSaveRequest,
|
||||
): Promise<ExcretaSlurgeProcessingStatusSaveResponse>;
|
||||
/** 분뇨찌꺼기(슬러지)처리현황 제출 — ST00110004 */
|
||||
submitExcretaSlurgeProcessingStatus(
|
||||
request: ExcretaSlurgeProcessingStatusSubmitRequest,
|
||||
): Promise<ExcretaSlurgeProcessingStatusSubmitResponse>;
|
||||
/** 공공하수처리시설 목록 조회 */
|
||||
getPublicSewageFacilitiesList(
|
||||
params: PublicSewageFacilitiesListRequest,
|
||||
): Promise<PublicSewageFacilitiesListApiResponse>;
|
||||
}
|
||||
Reference in New Issue
Block a user