# 렉 구조 설정 컴포넌트 (Rack Structure Config) 창고 렉 위치를 열 범위와 단 수로 일괄 생성하는 컴포넌트입니다. ## 핵심 개념 이 컴포넌트는 **상위 폼의 필드 값을 읽어서** 위치 코드를 생성합니다. ### 작동 방식 1. 사용자가 화면관리에서 테이블 컬럼(창고코드, 층, 구역 등)을 드래그하여 폼에 배치 2. 렉 구조 컴포넌트 설정에서 **필드 매핑** 설정 (어떤 폼 필드가 창고/층/구역인지) 3. 런타임에 사용자가 폼 필드에 값을 입력하면, 렉 구조 컴포넌트가 해당 값을 읽어서 사용 ## 기능 ### 1. 렉 라인 구조 설정 - 조건 추가/삭제 - 각 조건: 열 범위(시작~종료) + 단 수 - 자동 위치 수 계산 (예: 1열~3열 x 3단 = 9개) - 템플릿 저장/불러오기 ### 2. 등록 미리보기 - 통계 카드 (총 위치, 열 수, 최대 단) - 미리보기 생성 버튼 - 생성될 위치 목록 테이블 ## 설정 방법 ### 1. 화면관리에서 배치 1. 상위에 테이블 컬럼들을 배치 (창고코드, 층, 구역, 위치유형, 사용여부) 2. 컴포넌트 팔레트에서 "렉 구조 설정" 선택 3. 캔버스에 드래그하여 배치 ### 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` 콜백으로 생성된 위치 데이터 배열을 반환합니다: ```typescript 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. **상위 폼에서 기본 정보 입력** - 창고: 제1창고 (WH001) - 드래그해서 배치한 필드 - 층: 1 - 드래그해서 배치한 필드 - 구역: A - 드래그해서 배치한 필드 - 위치 유형: 선반 - 드래그해서 배치한 필드 - 사용 여부: 사용 - 드래그해서 배치한 필드 2. **렉 구조 컴포넌트에서 조건 추가** - 조건 1: 1~3열, 3단 → 9개 - 조건 2: 4~6열, 5단 → 15개 3. **미리보기 생성** - 총 위치: 24개 - 열 수: 6개 - 최대 단: 5단 4. **저장** - 24개의 위치 데이터가 warehouse_location 테이블에 저장됨 ## 필수 필드 검증 미리보기 생성 시 다음 필드가 입력되어 있어야 합니다: - 창고 코드 - 층 - 구역 필드가 비어있으면 경고 메시지가 표시됩니다.