From d7fd5be06874d296aeff598abec31dcfb80b50c1 Mon Sep 17 00:00:00 2001 From: kiminchan Date: Wed, 30 Sep 2026 18:13:31 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A1=9C=EB=B6=84=EC=84=9D=20?= =?UTF-8?q?=EB=B0=8F=20=ED=86=B5=EC=88=98=EC=9C=84=ED=97=98=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=20=EC=A1=B0=ED=9A=8C=EC=A1=B0=EA=B1=B4=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pipeAnalysis/PipeAnalysisPopupPage.tsx | 4 ++-- .../pipeAnalysis/pipeAnalysisUtils.ts | 3 ++- .../waterRisk/WaterRiskPopupPage.tsx | 23 ++++++++++++++----- .../001-qa-SFR-011-002-관로분석-통합검증결과.md | 10 ++++++++ .../002-qa-SFR-011-007-통수위험분석-통합검증결과.md | 9 ++++++++ .../001-fe-SFR-011-002-관로분석-통합구현기록.md | 10 ++++++++ .../001-fe-SFR-011-007-통수위험분석-통합구현기록.md | 9 ++++++++ 7 files changed, 59 insertions(+), 9 deletions(-) diff --git a/apps/sn/app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsx b/apps/sn/app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsx index fcc656ad7..bd67bf2ad 100644 --- a/apps/sn/app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsx +++ b/apps/sn/app/(map-layout)/map/components/pipeAnalysis/PipeAnalysisPopupPage.tsx @@ -397,8 +397,8 @@ export default function PipeAnalysisPopupPage() { })) } > - - {ctpv.map((item) => ( + {/* 시도는 전체 조회 없이 개별 지역만 선택한다. */} + {ctpv.filter((item) => String(item.val).trim() !== "0").map((item) => ( diff --git a/apps/sn/app/(map-layout)/map/components/pipeAnalysis/pipeAnalysisUtils.ts b/apps/sn/app/(map-layout)/map/components/pipeAnalysis/pipeAnalysisUtils.ts index 6e8327d1e..d26e13ecc 100644 --- a/apps/sn/app/(map-layout)/map/components/pipeAnalysis/pipeAnalysisUtils.ts +++ b/apps/sn/app/(map-layout)/map/components/pipeAnalysis/pipeAnalysisUtils.ts @@ -144,7 +144,8 @@ export const PIPE_ANALYSIS_TYPE_OPTIONS: Array<{ export const PIPE_ANALYSIS_SUMMARY_DEFAULT_FILTERS: PipeAnalysisSummaryFilters = { analysisType: "YEAR", - ctpvCd: "0", + // 관로분석 최초 조회·초기화의 기본 시도는 부산광역시다. 계정 지역 제한은 별도 적용한다. + ctpvCd: "26", sggCd: "0", swtrmtZoneNm: "0", scopeRegionCode: "", diff --git a/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx b/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx index 126c6140f..f6c0120ae 100644 --- a/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx +++ b/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx @@ -150,7 +150,7 @@ const formatAnalysisBaseAt = (value?: string | null) => { return `${date.replaceAll("-", ".")} ${time.slice(0, 5)}`.trim(); }; -/** 개발 DB의 과거 시험자료와 운영 최신자료를 함께 찾도록 최근 1년을 기본 조회기간으로 사용한다. */ +/** 현재 위험 조회와 검색 초기화에 사용하는 최근 1년의 기본 조회조건이다. */ const buildDefaultResultFilters = (): ResultFilters => { const endDate = new Date(); const startDate = new Date(endDate); @@ -191,7 +191,12 @@ const buildResultRowKey = (row: WaterRiskResultRow) => /** 실제 통수위험 API를 조회하고 선택 결과를 부모 지도에 전달하는 팝업이다. */ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { - const initialFilters = useMemo(() => buildDefaultResultFilters(), []); + // 팝업 최초 진입에만 지정 기간을 사용하고 초기화는 기본 조회조건을 새로 만든다. + const initialFilters = useMemo(() => ({ + ...buildDefaultResultFilters(), + startDate: "2026-08-15", + endDate: "2026-08-17", + }), []); const [resultMode, setResultMode] = useState("current"); const [draftResultFilters, setDraftResultFilters] = useState(initialFilters); @@ -234,9 +239,13 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { let active = true; setIsLoading(true); setErrorMessage(""); + // 과거 이력의 고정 기본기간이 현재 진행 중인 강우 조회를 제한하지 않게 분리한다. + const dateFilters = resultMode === "current" + ? buildDefaultResultFilters() + : appliedResultFilters; fetchWaterRiskResults({ - startDate: appliedResultFilters.startDate, - endDate: appliedResultFilters.endDate, + startDate: dateFilters.startDate, + endDate: dateFilters.endDate, analysisBaseAt: resultMode === "current" ? currentAnalysisBaseAt : undefined, ctpvCd: @@ -659,8 +668,10 @@ export default function WaterRiskPopupPage(_props: WindowPopupContentProps) { type="button" color="white" onClick={() => { - setDraftResultFilters(initialFilters); - setAppliedResultFilters(initialFilters); + // 초기화 시점의 기본기간·전체 조건으로 첫 페이지를 다시 조회한다. + const defaultFilters = buildDefaultResultFilters(); + setDraftResultFilters(defaultFilters); + setAppliedResultFilters(defaultFilters); setResultCurrentPage(1); setSelectedResultKey(""); }} diff --git a/apps/sn/docs/작업검증/SFR-011-002-관로분석/001-qa-SFR-011-002-관로분석-통합검증결과.md b/apps/sn/docs/작업검증/SFR-011-002-관로분석/001-qa-SFR-011-002-관로분석-통합검증결과.md index d70d513a3..11575355d 100644 --- a/apps/sn/docs/작업검증/SFR-011-002-관로분석/001-qa-SFR-011-002-관로분석-통합검증결과.md +++ b/apps/sn/docs/작업검증/SFR-011-002-관로분석/001-qa-SFR-011-002-관로분석-통합검증결과.md @@ -83,3 +83,13 @@ - SN 전체 TypeScript는 기존 `map/page.tsx:3659`의 `postMessage` 타입 오류 1건만 남았고 이번 공통 보강 코드의 추가 오류는 없다. - ESLint는 설치 상태에서 `eslint-plugin-react-hooks`를 찾지 못해 실행 환경 오류로 완료하지 못했다. - 판정: PASS. + +## 2026-09-30 관로분석 시도 기본값 부산 적용 + +- quick_vibe: 사용자 지시로 시도 전체 옵션을 제거하고 기본 시도를 부산광역시(26)로 설정했다. +- `PipeAnalysisPopupPage.tsx`: 시도 전체 option 및 공통 목록의 값 0을 제외한다. 시군구·처리구역 전체 선택은 유지한다. +- `pipeAnalysisUtils.ts`: 집계 기본 필터 ctpvCd=26. 최초 자동 조회와 초기화에서 같은 기본값을 사용한다. 계정 지역 제한은 기존 applyScopeToSummaryFilters를 우선한다. +- API/백엔드/DB 및 상세 필터 기본값은 변경하지 않는다. +- 원본: 요구사항정의서 기능 추적표 88행 SFR-011-002, 화면설계서 10번 SN_MN010103. 부산 기본값은 이번 사용자 지시를 적용한다. +- 검증: git diff --check 통과. ESLint는 eslint-plugin-react-hooks 설치 누락으로 실행 실패. 실제 브라우저 확인과 전체 빌드는 미실행이며 사용자 개발 서버를 유지했다. +- 롤백: 집계 기본 시도를 0으로 되돌리고 시도 전체 option을 복원한다. diff --git a/apps/sn/docs/작업검증/SFR-011-007-통수위험분석/002-qa-SFR-011-007-통수위험분석-통합검증결과.md b/apps/sn/docs/작업검증/SFR-011-007-통수위험분석/002-qa-SFR-011-007-통수위험분석-통합검증결과.md index 1d99320f7..67fd8bfba 100644 --- a/apps/sn/docs/작업검증/SFR-011-007-통수위험분석/002-qa-SFR-011-007-통수위험분석-통합검증결과.md +++ b/apps/sn/docs/작업검증/SFR-011-007-통수위험분석/002-qa-SFR-011-007-통수위험분석-통합검증결과.md @@ -221,3 +221,12 @@ - 데이터 조회, 행 선택, 위험 판정, API 요청·응답 코드는 변경하지 않았다. - 대상 `WaterRiskPopupPage.tsx` ESLint와 프론트·공통 문서 저장소의 `git diff --check`가 통과했다. - 실행 중인 `sn` 개발 서버가 없어 로그인 화면의 실제 줄바꿈·배치는 확인하지 않았다. + +## 2026-09-30 과거분석이력 기본 강우발생기간 + +- 사용자 지시로 과거분석이력 최초 진입 기간만 2026-08-15 ~ 2026-08-17로 지정했다. 후속 사용자 지시에 따라 초기화는 실행 시점의 최근 1년·전체 검색조건을 새로 생성해 첫 페이지를 조회한다. +- 수정 파일: `frontend/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx`. +- 현재 탭의 조회기간은 기존 최근 1년 기준으로 별도 생성해 과거 고정기간에 의해 현재 데이터가 제외되지 않도록 했다. +- 과거 날짜 직접 변경·조회와 최신순 정렬을 유지한다. 백엔드·API 형식·DB 변경 없음. +- 검증: git diff --check 통과 및 최초 initialFilters와 초기화 buildDefaultResultFilters 분리 및 초기화 후 재조회 흐름 확인. 브라우저 확인 미실행, ESLint는 앞선 작업에서 확인한 eslint-plugin-react-hooks 누락으로 재실행하지 않았다. 개발 서버와 빌드는 조작하지 않았다. +- 롤백: 이 파일의 기본기간 및 조회기간 분리 변경만 복원한다. diff --git a/apps/sn/docs/작업내용/SFR-011-002-관로분석/001-fe-SFR-011-002-관로분석-통합구현기록.md b/apps/sn/docs/작업내용/SFR-011-002-관로분석/001-fe-SFR-011-002-관로분석-통합구현기록.md index 504b89518..229c41871 100644 --- a/apps/sn/docs/작업내용/SFR-011-002-관로분석/001-fe-SFR-011-002-관로분석-통합구현기록.md +++ b/apps/sn/docs/작업내용/SFR-011-002-관로분석/001-fe-SFR-011-002-관로분석-통합구현기록.md @@ -85,3 +85,13 @@ - 동일 관로의 상세 효과가 개발 모드에서 반복 실행돼도 시설관리번호·관리기관코드별 요청 Promise를 재사용해 중복 API 호출을 막는다. 실패한 요청은 캐시에서 제거해 재시도를 허용한다. - 대상 관로 `2015303665`의 화면 표출값은 `시종점 관저고`이며, 계산코드는 `DEPTH`이다. - 수정 파일은 `app/(map-layout)/map/components/popupComponent/featureClickEventPopup.tsx`이며, `map/page.tsx`는 관로 선택 행을 그대로 상세 컴포넌트에 전달한다. + +## 2026-09-30 관로분석 시도 기본값 부산 적용 + +- quick_vibe: 사용자 지시로 시도 전체 옵션을 제거하고 기본 시도를 부산광역시(26)로 설정했다. +- `PipeAnalysisPopupPage.tsx`: 시도 전체 option 및 공통 목록의 값 0을 제외한다. 시군구·처리구역 전체 선택은 유지한다. +- `pipeAnalysisUtils.ts`: 집계 기본 필터 ctpvCd=26. 최초 자동 조회와 초기화에서 같은 기본값을 사용한다. 계정 지역 제한은 기존 applyScopeToSummaryFilters를 우선한다. +- API/백엔드/DB 및 상세 필터 기본값은 변경하지 않는다. +- 원본: 요구사항정의서 기능 추적표 88행 SFR-011-002, 화면설계서 10번 SN_MN010103. 부산 기본값은 이번 사용자 지시를 적용한다. +- 검증: git diff --check 통과. ESLint는 eslint-plugin-react-hooks 설치 누락으로 실행 실패. 실제 브라우저 확인과 전체 빌드는 미실행이며 사용자 개발 서버를 유지했다. +- 롤백: 집계 기본 시도를 0으로 되돌리고 시도 전체 option을 복원한다. diff --git a/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md b/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md index ce9365f91..839b425e3 100644 --- a/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md +++ b/apps/sn/docs/작업내용/SFR-011-007-통수위험분석/001-fe-SFR-011-007-통수위험분석-통합구현기록.md @@ -266,3 +266,12 @@ - 현재·과거분석이력이 공유하는 결과표 우측 안내문 뒤에 `(GIS 매핑 관로 중 Capacity 0.8 이상이 1개라도 있으면 위험, 없으면 정상)`을 추가했다. - 지도 요약카드와 동일하게 `위험`은 빨간색(`#ff1c15`), `정상`은 파란색(`#1677ff`)의 굵은 글씨로 표시한다. - 지도 요약카드에만 있던 위험 판정기준을 결과 목록에서도 확인할 수 있게 했으며, 판정 로직·API·DB 계약은 변경하지 않았다. + +## 2026-09-30 과거분석이력 기본 강우발생기간 + +- 사용자 지시로 과거분석이력 최초 진입 기간만 2026-08-15 ~ 2026-08-17로 지정했다. 후속 사용자 지시에 따라 초기화는 실행 시점의 최근 1년·전체 검색조건을 새로 생성해 첫 페이지를 조회한다. +- 수정 파일: `frontend/apps/sn/app/(map-layout)/map/components/waterRisk/WaterRiskPopupPage.tsx`. +- 현재 탭의 조회기간은 기존 최근 1년 기준으로 별도 생성해 과거 고정기간에 의해 현재 데이터가 제외되지 않도록 했다. +- 과거 날짜 직접 변경·조회와 최신순 정렬을 유지한다. 백엔드·API 형식·DB 변경 없음. +- 검증: git diff --check 통과 및 최초 initialFilters와 초기화 buildDefaultResultFilters 분리 및 초기화 후 재조회 흐름 확인. 브라우저 확인 미실행, ESLint는 앞선 작업에서 확인한 eslint-plugin-react-hooks 누락으로 재실행하지 않았다. 개발 서버와 빌드는 조작하지 않았다. +- 롤백: 이 파일의 기본기간 및 조회기간 분리 변경만 복원한다.