+ {/* 상단 타이틀 + 유사기준 */}
+
+
+ 물 재이용 사업 유사 사례
- {/* 리스트 영역 */}
-
- {!showList ? (
-
- ) : !hasRows ? (
-
- ) : (
-
- )}
+
+ 유사기준
+
+
- {/* 상세정보 */}
-
-
- 상세정보
+ {/* 리스트 영역 */}
+
+ {!showList ? (
+
-
- {/* 1) 보증수질 */}
-
+ ) : !hasRows ? (
+
+ ) : (
+ // 여기만 스크롤: rows가 4개/더 많아져서 높이를 넘으면 자동 스크롤 생성
+
+ )}
+
- {/* 2) 사업비 */}
-
-
-
-
- |
- 소요사업비(백만원)
- |
-
- 재원조달계획(백만원)
- |
-
- 사업비 정산(백만원)
- |
-
+
-
- {/* 소요사업비 */}
- | 총 |
- 토목 |
- 건축 |
- 기계 |
- 전기 ·계측 |
- GIS DB |
- CCTV |
- 시공 및 준공 |
- 폐기물 |
- 설계비 |
- 감리비 |
- 시설부대 |
- 기타 |
+ {/* 상세정보 */}
+
+
상세정보
- {/* 재원조달 */}
-
총 |
-
국비 |
-
지방비 |
-
원인자부담 |
-
국고비율 |
+ {/* 1) 보증수질 */}
+
+
+
+
+ |
+ 보증수질
+ |
+
+
+
+ 총대장균군수 (개/100ml)
+ |
+
+ 용도별 결합 잔류염소 (mg/L)
+ |
+
+ 탁도 (NTU)
+ |
+
+
+
+ 생물학적 산소요구량(BOD)(mg/L)
+ |
+ 냄새 |
+ 색도(도) |
+ 총질소 (T-N)(mg/L) |
+ 총인 (T-P)(mg/L) |
+ 수소이온 농도(pH) |
+ 염화물 (mgCL/L) |
+ 전기전도도 (μs/cm) |
+ 비고 |
+
+
- {/* 정산 */}
- 총 |
- 국비 |
- 지방비 |
- 원인자부담 |
- 국고비율 |
-
+
+
+ | {selectedDetail?.coliform ?? "-"} |
+ {selectedDetail?.residualCl ?? "-"} |
+ {selectedDetail?.turbidity ?? "-"} |
-
- 재이용 시설 |
- 관로 |
-
-
+ {selectedDetail?.bod ?? "-"} |
+ {selectedDetail?.odor ?? "-"} |
+ {selectedDetail?.color ?? "-"} |
+ {selectedDetail?.tn ?? "-"} |
+ {selectedDetail?.tp ?? "-"} |
+ {selectedDetail?.ph ?? "-"} |
+ {selectedDetail?.chloride ?? "-"} |
+ {selectedDetail?.ec ?? "-"} |
-
-
- {/* 소요사업비 */}
- |
- {selectedDetail?.costTotal != null
- ? formatNumber(selectedDetail.costTotal)
- : "-"}
- |
-
- {selectedDetail?.costFacility != null
- ? formatNumber(selectedDetail.costFacility)
- : "-"}
- |
-
- {selectedDetail?.costPipe != null
- ? formatNumber(selectedDetail.costPipe)
- : "-"}
- |
- - |
- - |
- - |
- - |
- - |
- - |
- - |
-
- {selectedDetail?.costDesign != null
- ? formatNumber(selectedDetail.costDesign)
- : "-"}
- |
-
- {selectedDetail?.costSupervision != null
- ? formatNumber(selectedDetail.costSupervision)
- : "-"}
- |
- - |
-
- {selectedDetail?.costOther != null
- ? formatNumber(selectedDetail.costOther)
- : "-"}
- |
-
- {/* 재원조달 */}
-
- {selectedDetail?.fundingTotal != null
- ? formatNumber(selectedDetail.fundingTotal)
- : "-"}
- |
-
- {selectedDetail?.fundingNational != null
- ? formatNumber(selectedDetail.fundingNational)
- : "-"}
- |
-
- {selectedDetail?.fundingLocal != null
- ? formatNumber(selectedDetail.fundingLocal)
- : "-"}
- |
-
- {selectedDetail?.fundingSelf != null
- ? formatNumber(selectedDetail.fundingSelf)
- : "-"}
- |
-
- {typeof selectedDetail?.fundingRate === "number"
- ? `${selectedDetail.fundingRate}%`
- : "-"}
- |
-
- {/* 정산(필드 없으면 동일 값 표시) */}
-
- {selectedDetail?.fundingTotal != null
- ? formatNumber(selectedDetail.fundingTotal)
- : "-"}
- |
-
- {selectedDetail?.fundingNational != null
- ? formatNumber(selectedDetail.fundingNational)
- : "-"}
- |
-
- {selectedDetail?.fundingLocal != null
- ? formatNumber(selectedDetail.fundingLocal)
- : "-"}
- |
-
- {selectedDetail?.fundingSelf != null
- ? formatNumber(selectedDetail.fundingSelf)
- : "-"}
- |
-
- {typeof selectedDetail?.fundingRate === "number"
- ? `${selectedDetail.fundingRate}%`
- : "-"}
- |
-
-
-
-
-
- {!selectedCaseId && showList ? (
-
- 리스트에서 사업을 선택하면 상세정보가 표시됩니다.
-
- ) : null}
+
{selectedDetail?.note ?? "-"} |
+
+
+
+
+ {/* 2) 사업비 */}
+
+
+
+
+ |
+ 소요사업비(백만원)
+ |
+
+ 재원조달계획(백만원)
+ |
+
+ 사업비 정산(백만원)
+ |
+
+
+
+ {/* 소요사업비 */}
+ | 총 |
+ 토목 |
+ 건축 |
+ 기계 |
+ 전기 ·계측 |
+ GIS DB |
+ CCTV |
+ 시공 및 준공 |
+ 폐기물 |
+ 설계비 |
+ 감리비 |
+ 시설부대 |
+ 기타 |
+
+ {/* 재원조달 */}
+ 총 |
+ 국비 |
+ 지방비 |
+ 원인자부담 |
+ 국고비율 |
+
+ {/* 정산 */}
+ 총 |
+ 국비 |
+ 지방비 |
+ 원인자부담 |
+ 국고비율 |
+
+
+
+ 재이용 시설 |
+ 관로 |
+
+
+
+
+
+ {/* 소요사업비 */}
+ |
+ {selectedDetail?.costTotal != null ? formatNumber(selectedDetail.costTotal) : "-"}
+ |
+
+ {selectedDetail?.costFacility != null ? formatNumber(selectedDetail.costFacility) : "-"}
+ |
+
+ {selectedDetail?.costPipe != null ? formatNumber(selectedDetail.costPipe) : "-"}
+ |
+ - |
+ - |
+ - |
+ - |
+ - |
+ - |
+ - |
+
+ {selectedDetail?.costDesign != null ? formatNumber(selectedDetail.costDesign) : "-"}
+ |
+
+ {selectedDetail?.costSupervision != null ? formatNumber(selectedDetail.costSupervision) : "-"}
+ |
+ - |
+
+ {selectedDetail?.costOther != null ? formatNumber(selectedDetail.costOther) : "-"}
+ |
+
+ {/* 재원조달 */}
+
+ {selectedDetail?.fundingTotal != null ? formatNumber(selectedDetail.fundingTotal) : "-"}
+ |
+
+ {selectedDetail?.fundingNational != null ? formatNumber(selectedDetail.fundingNational) : "-"}
+ |
+
+ {selectedDetail?.fundingLocal != null ? formatNumber(selectedDetail.fundingLocal) : "-"}
+ |
+
+ {selectedDetail?.fundingSelf != null ? formatNumber(selectedDetail.fundingSelf) : "-"}
+ |
+
+ {typeof selectedDetail?.fundingRate === "number" ? `${selectedDetail.fundingRate}%` : "-"}
+ |
+
+ {/* 정산(필드 없으면 동일 값 표시) */}
+
+ {selectedDetail?.fundingTotal != null ? formatNumber(selectedDetail.fundingTotal) : "-"}
+ |
+
+ {selectedDetail?.fundingNational != null ? formatNumber(selectedDetail.fundingNational) : "-"}
+ |
+
+ {selectedDetail?.fundingLocal != null ? formatNumber(selectedDetail.fundingLocal) : "-"}
+ |
+
+ {selectedDetail?.fundingSelf != null ? formatNumber(selectedDetail.fundingSelf) : "-"}
+ |
+
+ {typeof selectedDetail?.fundingRate === "number" ? `${selectedDetail.fundingRate}%` : "-"}
+ |
+
+
+
+
+
+ {!selectedCaseId && showList ? (
+
+ 리스트에서 사업을 선택하면 상세정보가 표시됩니다.
+
+ ) : null}
+
);
return createPortal(ui, document.body);
diff --git a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
index 0a6cac34a..4a57089fa 100644
--- a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
+++ b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
@@ -187,71 +187,124 @@ export default function DemandRegisterPage() {
// 샘플 데이터
const similarRows: SimilarCaseRow[] = [
- {
- caseId: "A",
- projectName: "OO시 물 재이용(빗물, 중수도)\n시설 설치사업",
- period: "2020.01.\n~2025.05.",
- supplyFacilityType: "중수도",
- supplyName: "OO에코복지타운",
- supplyCapacity: 50,
- demandName: "OO에코복지타운",
- demandAddress: "OO시 수성로 192",
- facilityCapacity: 50,
- pipeKm: 0,
- purpose: "청소, 화장실,\n조경",
- supplyAmt: 50,
- treatment: "MBLM",
- usePurpose: "청소,화장실",
- },
- {
- caseId: "A",
- projectName: "OO시 물 재이용(빗물, 중수도)\n시설 설치사업",
- period: "2020.01.\n~2025.05.",
- supplyFacilityType: "중수도",
- supplyName: "OO스포츠센터",
- supplyCapacity: 50,
- demandName: "OO스포츠센터",
- demandAddress: "OO시 경기둥로 33",
- facilityCapacity: 50,
- pipeKm: 0,
- purpose: "청소, 화장실,\n조경",
- supplyAmt: 50,
- treatment: "MBLM",
- usePurpose: "청소,화장실",
- },
- {
- caseId: "B",
- projectName: "OO 염성저수지 하수처리수\n재이용사업",
- period: "2019.12\n~2026.1",
- supplyFacilityType: "하수",
- supplyName: "OO 3.4단계 공공하수처리시설",
- supplyCapacity: 70000,
- demandName: "OO천",
- demandAddress: "-",
- facilityCapacity: 0,
- pipeKm: 3,
- purpose: "하천 등\n유지용수",
- supplyAmt: 2300,
- treatment: "탈황,총인,\n생물여과,소독",
- usePurpose: "하천 등\n유지용수",
- },
- {
- caseId: "B",
- projectName: "OO 염성저수지 하수처리수\n재이용사업",
- period: "2019.12\n~2026.1",
- supplyFacilityType: "하수",
- supplyName: "OO 3.4단계 공공하수처리시설",
- supplyCapacity: 70000,
- demandName: "OO저수지",
- demandAddress: "-",
- facilityCapacity: 0,
- pipeKm: 5,
- purpose: "하천 등\n유지용수",
- supplyAmt: 7700,
- treatment: "탈황,총인,\n생물여과,소독",
- usePurpose: "하천 등\n유지용수",
- },
- ];
+ // ---------------- A (2행) ----------------
+ {
+ caseId: "A",
+ projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
+ period: "2020.01.~2025.05.",
+ supplyFacilityType: "중수도",
+ supplyName: "OO폐수재이용",
+ supplyCapacity: 50,
+
+ demandName: "OO시체육센터",
+ demandAddress: "OO시 수성로 192",
+
+ facilityCapacity: 50,
+ pipeKm: 3,
+ purpose: "조경",
+ supplyAmt: 50,
+ treatment: "MBLM",
+ usePurpose: "청소, 화장실",
+ },
+ // A의 공급처 row 추가(=표 1행 추가) → 나머지 컬럼도 같이 채움
+ {
+ caseId: "A",
+ projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
+ period: "2020.01.~2025.05.",
+ supplyFacilityType: "중수도",
+ supplyName: "OO스포츠센터",
+ supplyCapacity: 30,
+
+ demandName: "OO시체육센터",
+ demandAddress: "OO시 수성로 192",
+
+ facilityCapacity: 50,
+ pipeKm: 3,
+ purpose: "조경",
+ supplyAmt: 50,
+ treatment: "MBLM",
+ usePurpose: "청소, 화장실",
+ },
+
+ // ---------------- B (2행) ----------------
+ {
+ caseId: "B",
+ projectName: "OO 염성저수지 하수처리수 재이용사업",
+ period: "2019.12~2026.1",
+ supplyFacilityType: "하수",
+ supplyName: "OO3.4단계 공공하수처리시설",
+ supplyCapacity: 70000,
+
+ demandName: "OO천",
+ demandAddress: "-",
+
+ facilityCapacity: 0,
+ pipeKm: 3,
+ purpose: "하천 등 유지용수",
+ supplyAmt: 2300,
+ treatment: "탈황, 총인, 생물산화, 소독",
+ usePurpose: "하천 등 유지용수",
+ },
+ // B의 공급처 row 추가(=표 1행 추가)
+ {
+ caseId: "B",
+ projectName: "OO 염성저수지 하수처리수 재이용사업",
+ period: "2019.12~2026.1",
+ supplyFacilityType: "하수",
+ supplyName: "OO3.4단계 공공하수처리시설(2라인)",
+ supplyCapacity: 70000,
+
+ demandName: "OO저수지",
+ demandAddress: "-",
+
+ facilityCapacity: 0,
+ pipeKm: 5,
+ purpose: "하천 등 유지용수",
+ supplyAmt: 7700,
+ treatment: "탈황, 총인, 생물산화, 소독",
+ usePurpose: "하천 등 유지용수",
+ },
+
+ // ---------------- C (1행) ----------------
+ {
+ caseId: "C",
+ projectName: "OO 산업단지 공업용수 재이용사업",
+ period: "2021.03~2024.12",
+ supplyFacilityType: "하수",
+ supplyName: "OO공공하수처리장",
+ supplyCapacity: 15000,
+
+ demandName: "OO산업단지",
+ demandAddress: "OO시 산업로 25",
+
+ facilityCapacity: 5000,
+ pipeKm: 4,
+ purpose: "공업용수",
+ supplyAmt: 5000,
+ treatment: "UF + RO",
+ usePurpose: "공업용수",
+ },
+
+ // ---------------- D (1행) ----------------
+ {
+ caseId: "D",
+ projectName: "OO 공원 조경용수 재이용사업",
+ period: "2018.05~2022.11",
+ supplyFacilityType: "중수도",
+ supplyName: "OO정수장",
+ supplyCapacity: 8000,
+
+ demandName: "OO중앙공원",
+ demandAddress: "OO시 공원로 88",
+
+ facilityCapacity: 1200,
+ pipeKm: 2,
+ purpose: "조경용수",
+ supplyAmt: 1200,
+ treatment: "모래여과",
+ usePurpose: "조경",
+ },
+];
const similarDetailsByCaseId: Record
= {
A: {
@@ -304,6 +357,56 @@ export default function DemandRegisterPage() {
fundingSelf: 0,
fundingRate: 0,
},
+ C: {
+ coliform: "불검출",
+ residualCl: "0.2이상",
+ turbidity: "1.5이하",
+ bod: "4.0이하",
+ odor: "불쾌하지않을것",
+ color: "10이하",
+ tn: "-",
+ tp: "-",
+ ph: "5.8~8.5",
+ chloride: "-",
+ ec: "-",
+ note: "-",
+ costTotal: 4305,
+ costFacility: 3518,
+ costPipe: 0,
+ costDesign: 350,
+ costSupervision: 417,
+ costOther: 12,
+ fundingTotal: 4305,
+ fundingNational: 3104,
+ fundingLocal: 1291,
+ fundingSelf: 0,
+ fundingRate: 70.0,
+ },
+ D: {
+ coliform: "-",
+ residualCl: "-",
+ turbidity: "-",
+ bod: "-",
+ odor: "-",
+ color: "-",
+ tn: "-",
+ tp: "-",
+ ph: "-",
+ chloride: "-",
+ ec: "-",
+ note: "-",
+ costTotal: 0,
+ costFacility: 0,
+ costPipe: 0,
+ costDesign: 0,
+ costSupervision: 0,
+ costOther: 0,
+ fundingTotal: 0,
+ fundingNational: 0,
+ fundingLocal: 0,
+ fundingSelf: 0,
+ fundingRate: 0,
+ },
};
return (
@@ -528,8 +631,8 @@ export default function DemandRegisterPage() {
setOpenSimilar(false)}
- rows={rows}
- detailsByCaseId={detailsByCaseId}
+ rows={similarRows}
+ detailsByCaseId={similarDetailsByCaseId}
/>
>
);
From ec147734095c497f74e399c20db55f32ff8e24bd Mon Sep 17 00:00:00 2001
From: ljpark
Date: Fri, 6 Mar 2026 15:31:54 +0900
Subject: [PATCH 11/19] =?UTF-8?q?dm=5Fnew:=20env=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/dm_new/.env.local | 6 +++---
apps/dm_new/.env.mindone | 20 +++++++++++---------
apps/dm_new/.env.production | 10 +++++-----
3 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/apps/dm_new/.env.local b/apps/dm_new/.env.local
index 62c4be2cc..58001643c 100644
--- a/apps/dm_new/.env.local
+++ b/apps/dm_new/.env.local
@@ -1,12 +1,13 @@
NEXT_PUBLIC_SITE_ID = DN
+NEXT_PUBLIC_PORT = 3015
NEXT_PUBLIC_CLAIM_NAME = Authorization
NEXT_PUBLIC_AUTH_USER_ID = token-id
NEXT_PUBLIC_ACCESS_TOKEN = access-token
NEXT_PUBLIC_REFRESH_TOKEN = refresh-token
-NEXT_PUBLIC_PORT = 3005
NEXT_PUBLIC_PROXY_HOST = http://localhost:3005
-NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000
+NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login
NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000
+NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000
NEXT_PUBLIC_DM_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1
# NEXT_PUBLIC_FO_SERVER_API_URL = http://192.168.1.222:8883/operation-service/api/v1
NEXT_PUBLIC_FO_SERVER_API_URL = http://con.mind-one.co.kr:11083/operation-service/api/v1
@@ -19,7 +20,6 @@ NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&ver
NEXT_PUBLIC_GATEWAY_URL=http://con.mind-one.co.kr:11083 # 개발 서버 API
#NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.128:8883/sewerage-service/api # 최용성
#NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.66:8883/sewerage-service/api # 박이정
-NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login
NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do
diff --git a/apps/dm_new/.env.mindone b/apps/dm_new/.env.mindone
index da6f80177..9a5005d2b 100644
--- a/apps/dm_new/.env.mindone
+++ b/apps/dm_new/.env.mindone
@@ -1,23 +1,25 @@
-NEXT_PUBLIC_SITE_ID = DM
-NEXT_PUBLIC_PORT = 11035
-NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11035
-NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000
-NEXT_PUBLIC_DM_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1
-NEXT_PUBLIC_FO_SERVER_API_URL = http://con.mind-one.co.kr:11083/operation-service/api/v1
-NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000
-NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload
+NEXT_PUBLIC_SITE_ID = DN
+NEXT_PUBLIC_PORT = 11315
NEXT_PUBLIC_CLAIM_NAME = Authorization
NEXT_PUBLIC_AUTH_USER_ID = token-id
NEXT_PUBLIC_ACCESS_TOKEN = access-token
NEXT_PUBLIC_REFRESH_TOKEN = refresh-token
+NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11315
+NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login
+NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000
+NEXT_PUBLIC_CS_SERVER_API_URL = http://dev.onasys.co.kr:8000
+NEXT_PUBLIC_DM_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1
+NEXT_PUBLIC_FO_SERVER_API_URL = http://con.mind-one.co.kr:11083/operation-service/api/v1
NEXT_PUBLIC_WR_SERVER_API_URL = http://con.mind-one.co.kr:11083/reuse-service/api/v1
+#NEXT_PUBLIC_GEOSERVER_URL = http://rsone.iptime.org:10010/geoserver
+#NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver
+NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload
NEXT_PUBLIC_NGII_URL = https://map.ngii.go.kr
NEXT_PUBLIC_NGII_PARAM = 04trYP9_xwLAfALjwZ-B8g&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={x}&tilerow={y}
NEXT_PUBLIC_SEWERAGE_API_URL=http://con.mind-one.co.kr:11083/sewerage-service # 개발 서버 API
NEXT_PUBLIC_GATEWAY_URL=http://con.mind-one.co.kr:11083 # 개발 서버 API
# NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.128:8883/sewerage-service/api # 최용성
#NEXT_PUBLIC_SEWERAGE_API_URL=http://192.168.1.66:8883/sewerage-service/api # 박이정
-NEXT_PUBLIC_CM_LOGIN_PAGE_URL = http://dev.onasys.co.kr:3000/auth/login
NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do
diff --git a/apps/dm_new/.env.production b/apps/dm_new/.env.production
index 5a401c89a..b413d1312 100644
--- a/apps/dm_new/.env.production
+++ b/apps/dm_new/.env.production
@@ -1,5 +1,5 @@
# 공단 운영
-NEXT_PUBLIC_SITE_ID = DM
+NEXT_PUBLIC_SITE_ID = DN
NEXT_PUBLIC_PORT = 3000
NEXT_PUBLIC_CLAIM_NAME = Authorization
NEXT_PUBLIC_AUTH_USER_ID = token-id
@@ -8,16 +8,16 @@ NEXT_PUBLIC_REFRESH_TOKEN = refresh-token
#NEXT_PUBLIC_PROXY_HOST = https://devreuse.hasuon.or.kr
#NEXT_PUBLIC_CM_LOGIN_PAGE_URL = https://devqueen.hasuon.or.kr/auth/login
NEXT_PUBLIC_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000
-NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1
NEXT_PUBLIC_CS_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000
-NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload
+NEXT_PUBLIC_FO_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/operation-service/api/v1
+NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1
NEXT_PUBLIC_GEOSERVER_URL = http://172.29.143.87:8080/geoserver
NEXT_PUBLIC_LX_GEOSERVER_URL = http://172.29.143.87:8080/geoserver_swl
-NEXT_PUBLIC_WR_SERVER_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/reuse-service/api/v1
+NEXT_PUBLIC_CS_TUS_UPLOAD = /attach-service/api/v1/tus/upload
NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:8000/sewerage-service
-NEXT_PUBLIC_GATEWAY_URL = http://apigateway.iipbs-was.svc.cluster.local:8000
NEXT_PUBLIC_NGII_URL = http://172.29.143.87/poiact
NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x}
+NEXT_PUBLIC_GATEWAY_URL = http://apigateway.iipbs-was.svc.cluster.local:8000
NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do
From 3e8f55bee50385a1c3153220e4b668291ff9d0cf Mon Sep 17 00:00:00 2001
From: ljpark
Date: Fri, 6 Mar 2026 16:42:15 +0900
Subject: [PATCH 12/19] =?UTF-8?q?dm=5Fnew:=20build=20=EC=A4=80=EB=B9=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../reuse/apply/modal/SimilarCaseModal.tsx | 13 +-
.../(landing)/reuse/apply/register/page.tsx | 250 +++++++++---------
2 files changed, 132 insertions(+), 131 deletions(-)
diff --git a/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx b/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx
index c363d13ee..f997d88e1 100644
--- a/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx
+++ b/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx
@@ -79,12 +79,6 @@ export default function SimilarCaseModal({
}) {
const titleId = useId();
- // open 타입 방어
- if (typeof open !== "boolean") {
- console.error("SimilarCaseModal: open prop is not boolean:", open);
- return null;
- }
-
const [mounted, setMounted] = useState(false);
const [criterion, setCriterion] = useState("");
const [selectedCaseId, setSelectedCaseId] = useState("");
@@ -130,6 +124,13 @@ export default function SimilarCaseModal({
const selectedDetail = selectedCaseId ? detailsByCaseId[selectedCaseId] : undefined;
+ // open 타입 방어
+ if (typeof open !== "boolean") {
+ console.error("SimilarCaseModal: open prop is not boolean:", open);
+ return null;
+ }
+
+
if (!open || !mounted) return null;
const tdBase =
diff --git a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
index 4a57089fa..2a9bbaf9a 100644
--- a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
+++ b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx
@@ -1,7 +1,7 @@
// apps/dm/app/(landing)/reuse/apply/register/page.tsx (수요정보등록 페이지)
"use client";
-import { useMemo, useState, useRef, useEffect } from "react";
+import { useMemo, useState, useRef } from "react";
import SubPageHeader from "../../_components/SubPageHeader";
import WaterQualityRefModal from "../modal/WaterQualityRefModal";
import CandidateSiteModal, { type CandidateSite } from "../modal/CandidateSiteModal";
@@ -27,136 +27,136 @@ export default function DemandRegisterPage() {
const [openSimilar, setOpenSimilar] = useState(false);
// 유사사례 rows (목업) - API 연동 시 여기만 교체
- const rows: SimilarCaseRow[] = useMemo(
- () => [
- {
- caseId: "C-001",
- projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
- period: "2020.01. ~ 2025.05.",
- supplyFacilityType: "중수도",
- supplyName: "OO새교복지타운",
- supplyCapacity: 0,
- demandName: "OO새교복지타운",
- demandAddress: "OO시 수청로 192",
- facilityCapacity: 50,
- pipeKm: 0,
- purpose: "청소, 화장실, 조경",
- supplyAmt: 50,
- treatment: "MBLM",
- usePurpose: "청소,화장실",
- },
- {
- caseId: "C-001",
- projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
- period: "2020.01. ~ 2025.05.",
- supplyFacilityType: "중수도",
- supplyName: "OO스포츠센터",
- supplyCapacity: 0,
- demandName: "OO스포츠센터",
- demandAddress: "OO시 경기동로 33",
- facilityCapacity: 50,
- pipeKm: 0,
- purpose: "청소, 화장실, 조경",
- supplyAmt: 50,
- treatment: "MBLM",
- usePurpose: "청소,화장실",
- },
- {
- caseId: "C-002",
- projectName: "OO 엄성저수지 하수처리수 재이용사업",
- period: "2019.12 ~ 2026.01",
- supplyFacilityType: "하수",
- supplyName: "OO 3,4단계 공공하수처리시설",
- supplyCapacity: 70000,
- demandName: "OO천",
- demandAddress: "-",
- facilityCapacity: 0,
- pipeKm: 3,
- purpose: "하천 등 유지용수",
- supplyAmt: 2300,
- treatment: "탈황,총인, 생물산화과,소독",
- usePurpose: "하천 등 유지용수",
- },
- {
- caseId: "C-002",
- projectName: "OO 엄성저수지 하수처리수 재이용사업",
- period: "2019.12 ~ 2026.01",
- supplyFacilityType: "하수",
- supplyName: "OO 3,4단계 공공하수처리시설",
- supplyCapacity: 70000,
- demandName: "OO저수지",
- demandAddress: "-",
- facilityCapacity: 0,
- pipeKm: 5,
- purpose: "하천 등 유지용수",
- supplyAmt: 7700,
- treatment: "탈황,총인, 생물산화과,소독",
- usePurpose: "하천 등 유지용수",
- },
- ],
- []
- );
+ // const rows: SimilarCaseRow[] = useMemo(
+ // () => [
+ // {
+ // caseId: "C-001",
+ // projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
+ // period: "2020.01. ~ 2025.05.",
+ // supplyFacilityType: "중수도",
+ // supplyName: "OO새교복지타운",
+ // supplyCapacity: 0,
+ // demandName: "OO새교복지타운",
+ // demandAddress: "OO시 수청로 192",
+ // facilityCapacity: 50,
+ // pipeKm: 0,
+ // purpose: "청소, 화장실, 조경",
+ // supplyAmt: 50,
+ // treatment: "MBLM",
+ // usePurpose: "청소,화장실",
+ // },
+ // {
+ // caseId: "C-001",
+ // projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업",
+ // period: "2020.01. ~ 2025.05.",
+ // supplyFacilityType: "중수도",
+ // supplyName: "OO스포츠센터",
+ // supplyCapacity: 0,
+ // demandName: "OO스포츠센터",
+ // demandAddress: "OO시 경기동로 33",
+ // facilityCapacity: 50,
+ // pipeKm: 0,
+ // purpose: "청소, 화장실, 조경",
+ // supplyAmt: 50,
+ // treatment: "MBLM",
+ // usePurpose: "청소,화장실",
+ // },
+ // {
+ // caseId: "C-002",
+ // projectName: "OO 엄성저수지 하수처리수 재이용사업",
+ // period: "2019.12 ~ 2026.01",
+ // supplyFacilityType: "하수",
+ // supplyName: "OO 3,4단계 공공하수처리시설",
+ // supplyCapacity: 70000,
+ // demandName: "OO천",
+ // demandAddress: "-",
+ // facilityCapacity: 0,
+ // pipeKm: 3,
+ // purpose: "하천 등 유지용수",
+ // supplyAmt: 2300,
+ // treatment: "탈황,총인, 생물산화과,소독",
+ // usePurpose: "하천 등 유지용수",
+ // },
+ // {
+ // caseId: "C-002",
+ // projectName: "OO 엄성저수지 하수처리수 재이용사업",
+ // period: "2019.12 ~ 2026.01",
+ // supplyFacilityType: "하수",
+ // supplyName: "OO 3,4단계 공공하수처리시설",
+ // supplyCapacity: 70000,
+ // demandName: "OO저수지",
+ // demandAddress: "-",
+ // facilityCapacity: 0,
+ // pipeKm: 5,
+ // purpose: "하천 등 유지용수",
+ // supplyAmt: 7700,
+ // treatment: "탈황,총인, 생물산화과,소독",
+ // usePurpose: "하천 등 유지용수",
+ // },
+ // ],
+ // []
+ // );
// 유사사례 상세(목업) - caseId로 매핑
- const detailsByCaseId: Record = useMemo(
- () => ({
- "C-001": {
- coliform: "불검출",
- residualCl: "0.2이상",
- turbidity: "1.5이하",
- bod: "4.0이하",
- odor: "불쾌하지않을것",
- color: "10이하",
- tn: "-",
- tp: "-",
- ph: "5.8~8.5",
- chloride: "-",
- ec: "-",
- note: "-",
+ // const detailsByCaseId: Record = useMemo(
+ // () => ({
+ // "C-001": {
+ // coliform: "불검출",
+ // residualCl: "0.2이상",
+ // turbidity: "1.5이하",
+ // bod: "4.0이하",
+ // odor: "불쾌하지않을것",
+ // color: "10이하",
+ // tn: "-",
+ // tp: "-",
+ // ph: "5.8~8.5",
+ // chloride: "-",
+ // ec: "-",
+ // note: "-",
- costTotal: 4305,
- costFacility: 3518,
- costPipe: undefined,
- costDesign: 350,
- costSupervision: 417,
- costOther: 12,
+ // costTotal: 4305,
+ // costFacility: 3518,
+ // costPipe: undefined,
+ // costDesign: 350,
+ // costSupervision: 417,
+ // costOther: 12,
- fundingTotal: 4305,
- fundingNational: 3104,
- fundingLocal: 1291,
- fundingSelf: undefined,
- fundingRate: 70.0,
- },
- "C-002": {
- coliform: "불검출",
- residualCl: "0.15이상",
- turbidity: "2.0이하",
- bod: "5.0이하",
- odor: "무",
- color: "10이하",
- tn: "-",
- tp: "-",
- ph: "6.0~8.5",
- chloride: "-",
- ec: "-",
- note: "-",
+ // fundingTotal: 4305,
+ // fundingNational: 3104,
+ // fundingLocal: 1291,
+ // fundingSelf: undefined,
+ // fundingRate: 70.0,
+ // },
+ // "C-002": {
+ // coliform: "불검출",
+ // residualCl: "0.15이상",
+ // turbidity: "2.0이하",
+ // bod: "5.0이하",
+ // odor: "무",
+ // color: "10이하",
+ // tn: "-",
+ // tp: "-",
+ // ph: "6.0~8.5",
+ // chloride: "-",
+ // ec: "-",
+ // note: "-",
- costTotal: 9800,
- costFacility: 2100,
- costPipe: 1800,
- costDesign: 300,
- costSupervision: 280,
- costOther: 1200,
+ // costTotal: 9800,
+ // costFacility: 2100,
+ // costPipe: 1800,
+ // costDesign: 300,
+ // costSupervision: 280,
+ // costOther: 1200,
- fundingTotal: 9800,
- fundingNational: 4900,
- fundingLocal: 3000,
- fundingSelf: 1900,
- fundingRate: 50,
- },
- }),
- []
- );
+ // fundingTotal: 9800,
+ // fundingNational: 4900,
+ // fundingLocal: 3000,
+ // fundingSelf: 1900,
+ // fundingRate: 50,
+ // },
+ // }),
+ // []
+ // );
// 기본정보
const [reqDate, setReqDate] = useState(today);
From bffa8fbc11ab3571d96cecdf10adf2ed1df918d3 Mon Sep 17 00:00:00 2001
From: ljpark
Date: Fri, 6 Mar 2026 16:55:12 +0900
Subject: [PATCH 13/19] =?UTF-8?q?dm=5Fnew:=20package.json=20start=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apps/dm_new/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/dm_new/package.json b/apps/dm_new/package.json
index c2249293f..f318baf0b 100644
--- a/apps/dm_new/package.json
+++ b/apps/dm_new/package.json
@@ -5,7 +5,7 @@
"scripts": {
"dev": "next dev -p 3015",
"build": "next build",
- "start:dm": "next start -p 3015",
+ "start:dm_new": "next start -p 3015",
"lint": "next lint"
},
"dependencies": {
From f09028a7ea34bc96183942dc2e479d172d08c830 Mon Sep 17 00:00:00 2001
From: ljpark
Date: Wed, 11 Mar 2026 15:20:32 +0900
Subject: [PATCH 14/19] dm_new: pnpm install
---
pnpm-lock.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1a7066496..6c04620df 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -51,7 +51,7 @@ importers:
specifier: 2.4.2
version: 2.4.2
- apps/(template):
+ apps/_template:
dependencies:
'@common/assets':
specifier: workspace:*
From 4cde2a56b4decf9b50d79639c98e5343418e8214 Mon Sep 17 00:00:00 2001
From: ljpark
Date: Thu, 12 Mar 2026 17:30:22 +0900
Subject: [PATCH 15/19] =?UTF-8?q?sn:=20=ED=95=98=EC=88=98=EA=B4=80?=
=?UTF-8?q?=EB=A1=9C=20=EC=A0=84=EA=B5=AD=EC=A7=80=EB=8F=84=EB=A1=9C=20?=
=?UTF-8?q?=EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../(map-layout)/map/components/common/table.ts | 14 +++++++-------
apps/sn/app/(map-layout)/map/page.tsx | 3 +++
.../app/(map-layout)/map/waterDepth/waterDepth.tsx | 4 ++--
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/apps/sn/app/(map-layout)/map/components/common/table.ts b/apps/sn/app/(map-layout)/map/components/common/table.ts
index 2aa3d0ac5..4e501fb20 100644
--- a/apps/sn/app/(map-layout)/map/components/common/table.ts
+++ b/apps/sn/app/(map-layout)/map/components/common/table.ts
@@ -493,8 +493,8 @@ export const MsSwageMhlCol = [
{ id: 'wdth_len', title: '가로길이(m)' },
{ id: 'vrtc_len', title: '세로길이(m)' },
// { id: 'ang_dir', title: '표고' },
- { id: 'altd_vl', title: '표고(EL.m)' },
- { id: 'dpthl_vl', title: '심도(m)' },
+ { id: 'altd_vl', title: '지표고(EL.m)' },
+ { id: 'dpthl_vl', title: '맨홀저고(EL.m)' },
// { id: 'inst_mng_no', title: '기관관리번호' }
];
export const MsSwageMhlCol2 = [
@@ -518,8 +518,8 @@ export const MsSwageMhlCol2 = [
{ id: 'wdthLen', title: '가로길이(m)' },
{ id: 'vrtcLen', title: '세로길이(m)' },
// { id: 'angDir', title: '표고' },
- { id: 'altdVl', title: '표고(EL.m)' },
- { id: 'dpthlVl', title: '심도(m)' },
+ { id: 'altdVl', title: '지표고(EL.m)' },
+ { id: 'dpthlVl', title: '맨홀저고(EL.m)' },
// { id: 'instMngNo', title: '기관관리번호' }
];
export const MsSwageMhlExcelCol = {
@@ -531,8 +531,8 @@ export const MsSwageMhlExcelCol = {
'swageMhlDiamVl': '하수맨홀구경(mm)',
'wdthLen': '가로길이(m)',
'vrtcLen': '세로길이(m)',
- 'altdVl': '표고(EL.m)',
- 'dpthlVl': '심도(m)'
+ 'altdVl': '지표고(EL.m)',
+ 'dpthlVl': '맨홀저고(EL.m)'
};
// 하수맨홀 뚜껑재질 코드표
export const MS_SWAGE_MHL_CODES = [
@@ -845,4 +845,4 @@ export const numberFields = [
'mesureIntrvl', 'qltwtrCo', 'rnysnFvlc', 'clarFvlc',
'bizAmt', 'count',
'chmbr_xcnts', 'chmbr_ydnts'
-];
\ No newline at end of file
+];
diff --git a/apps/sn/app/(map-layout)/map/page.tsx b/apps/sn/app/(map-layout)/map/page.tsx
index 90ec5a120..73f8ae8c7 100644
--- a/apps/sn/app/(map-layout)/map/page.tsx
+++ b/apps/sn/app/(map-layout)/map/page.tsx
@@ -171,6 +171,9 @@ const Map = () => {
setIsPlaying={setIsPlaying as any}
targetLayerTypes={WATER_DEPTH_LAYER_TYPES as any}
checkInterval={2500}
+
+ defaultZoom={7.5}
+ defaultLonLat={[127.75, 36]}
/>
>
diff --git a/apps/sn/app/(map-layout)/map/waterDepth/waterDepth.tsx b/apps/sn/app/(map-layout)/map/waterDepth/waterDepth.tsx
index 6a5c3f893..4ea769ff7 100644
--- a/apps/sn/app/(map-layout)/map/waterDepth/waterDepth.tsx
+++ b/apps/sn/app/(map-layout)/map/waterDepth/waterDepth.tsx
@@ -16,8 +16,8 @@ import { Label } from "@common/components/ui/label";
import { useEffect } from "react";
export const WATER_DEPTH_LAYER_TYPES: string[] = [
- 'tb_ms_flood_dngr_map',
- 'tb_ms_sbmrg_dngr_map'
+ 'tb_ms_flood_dngr_map', // 홍수위험지도
+ 'tb_ms_sbmrg_dngr_map' // 침수위험지도
];
interface WaterDepthProps {
From ea490bcdbca391f9d08339fceb3bb50de882dfe3 Mon Sep 17 00:00:00 2001
From: dongsilove