58 lines
2.9 KiB
Markdown
58 lines
2.9 KiB
Markdown
# 프로젝트 진행 상황 (2025-11-20)
|
|
|
|
## 작업 개요: 디지털 트윈 3D 야드 고도화 (동적 계층 구조)
|
|
|
|
### 1. 핵심 변경 사항
|
|
기존의 고정된 `Area` -> `Location` 2단계 구조를 유연한 **N-Level 동적 계층 구조**로 변경하고, 공간적 제약을 강화했습니다.
|
|
|
|
### 2. 완료된 작업
|
|
|
|
#### 데이터베이스
|
|
- **마이그레이션 실행**: `db/migrations/042_refactor_digital_twin_hierarchy.sql`
|
|
- **스키마 변경**:
|
|
- `digital_twin_layout` 테이블에 `hierarchy_config` (JSONB) 컬럼 추가
|
|
- `digital_twin_objects` 테이블에 `hierarchy_level`, `parent_key`, `external_key` 컬럼 추가
|
|
- 기존 하드코딩된 테이블 매핑 컬럼 제거
|
|
|
|
#### 백엔드 (Node.js)
|
|
- **API 추가/수정**:
|
|
- `POST /api/digital-twin/data/hierarchy`: 계층 설정에 따른 전체 데이터 조회
|
|
- `POST /api/digital-twin/data/children`: 특정 부모의 하위 데이터 조회
|
|
- 기존 레거시 API (`getWarehouses` 등) 호환성 유지
|
|
- **컨트롤러 수정**:
|
|
- `digitalTwinDataController.ts`: 동적 쿼리 생성 로직 구현
|
|
- `digitalTwinLayoutController.ts`: 레이아웃 저장/수정 시 `hierarchy_config` 및 객체 계층 정보 처리
|
|
|
|
#### 프론트엔드 (React)
|
|
- **신규 컴포넌트**: `HierarchyConfigPanel.tsx`
|
|
- 레벨 추가/삭제, 테이블 및 컬럼 매핑 설정 UI
|
|
- **유틸리티**: `spatialContainment.ts`
|
|
- `validateSpatialContainment`: 자식 객체가 부모 객체 내부에 있는지 검증 (AABB)
|
|
- `updateChildrenPositions`: 부모 이동 시 자식 객체 자동 이동 (그룹 이동)
|
|
- **에디터 통합 (`DigitalTwinEditor.tsx`)**:
|
|
- `HierarchyConfigPanel` 적용
|
|
- 동적 데이터 로드 로직 구현
|
|
- 3D 캔버스 드래그앤드롭 시 공간적 종속성 검증 적용
|
|
- 객체 이동 시 그룹 이동 적용
|
|
|
|
### 3. 현재 상태
|
|
- **백엔드 서버**: 재시작 완료, 정상 동작 중 (PostgreSQL 연결 이슈 해결됨)
|
|
- **DB**: 마이그레이션 스크립트 실행 완료
|
|
|
|
### 4. 다음 단계 (테스트 필요)
|
|
새로운 세션에서 다음 시나리오를 테스트해야 합니다:
|
|
1. **계층 설정**: 에디터에서 창고 -> 구역(Lv1) -> 위치(Lv2) 설정 및 매핑 저장
|
|
2. **배치 검증**:
|
|
- 구역 배치 후, 위치를 구역 **내부**에 배치 (성공해야 함)
|
|
- 위치를 구역 **외부**에 배치 (실패해야 함)
|
|
3. **이동 검증**: 구역 이동 시 내부의 위치들도 같이 따라오는지 확인
|
|
|
|
### 5. 관련 파일
|
|
- `frontend/components/admin/dashboard/widgets/yard-3d/DigitalTwinEditor.tsx`
|
|
- `frontend/components/admin/dashboard/widgets/yard-3d/HierarchyConfigPanel.tsx`
|
|
- `frontend/components/admin/dashboard/widgets/yard-3d/spatialContainment.ts`
|
|
- `backend-node/src/controllers/digitalTwinDataController.ts`
|
|
- `backend-node/src/routes/digitalTwinRoutes.ts`
|
|
- `db/migrations/042_refactor_digital_twin_hierarchy.sql`
|
|
|