|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| RackStructureComponent.tsx | ||
| RackStructureConfigPanel.tsx | ||
| RackStructureRenderer.tsx | ||
| config.ts | ||
| index.ts | ||
| types.ts | ||
README.md
렉 구조 설정 컴포넌트 (Rack Structure Config)
창고 렉 위치를 열 범위와 단 수로 일괄 생성하는 컴포넌트입니다.
핵심 개념
이 컴포넌트는 상위 폼의 필드 값을 읽어서 위치 코드를 생성합니다.
작동 방식
- 사용자가 화면관리에서 테이블 컬럼(창고코드, 층, 구역 등)을 드래그하여 폼에 배치
- 렉 구조 컴포넌트 설정에서 필드 매핑 설정 (어떤 폼 필드가 창고/층/구역인지)
- 런타임에 사용자가 폼 필드에 값을 입력하면, 렉 구조 컴포넌트가 해당 값을 읽어서 사용
기능
1. 렉 라인 구조 설정
- 조건 추가/삭제
- 각 조건: 열 범위(시작~종료) + 단 수
- 자동 위치 수 계산 (예: 1열~3열 x 3단 = 9개)
- 템플릿 저장/불러오기
2. 등록 미리보기
- 통계 카드 (총 위치, 열 수, 최대 단)
- 미리보기 생성 버튼
- 생성될 위치 목록 테이블
설정 방법
1. 화면관리에서 배치
- 상위에 테이블 컬럼들을 배치 (창고코드, 층, 구역, 위치유형, 사용여부)
- 컴포넌트 팔레트에서 "렉 구조 설정" 선택
- 캔버스에 드래그하여 배치
2. 필드 매핑 설정
설정 패널에서 상위 폼의 어떤 필드를 사용할지 매핑합니다:
| 매핑 항목 | 설명 |
|---|---|
| 창고 코드 필드 | 위치 코드 생성에 사용할 창고 코드 |
| 층 필드 | 위치 코드 생성에 사용할 층 |
| 구역 필드 | 위치 코드 생성에 사용할 구역 |
| 위치 유형 필드 | 미리보기 테이블에 표시할 위치 유형 |
| 사용 여부 필드 | 미리보기 테이블에 표시할 사용 여부 |
예시
상위 폼에 다음 필드가 배치되어 있다면:
창고코드(조인)→ 필드명:warehouse_code층→ 필드명:floor구역→ 필드명:zone
설정 패널에서:
- 창고 코드 필드:
warehouse_code선택 - 층 필드:
floor선택 - 구역 필드:
zone선택
위치 코드 생성 규칙
기본 패턴: {창고코드}-{층}{구역}-{열:2자리}-{단}
예시 (창고: WH001, 층: 1, 구역: A):
- WH001-1A-01-1 (01열, 1단)
- WH001-1A-01-2 (01열, 2단)
- WH001-1A-02-1 (02열, 1단)
설정 옵션
| 옵션 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| maxConditions | number | 10 | 최대 조건 수 |
| maxRows | number | 99 | 최대 열 수 |
| maxLevels | number | 20 | 최대 단 수 |
| showTemplates | boolean | true | 템플릿 기능 표시 |
| showPreview | boolean | true | 미리보기 표시 |
| showStatistics | boolean | true | 통계 카드 표시 |
| readonly | boolean | false | 읽기 전용 |
출력 데이터
onChange 콜백으로 생성된 위치 데이터 배열을 반환합니다:
interface GeneratedLocation {
rowNum: number; // 열 번호
levelNum: number; // 단 번호
locationCode: string; // 위치 코드
locationName: string; // 위치명
locationType?: string; // 위치 유형
status?: string; // 사용 여부
warehouseCode?: string; // 창고 코드 (매핑된 값)
floor?: string; // 층 (매핑된 값)
zone?: string; // 구역 (매핑된 값)
}
연동 테이블
warehouse_location 테이블과 연동됩니다:
| 컬럼 | 설명 |
|---|---|
| warehouse_id | 창고 ID |
| floor | 층 |
| zone | 구역 |
| row_num | 열 번호 |
| level_num | 단 번호 |
| location_code | 위치 코드 |
| location_name | 위치명 |
| location_type | 위치 유형 |
| status | 사용 여부 |
예시 시나리오
시나리오: A구역에 1~3열은 3단, 4~6열은 5단 렉 생성
-
상위 폼에서 기본 정보 입력
- 창고: 제1창고 (WH001) - 드래그해서 배치한 필드
- 층: 1 - 드래그해서 배치한 필드
- 구역: A - 드래그해서 배치한 필드
- 위치 유형: 선반 - 드래그해서 배치한 필드
- 사용 여부: 사용 - 드래그해서 배치한 필드
-
렉 구조 컴포넌트에서 조건 추가
- 조건 1: 1~3열, 3단 → 9개
- 조건 2: 4~6열, 5단 → 15개
-
미리보기 생성
- 총 위치: 24개
- 열 수: 6개
- 최대 단: 5단
-
저장
- 24개의 위치 데이터가 warehouse_location 테이블에 저장됨
필수 필드 검증
미리보기 생성 시 다음 필드가 입력되어 있어야 합니다:
- 창고 코드
- 층
- 구역
필드가 비어있으면 경고 메시지가 표시됩니다.