Commit Graph
9491 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5.5 6db3a2f635 fix(530-3): D03 화면 검증 흠 — 저장된 갈래 밝힘 · 움직인 끌기만 지점 옮김 · 횡단 꾸밈 · 진행 못 읽으면 알림
- 카드 고름 = 서버 이은 누가(저장 갈래) 위에 캐시 고름
- 지점 누름(손 떨림 안)은 끌기 아님 · 집은 자리 차 지킴
- 횡단 판 B05 RouteEdit 꾸밈 css · 끌기 끝나면 옛 횡단 비움
- 진행 요청 실패 = 알림 뒤 화면 되돌림(서버 일은 그대로)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:45:43 +09:00
eomsangdonandClaude Opus 5.5 134515b9cb fix(530-3): D03 시작 누가 — 분석 저장본 읽을 때 같이 셈(닫힌 함수 대입을 좁힘이 never 로 봄)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:17:40 +09:00
eomsangdonandClaude Opus 5.5 50e9c1b015 feat(530-3): D03 예정노선 분석 화면 — 평면 · 지점 끌기 · 더 받기 · 갈래 카드 · 측점 · 지반 횡단 · 3D
- 평면 = 위성 + 도엽 등고선 + 다른 갈래(옅게) + 고른 노선 + 측점(누가 = 등록 시작부터) + 지점 끌기 겹
- 끈 지점 = 캐시 · 받기 · 분석 · 보기는 points 로 실어 보냄 · [저장] 때만 D02 규칙으로 정본
- 연도별 갈래 넷 카드(연장 · 최대 기울기 · 위반 수) · 고름 = 캐시 · [저장] = 서버 저장본으로 다시 셈
- 측점 누름 = 하 패널 지반선 횡단(sectionsGround · buildCrossSvg 지반만 인자 · 기본 그대로)
- 3D 모달 = 연도 DEM + 노선 + 측점 막대(코리도 · 구조물 안 부름)
- 화면 계산 logic 짝(pickMode · chainRows · joinedLine ↔ 파이썬) 거울 시험

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:11:23 +09:00
eomsangdon 94c47acd1e Merge remote-tracking branch 'origin/sub_laptop_7' into sub_laptop_3 2026-10-25 19:49:58 +09:00
eomsangdon 20081ee362 feat(D04): 업체 지정 · 확정 API · 완료 메일 · 시험 (531-1 · 531-2) 2026-10-25 19:49:39 +09:00
eomsangdon 07a99085a6 Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_1 2026-10-25 19:48:50 +09:00
eomsangdonandClaude Opus 5.5 83d38681df fix(530-2): D 분석 지점 0.1 mm 반올림 — 노선 끝점 = 지점 · 연도 경계 정확히 맞물림 · 복도 300 m 실측 근거 주석
- 엔진 출력 자리수(4)로 지점을 맞춰 넣음 · 저장본 지점 대조 1 mm
- 실측(검증_sub3 근처 두 구간): 복도 100 · 200 · 300 m 못 지킨 곳 5 · 8 · 1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:47:30 +09:00
eomsangdon 16b456aff6 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_6' into main_laptop_1 2026-10-25 19:47:26 +09:00
eomsangdonandClaude Opus 5.5 94a7fd5808 feat(528-4 · 532-1): 공용 프로젝트 복사 · E01 안정성평가 생성 복사
- common_util_project_copy — 복제 도구 본체 이전 · 범위 full | stability · 파일 안 UUID 치환 · copy_manifest.json
- tools_clone_project — CLI 껍데기(동작 그대로 · main(argv))
- E01 생성 = stability 복사(E01_StabRegister/source/ · 동결 db.json + B05 route · B06 종횡단 · 쓰인 DTM 하나 · 최신 corridor · 관 편집분) · 지문 · 복사 시각 기록 · 실패 = 만든 E 지움
- E01_StabRegister_Source — 복사본 읽기(측점 · 횡단 · 지형 격자 · corridor · 구조물)
- 시험 test_532_1_project_copy(임시 storage) · test_528 E01 생성에 복사 응답 반영

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:47:12 +09:00
eomsangdonandClaude Opus 5.5 76a399026c feat(529-3): D02 지점 정본 API · 경위도 ↔ TM 점 변환
- common_util_crs: 경도로 TM 띠(5185 · 5186 · 5187) · lonlat_to_tm · tm_to_lonlat
- D02_PlanBase_Router: GET · PUT /api/projects/{id}/plan/points — 잇기(직전 종점 = 다음 시점) · 범위 밖 · 빈 연도 거절 · 산림청만 고침 · 바뀐 연도만 분석 노선 비움
- 지킴 시험 test_529_3_plan_points

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:46:43 +09:00
eomsangdon f93d996279 Merge remote-tracking branch 'origin/sub_laptop_8' into sub_laptop_7 2026-10-25 19:45:46 +09:00
eomsangdon 4e9c298247 Merge remote-tracking branch 'origin/dev' into sub_laptop_7 2026-10-25 19:45:43 +09:00
eomsangdon 6ec6042655 fix(D04): 내보내기 엔진 머리말 줄 길이 2026-10-25 19:45:35 +09:00
eomsangdon 557681499c feat(D04): 예정노선 내보내기 엔진 · 메일 첨부 인자 (531-1 · 531-2 일부) 2026-10-25 19:45:23 +09:00
eomsangdonandClaude Opus 5.5 39e8ee837e chore(535-3): requirements 에서 PyMuPDF(AGPL) 제거 — requirements-dev.txt 로 이관(지식DB _pipeline · PDF 읽는 시험 전용)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:45:02 +09:00
eomsangdon 52b2df3568 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-25 19:43:51 +09:00
eomsangdonandClaude Opus 5.5 b8ef5d033d feat(535-2): B09 도면 PDF PyMuPDF(AGPL) 제거 — 장마다 SVG 쪽 → 공용 PDF 엔진(Chromium) · pypdf 합치기
- 점선 = 미리 자른 실선 조각(Chromium 이 점선을 채운 윤곽으로 풀어 PDF 3 배 커지는 것 막음)
- 글 안 빈칸 그대로(white-space: pre) · 세운 글 방향 = 화면(openwebcad canvas)과 같게
- 못 넣은 그림 = data: 아님 · base64 깨짐
- test_302_2: PDF 읽기 pymupdf → pypdf · add_drawing_page(pymupdf 문서) 시험 → drawing_page(SVG) 로 고침 · 점선 조각 · 빈칸 시험 더함

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:42:54 +09:00
eomsangdon 02bb502ad9 Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1 2026-10-25 19:41:43 +09:00
eomsangdonandClaude Opus 5.5 fbd9721931 feat(534-1): 내장 엑셀 그림 겹판 · 쪽 나눔 점선 — 늦게 불러옴 · 행열 넣기 · 스크롤 따라감
- spreadsheet_figures: 시트 그림을 닻 범위에 얹음(figureSrc 없으면 이름 상자) · 쪽 나눔 행 아래 점선 · overlay 맨 아래 층
- spreadsheet: figureSrc 선택 · 그림 · 쪽 나눔 있는 문서일 때만 import()

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:40:31 +09:00
eomsangdon e250e0fde0 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_3 2026-10-25 19:39:50 +09:00
eomsangdonandClaude Opus 5.5 eefc241ba4 chore(merge): dev 받기 — 528 공통 백엔드 · DB 020 · main.py 라우터 import 충돌 풂(D01 · D03 · E01 모두 살림)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:39:38 +09:00
eomsangdonandClaude Opus 5.5 a08dd82112 feat(529-1): D01 예정노선 등록 · E01 안정성평가 만들기 화면
- D01 칸: 사업연도 시작 · 끝 · 사업지역 · 종류 「노선 계획」 고정 · 임도 종류(B02 값) · 설계속도(종류별 고를 값 · 기본 최저 = resolve_design_speed) · 프로젝트명(B02 이름 조합기 · 연도 자리 「시작~끝」) · 노선 시작 · 종료 누가거리 · 도면 칸 없음
- E01: 대상 임도(source-candidates = B06 완료만) · 이름(손대기 전 「원본 이름 안정성평가」)
- [등록] = POST /api/d01/project · /api/e01/project → 현재 프로젝트 · 첫 단계(D02 · E02) · 공용 createGroupProject
- 설계속도 선택지 = B05 SPEED_CHOICES(파이썬 거울 시험 있음) · 모양 = B02 등록 CSS 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:39:20 +09:00
eomsangdon 61c3d66d23 Merge remote-tracking branch 'origin/안티그래비티' into sub_laptop_3 2026-10-25 19:39:03 +09:00
eomsangdon 76a8752b0b Merge remote-tracking branch 'origin/sub_laptop_8' into sub_laptop_3 2026-10-25 19:39:02 +09:00
eomsangdon 545701604a Merge remote-tracking branch 'origin/sub_laptop_6' into sub_laptop_3 2026-10-25 19:39:01 +09:00
eomsangdon cdfcd09604 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_3 2026-10-25 19:39:01 +09:00
eomsangdon 5d5e8d4849 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_3 2026-10-25 19:39:00 +09:00
eomsangdonandClaude Opus 5.5 17534a01ad feat(530-1 · 530-2): D 예정노선 지형 받기 · 2단계 분석 서버 — B05 엔진 인자 셋(models_dir · cache_dir · 복도 반폭) · D03 지형 서비스 · 분석 · API
- B05 지형 로더 models_dir · cache_dir=None · 비용면 cache_dir=None · 탐색 복도 corridor_m(기본 100 m · 기본이면 묶음 열쇠 그대로)
- D03_PlanAnalysis_Terrain — 지점 + 1 km 표본 3×3 도엽 · prune 없음 · 병합 옛 ∪ 새 · 위성 합집합 · 연도별 models_<연도> DEM · plan.prj
- D03_PlanAnalysis_Analyze — 연도 구간마다 갈래 넷 · 법정 기준 · 누가 이어 셈 · 파생 저장본(입력 지문)
- D03_PlanAnalysis_Router — POST plan/terrain · plan/analyze(뒤에서 · 진행률) · GET plan/progress · plan/analysis · PUT [저장]
- 지킴 시험 test_530_1_plan_terrain · test_530_2_plan_analyze · test_530_2_plan_router

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:38:40 +09:00
eomsangdon 55cc9ea93c Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-10-25 19:35:54 +09:00
eomsangdonandClaude Opus 5.5 786b0d8394 chore(요구): 요구 352 — ORCA 브라우저 탭 하나 재사용
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:35:47 +09:00
eomsangdon c3083ba50b Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-10-25 19:34:48 +09:00
eomsangdonandClaude Opus 5.5 dc124d3108 feat(528-2): 대시보드 [+] 고르기 모달 — 카드 넷(예정노선 · 임도설계 · 사방설계 · 안정성평가)
- [+] 세 자리(시스템관리자 · 회사관리자 · 사용자) = 고르기 모달
- 그림 = SVG 직접(선 = 글자 색 · 밝음/어두움) · 산림청 아니면 예정노선 흐림 + 까닭 툴팁 · 누름 = 같은 알림
- 사방 = 준비 중 · 임도 = B02 · 예정노선 = D01 · 안정성평가 = E01
- 세션 is_forest_service 칸(SessionUser)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:34:39 +09:00
eomsangdonandClaude Opus 5.5 f20aea412a feat(534-2): 내장 엑셀 내보내기 — 인쇄 HTML(Node print) · xlsx · SVG→PNG · PDF
- spreadsheet_print_html: 통합문서 → 인쇄 HTML(DOM 없음 · 화면 엔진 값 · formatValue · 병합 · colgroup 폭 · 쪽 나눔 덩이 · thead 머리행 반복 · 그림 img · 시트마다 @page)
- 서식 → CSS 를 클립보드에서 떼어 공용(medium · thick · double 굵기 반영)
- 서버 Node 진입 prints · 파이썬 print_htmls · workbook_pdf(공용 PDF 엔진 page_size=None)
- common_util_workbook_xlsx: openpyxl 로 값 · 식 · 서식 · 병합 · 폭 · 높이 · 틀 고정 · 인쇄 설정 · 쪽 나눔 · 그림(두 칸 닻)
- common_util_svg_png: Playwright 로 SVG → PNG(PyMuPDF 안 씀)
- 시험 test_spreadsheet_print(인쇄 HTML · xlsx 되읽기 · PNG 크기 · PDF 쪽 수)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:33:57 +09:00
eomsangdon 7434f10c7a Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into main_laptop_1 2026-10-25 19:33:12 +09:00
eomsangdon acf55f37fe Merge remote-tracking branch 'origin/안티그래비티' into main_laptop_1 2026-10-25 19:32:55 +09:00
eomsangdonandClaude Opus 5.5 ff8a8bad08 feat(528): 신규 프로젝트 그룹 공통 백엔드 — 종류 칸 · 산림청 판정 · D01 · E01 생성 API · 공유 GET 만 · 가입 go.kr = 산림청
- DB 020(추가만): projects 종류 · 사업연도 끝 · 설계속도 · 원본 칸 · plan_route_years · plan_route_assignees · 회사 「산림청」 행
- is_forest_email · is_forest_service · /api/auth/session 에 is_forest_service
- require_project_access 한 곳 — 지정 회사 = GET · HEAD 만 · 그 밖 403
- POST /api/d01/project(산림청만 · PLAN · 설계속도 기본 = resolve_design_speed) · GET /api/dashboard/plan-routes/assigned
- GET /api/e01/source-candidates · POST /api/e01/project(B06 완료만 · STABILITY · 원본 칸 · 자료 복사는 528-4)
- 종류별 단계 시드(PLAN 3 · STABILITY 4) · storage 허용 D0x · E0x · B01 목록에 project_kind
- 가입 인증 — 메일 *.go.kr = 회사 산림청 · ACTIVE · 화면 회사 칸 「산림청」 잠금 표시
- 지킴 시험 test_528_project_groups.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:32:25 +09:00
eomsangdonandClaude Opus 5.5 a1069f270a feat(529-1): 단계 틀 인자(아이콘 · [<][>] 묶음 · 도움말 이름) · D · E 단계 빈 길 일곱
- createWorkflowLayout icons 인자(없으면 B 일곱 아이콘 그대로)
- [?] [<] [>] 묶음 = B05~B09 · D02~D04 · E02~E05 · 묶음 안에서만 오감 · 설명서 이름 B0N/D0N/E0N
- 서버 설명서 주소 D01~D04 · E01~E05 허용 · 우클릭 막기 · 돋보기 d · e 주소
- ROUTES D01~E05 · PLAN_STEP_ROUTES · STAB_STEP_ROUTES · A00_Common/group_workflow(빈 단계 = 틀 · 좌측 [?] 줄 · 단계 막대)
- 페이지 폴더마다 draft/<폴더>_Route.ts · tsconfig 에 D0* · E0* · 문구 ui_template_locale_de
- 시험: 280-2 대역에 D · E 묶음 · 54-2 D · E 설명서 길

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:32:09 +09:00
eomsangdon 6a19ad195b knowledge(안정성평가): 상용 사면안정 SW 기능·검증예제 및 지반물성치 원문 근거 추가 (351) 2026-10-25 19:32:05 +09:00
eomsangdon 173b961494 Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-10-25 19:27:06 +09:00
eomsangdonandClaude Opus 5.5 c2876aef60 refactor(529-2): 카카오 지도 부품 B08 → ui_template 공용 이전 · 키 길 공용(/api/map/kakao-key)
- ui_template_kakao_map.ts(editMap · loadKakaoMaps) · 지도 CSS 공용 이름(ui-kakao-map*)
- B08 거리이정표 네 곳은 공용을 부름 · projectId 인자 걷음(키가 프로젝트 무관)
- B08 /quantity/milestone/map-key 걷음 → common_util_map_router 로 옮김
- B08 이정표 시험 파일 경로 · fetch 가짜 · 공용 CSS 로 고침(동작 판정 그대로)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:26:34 +09:00
eomsangdon 280072a16d Merge remote-tracking branch 'origin/dev' into sub_laptop_6 2026-10-25 19:25:48 +09:00
eomsangdonandClaude Opus 5.5 9c6ef7ca1e feat(534-1): 내장 엑셀 계약 더함 — 시트 인쇄 설정 · 그림 칸 · 행열 넣기 때 따라감
- spreadsheet_types: Sheet.인쇄(용지 · 방향 · 배율/맞춤 · 여백 · 머리행 · 쪽나눔) · Sheet.그림(열쇠 · 닻) · 머리 금지 규칙을 요구 347-5 로 고침
- spreadsheet_commands: 행열 넣기 · 지우기 때 그림 닻 · 쪽 나눔 · 머리 행 옮김
- 견본 JSON 에 인쇄 · 그림 · 엔진 시험 다섯 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:25:37 +09:00
eomsangdon 4730edba31 Merge remote-tracking branch 'origin/sub_laptop_8' into sub_laptop_5 2026-10-25 19:24:10 +09:00
eomsangdonandClaude Opus 5.5 9add13ccbc refactor(535-1): PDF 엔진 공용화 — common_util_print_pdf(render_html_to_pdf · render_htmls_to_pdfs · merge_pdfs · 엑셀 인쇄 설정) · B09 표 인쇄는 부르기만
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:23:42 +09:00
eomsangdonandClaude Opus 5.5 eb29e753fd feat(E03): 안정성평가 공용 꼴 — 물성 · 지하수 · 지진 kh · 상재하중 (532-2 · sub5 3D 공용)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:22:49 +09:00
eomsangdonandClaude Opus 5.5 bc39953fbd chore(요구): 요구 351 — 구현 진행 · 브레인 자율 · PDF 라이브러리 결정 · 안정성평가 품질
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:14:35 +09:00
eomsangdonandClaude Opus 5.5 9af2c53e8e chore(요구): 요구 350 — 상용 라이센스 조건 · 요구서 345 9장 쓰는 라이브러리(자체 엔진 · BSD · MIT · Apache 만)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:05:53 +09:00
eomsangdonandClaude Opus 5.5 b23cb15bbb chore(요구): 요구서 345 — E 3D 해석 방법(Hungr 3D Bishop · Scoops3D 방식 탐색) · 내장 엑셀 보고서 구성 · 분석 F
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:03:59 +09:00
eomsangdon ab0a82d38a Merge remote-tracking branch 'origin/안티그래비티' into main_laptop_1 2026-10-25 19:00:00 +09:00
eomsangdonandClaude Opus 5.5 e5d61d5569 chore(요구): 요구 349 — 예정노선 등록에 임도 종류 · 설계속도(기본 최저 속도) · 완료 메일 파일 첨부
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 19:00:00 +09:00