Files
sam-docs/changes/20260318_bending_lot_codemap_update.md

102 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 절곡품 LOT 채번 코드맵 최신화 + 품목 일괄 등록 + 일련번호 제거
**날짜:** 2026-03-18
**작업자:** Claude Code
---
## 변경 개요
경동기업 재공품 LOT 채번 규칙을 최신 기준으로 업데이트했다. 신규 종류/길이 코드 추가, 누락 품목 222건 일괄 등록, LOT 번호에서 일련번호(-001) 제거.
---
## 수정된 파일
| 파일 | 변경 내용 | 프로젝트 |
|------|----------|---------|
| `app/Services/BendingCodeService.php` | 코드맵 최신화 + generateLotNumber() 일련번호 제거 | API |
| `app/Http/Controllers/Api/V1/BendingController.php` | generate-lot 응답 단순화 | API |
| `scripts/register-bending-items.php` | 품목 일괄 등록 스크립트 | API |
---
## 상세 변경 사항
### 1. BendingCodeService 코드맵 최신화
**신규 종류 코드 3종:**
| 코드 | 종류 | 적용 제품 |
|------|------|----------|
| W | 본체(L120) | R(벽면형), S(측면형) |
| F | SUS마감재(L120) | R(벽면형), S(측면형) |
| H | 화이바원단(W80) | G(연기차단재) |
**신규 길이 코드 4종:**
| 길이 | 코드 |
|------|------|
| 610mm | 06 |
| 1750mm | 17 |
| 2000mm | 20 |
| 4500mm | 45 |
**명칭 변경:**
- R:M 본체 → S:M 본체디딤 (측면형만)
- SUS(마감) → SUS마감재 / SUS마감재(3)
- 화이바원단 → 화이바원단(W50)
- 가이드레일(R/S)에서 EGI(E) 종류 코드 제거
### 2. 품목 일괄 등록 (222건)
LOT 코드 기준 26개 제품+종류 조합 × 12개 길이 = 320개 조합 중 누락 222건을 `items` 테이블에 등록. `bending_item_mappings` 테이블에 320건 매핑 동시 등록.
| 구분 | 건수 |
|------|:----:|
| 기존 품목 유지 | 170건 |
| 신규 생성 | 222건 |
| bending_item_mappings | 320건 |
### 3. LOT 번호 일련번호 제거
```
변경 전: CL6318-30-001 (일련번호 포함)
변경 후: CL6318-30 (일련번호 없음)
```
같은 날 같은 조합은 동일 LOT 번호를 사용한다.
**API 응답 변경 (`POST /api/v1/bending/generate-lot`):**
```json
// 변경 전
{ "lot_base": "CL6318-30", "lot_number": "CL6318-30-001", "date_code": "6318", "material": "EGI 1.55T" }
// 변경 후
{ "lot_number": "CL6318-30", "material": "EGI 1.55T" }
```
> `lot_base`, `date_code` 필드 제거. `lot_number`에 일련번호 미포함.
---
## React 영향 (프론트엔드 전달 필요)
- `BendingLotForm.tsx`의 LOT 프리뷰(`lotPreview`)는 이미 올바르게 동작 (일련번호 없는 형태)
- 저장 시 `generateBendingLot()` API 응답에서 `lot_base`, `date_code` 필드 제거됨
- 현재 코드에서 `lotData.lot_number``lotData.material`만 사용하므로 **호환성 문제 없음**
- 추가 구현 권장: 3요소 선택 시 매핑 품목이 자동 표시되는 UX 강화 (현재도 동작하나 확인 필요)
---
## 관련 문서
- `rules/bending-lot-numbering-policy.md` — LOT 채번 규칙 정책
- `plans/bending-item-registration-plan.md` — 품목 등록 계획 (완료)
- `plans/bending-lot-auto-generation-plan.md` — LOT 자동 채번 기획
---
**최종 업데이트**: 2026-03-18