# 재공품(절곡품) LOT 번호 채번 규칙

> **작성일**: 2026-03-18
> **상태**: 설계 확정
> **적용 테넌트**: 경동기업 (현재 하드코딩, 향후 MNG 채번 규칙으로 전환 예정)

---

## 1. 개요

### 1.1 목적

재고생산 시 절곡품의 LOT 번호를 체계적으로 부여하여 생산 이력을 추적한다.

### 1.2 핵심 원칙

- LOT 번호는 **제품 + 종류 + 날짜 + 모양&길이**로 구성 (일련번호 없음)
- 현재 경동기업 전용 코드 체계이며, 타 테넌트는 별도 채번 규칙이 필요할 수 있음
- 향후 MNG 채번 규칙 관리 기능으로 테넌트별 설정 가능하도록 확장 예정

---

## 2. LOT 번호 구조

```
G  I  4A05  -  53
│  │  │        │
│  │  │        └── 모양&길이 코드
│  │  └── 날짜 코드 (4자리)
│  └── 종류 코드
└── 제품 코드
```

**예시**: `GI4A05-53` = 연기차단재 + 화이바원단(W50) + 2024년10월05일 + W50×3000

> 같은 날 같은 조합은 동일 LOT 번호를 사용한다. 일련번호는 부여하지 않는다.

---

## 3. 제품 코드 (7종)

| 코드 | 제품명 |
|------|--------|
| R | 가이드레일(벽면형) |
| S | 가이드레일(측면형) |
| G | 연기차단재 |
| B | 하단마감재(스크린) |
| T | 하단마감재(철재) |
| L | L-Bar |
| C | 케이스 |

---

## 4. 종류 코드 (제품별)

### 4.1 가이드레일(벽면형) — R

| 코드 | 종류 | 재질 |
|------|------|------|
| M | 본체 | EGI 1.55T |
| T | 본체(철재) | EGI 1.55T |
| C | C형 | EGI 1.55T |
| D | D형 | EGI 1.55T |
| S | SUS마감재 | SUS 1.2T |
| W | 본체(L120) | EGI 1.55T |
| F | SUS마감재(L120) | SUS 1.2T |

### 4.2 가이드레일(측면형) — S

| 코드 | 종류 | 재질 |
|------|------|------|
| M | 본체디딤 | EGI 1.55T |
| T | 본체(철재) | EGI 1.55T |
| C | C형 | EGI 1.55T |
| D | D형 | EGI 1.55T |
| S | SUS마감재(3) | SUS 1.2T |
| U | SUS마감재(3) | SUS 1.2T |
| W | 본체(L120) | EGI 1.55T |
| F | SUS마감재(L120) | SUS 1.2T |

### 4.3 케이스 — C

| 코드 | 종류 | 재질 |
|------|------|------|
| F | 전면부 | EGI 1.55T |
| P | 점검구 | EGI 1.55T |
| L | 린텔부 | EGI 1.55T |
| B | 후면코너부 | EGI 1.55T |

### 4.4 하단마감재(스크린) — B

| 코드 | 종류 | 재질 |
|------|------|------|
| S | SUS | SUS 1.2T |
| E | EGI | EGI 1.55T |

### 4.5 하단마감재(철재) — T

| 코드 | 종류 | 재질 |
|------|------|------|
| S | SUS | SUS 1.2T |
| E | EGI | EGI 1.55T |

### 4.6 L-Bar — L

| 코드 | 종류 | 재질 |
|------|------|------|
| A | 스크린용 | EGI 1.55T |

### 4.7 연기차단재 — G

| 코드 | 종류 | 재질 |
|------|------|------|
| I | 화이바원단(W50) | 화이바원단 |
| H | 화이바원단(W80) | 화이바원단 |

> **참고**: 동일 코드가 다른 제품에서 다른 의미로 사용될 수 있다 (예: F = 가이드레일의 SUS마감재(L120) / 케이스의 전면부). 제품 코드와 함께 사용하므로 충돌 없음.

---

## 5. 날짜 코드 (4자리)

```
[년1자리][월1자리][일2자리]
```

### 5.1 년 코드

끝자리 사용: 2024→4, 2025→5, 2026→6, ..., 2030→0

### 5.2 월 코드

| 월 | 코드 |
|----|------|
| 1~9월 | 1~9 |
| 10월 | A |
| 11월 | B |
| 12월 | C |

### 5.3 일 코드

01~31 그대로 (2자리)

### 5.4 예시

| 날짜 | 날짜 코드 |
|------|----------|
| 2024-10-05 | `4A05` |
| 2026-03-17 | `6317` |
| 2026-12-25 | `6C25` |

---

## 6. 모양&길이 코드

### 6.1 연기차단재 전용 (제품 G)

| 규격 | 코드 |
|------|------|
| W50 × 3000 | 53 |
| W50 × 4000 | 54 |
| W80 × 3000 | 83 |
| W80 × 4000 | 84 |

### 6.2 일반 (가이드레일, 하단마감재, 케이스 등)

| 길이(mm) | 코드 |
|----------|------|
| 610 | 06 |
| 1219 | 12 |
| 1750 | 17 |
| 2000 | 20 |
| 2438 | 24 |
| 3000 | 30 |
| 3500 | 35 |
| 4000 | 40 |
| 4150 | 41 |
| 4300 | 43 |
| 4500 | 45 |

> **확장 가능**: 신규 길이 발생 시 코드를 추가한다.

---

## 7. 구현 위치

| 항목 | 파일 |
|------|------|
| 코드맵 상수 | `api/app/Services/BendingCodeService.php` |
| 날짜 코드 생성 | `BendingCodeService::generateDateCode()` |
| LOT 번호 생성 | `BendingCodeService::generateLotNumber()` |
| 재질 매핑 | `BendingCodeService::MATERIAL_MAP` |
| API 엔드포인트 | `GET /api/v1/bending/code-map` |
| 프론트엔드 | `react/src/components/stocks/BendingLotForm.tsx` |

---

## 8. 향후 계획

### 8.1 MNG 채번 규칙 관리로 전환

현재 `BendingCodeService`에 하드코딩된 코드맵을 MNG의 채번 규칙 관리 기능으로 전환하여 테넌트별로 설정 가능하게 한다.

```
현재: BendingCodeService 상수 (경동기업 전용)
    ↓
목표: MNG 채번 규칙 관리 화면 → DB 저장 → API로 조회
    → 테넌트마다 다른 제품/종류/길이 코드 설정 가능
```

### 8.2 품목 매핑 데이터 등록

`bending_item_mappings` 테이블에 LOT 코드 조합 → 품목(items) 매핑 데이터를 등록해야 재고생산에서 품목 자동 식별이 가능하다.

---

## 관련 문서

- `dev/dev_plans/bending-management/README.md` — 절곡품 관리 전체 계획
- `frontend/api-specs/bending-lot-api.md` — 절곡품 LOT API 명세
- `changes/20260318_nginx_file_upload_413_fix.md` — 파일 업로드 413 수정

---

**최종 업데이트**: 2026-03-18
