305 lines
9.2 KiB
Markdown
305 lines
9.2 KiB
Markdown
# 절곡 바라시 기초자료
|
|
|
|
> **작성일**: 2026-03-21
|
|
> **상태**: 운영 중
|
|
|
|
---
|
|
|
|
## 1. 개요
|
|
|
|
### 1.1 목적
|
|
|
|
절곡 바라시 기초자료는 **원자재(SUS, EGI 등)를 절곡(바라시) 가공하여 만드는 1차 가공물(부품)의 형상을 정의**하는 마스터 데이터이다.
|
|
|
|
### 1.2 2계층 생산 구조
|
|
|
|
```
|
|
원자재 (SUS 1.2T, EGI 1.55T 등)
|
|
↓ 절곡 가공 (바라시)
|
|
1차 가공물: bending_items (기초자료) — 절곡 형상 정의
|
|
↓ 조립
|
|
2차 가공물: bending_models (가이드레일/케이스/하단마감재) — 부품을 조합한 완성품
|
|
```
|
|
|
|
- **기초자료** = 1차 가공물 = 절곡 형상 (길이 무관)
|
|
- **가이드레일/케이스** = 2차 가공물 = 1차 가공물을 조립한 형상
|
|
|
|
### 1.3 재공품(WIP)과의 관계
|
|
|
|
재공품은 **유휴 시간을 활용하여 가장 많이 나가는 정형화된 부품을 미리 생산**하는 것이다.
|
|
|
|
- 모든 절곡 형상을 재공품으로 관리하는 것이 아님
|
|
- 수요가 높은 **표준 형상**만 재공품 코드로 관리
|
|
- 기초자료는 표준 형상 + 주문에 따른 **변형 형상**도 관리
|
|
|
|
---
|
|
|
|
## 2. 품목코드 체계
|
|
|
|
### 2.1 기초자료 코드 (형상 정의, 길이 무관)
|
|
|
|
```
|
|
BD-{분류코드}.{변형번호}
|
|
```
|
|
|
|
| 세그먼트 | 설명 | 예시 |
|
|
|----------|------|------|
|
|
| `BD` | Bending 접두사 (고정) | `BD` |
|
|
| 분류코드 | 부품 종류 + 재질 계열 (2자리) | `CL`, `RS`, `CP` |
|
|
| `.nnn` | 변형 번호 (점 구분자, 3자리) | `.001`, `.027` |
|
|
|
|
**규칙:**
|
|
- `.001` = **대표(표준) 형상** — 재공품의 기준이 되는 절곡도
|
|
- `.002`~ = 표준 대비 **변형** — 주문에 따라 수정된 절곡도
|
|
- 최대 `.999` (999종 변형 수용)
|
|
|
|
**예시:**
|
|
```
|
|
BD-CL.001 케이스 린텔 — 대표(표준) 형상
|
|
BD-CL.002 케이스 린텔 — 변형 1
|
|
BD-RS.001 가이드레일 SUS 마감재 — 대표(표준)
|
|
BD-RS.025 가이드레일 SUS 마감재 — 변형 25
|
|
```
|
|
|
|
### 2.2 재공품 코드 (형상 + 길이, 고유 품목)
|
|
|
|
```
|
|
BD-{분류코드}-{길이코드}
|
|
```
|
|
|
|
| 세그먼트 | 설명 | 예시 |
|
|
|----------|------|------|
|
|
| `BD` | Bending 접두사 (기초자료와 공통) | `BD` |
|
|
| 분류코드 | 기초자료와 동일 (2자리) | `CL`, `RS` |
|
|
| `-길이코드` | 원자재 길이 (하이픈 구분자) | `-30` (3000mm) |
|
|
|
|
**예시:**
|
|
```
|
|
BD-CL-30 케이스 린텔 3000mm (고유 품목코드)
|
|
BD-RS-24 가이드레일 SUS 마감재 2438mm
|
|
```
|
|
|
|
### 2.3 기초자료 vs 재공품 코드 구분
|
|
|
|
| 구분 | 형식 | 구분자 | 의미 |
|
|
|------|------|:------:|------|
|
|
| 기초자료 (표준) | `BD-CL.001` | 점 (`.`) | 절곡 형상만 (길이 무관) |
|
|
| 기초자료 (변형) | `BD-CL.002` | 점 (`.`) | 주문 수정 형상 |
|
|
| 재공품 | `BD-CL-30` | 하이픈 (`-`) | 표준 형상 + 길이 (고유 품목) |
|
|
|
|
> `BD-CL`까지 공통, 그 뒤 구분자(`.` vs `-`)로 구분. 기초자료는 길이 정보를 담지 않는다.
|
|
|
|
### 2.4 LOT 번호
|
|
|
|
```
|
|
{제품}{종류}{날짜코드}-{길이코드}
|
|
```
|
|
|
|
| 예시 | 의미 |
|
|
|------|------|
|
|
| `CL6318-30` | 케이스 린텔, 2026-03-18 생산, 3000mm |
|
|
|
|
> LOT 번호는 생산 이력 추적용이며, 품목코드/기초자료 코드와는 별개 체계이다.
|
|
|
|
---
|
|
|
|
## 3. 분류코드 접두사 정의
|
|
|
|
### 3.1 가이드레일 부품 (R 계열)
|
|
|
|
| 코드 | 부품명 | 주재질 |
|
|
|------|--------|--------|
|
|
| `RS` | SUS 마감재 | SUS 1.2T |
|
|
| `RM` | 본체/보강 | EGI 1.55T |
|
|
| `RC` | C형 | EGI 1.55T |
|
|
| `RD` | D형 | EGI 1.55T |
|
|
| `RE` | 측면 마감재 | EGI/SUS |
|
|
| `RT` | 절단판 | — |
|
|
| `RH` | 뒷보강 | — |
|
|
| `RN` | 비인정 | — |
|
|
|
|
### 3.2 케이스 부품 (C 계열)
|
|
|
|
| 코드 | 부품명 | 주재질 |
|
|
|------|--------|--------|
|
|
| `CP` | 밑면판/점검구 | EGI 1.55T |
|
|
| `CF` | 전면판 | EGI 1.55T |
|
|
| `CB` | 후면 코너/후면부 | EGI 1.55T |
|
|
| `CL` | 린텔 | EGI 1.55T |
|
|
| `CX` | 상부 덮개 | EGI 1.55T |
|
|
|
|
### 3.3 하단마감재 부품 (B/T 계열)
|
|
|
|
| 코드 | 부품명 | 주재질 |
|
|
|------|--------|--------|
|
|
| `BS` | 하장바 SUS | SUS 1.5T |
|
|
| `BE` | 하장바 EGI | EGI 1.55T |
|
|
| `BH` | 보강평철 | EGI 1.15T |
|
|
| `TS` | 철재 하장바 SUS | SUS |
|
|
| `TE` | 철재 하장바 EGI | EGI |
|
|
|
|
### 3.4 기타
|
|
|
|
| 코드 | 부품명 |
|
|
|------|--------|
|
|
| `XE` | 마구리 |
|
|
| `LE` | L-BAR |
|
|
| `ZP` | 특수 밑면/점검구 |
|
|
| `ZF` | 특수 전면판 |
|
|
| `ZB` | 특수 후면 |
|
|
|
|
---
|
|
|
|
## 4. 데이터 모델
|
|
|
|
### 4.1 테이블
|
|
|
|
| 테이블 | 역할 | 프로젝트 |
|
|
|--------|------|----------|
|
|
| `bending_items` | 1차 가공물 (부품 형상) | API |
|
|
| `bending_models` | 2차 가공물 (조립품) | API |
|
|
|
|
### 4.2 bending_items 주요 필드
|
|
|
|
| 필드 | 설명 |
|
|
|------|------|
|
|
| `code` | 품목코드 (고유, `BD-XX.nnn`) |
|
|
| `item_name` | 부품명 |
|
|
| `item_sep` | 대분류 (스크린/철재) |
|
|
| `item_bending` | 분류 (가이드레일/케이스/하단마감재/마구리) |
|
|
| `material` | 원자재 (SUS 1.2T, EGI 1.55T 등) |
|
|
| `bending_data` | 전개도 JSON `[{input, rate, sum, color, aAngle}]` |
|
|
| `legacy_code` | 이전 코드 (마이그레이션 이력 보존) |
|
|
|
|
### 4.3 2차 가공물 매핑
|
|
|
|
`bending_models.components` JSON 배열에서 `sam_item_id`로 `bending_items.id`를 참조한다.
|
|
|
|
```
|
|
가이드레일 KSS01 (GR-3)
|
|
├── BD-RS.001 (SUS 마감재, 수량2)
|
|
├── BD-RM.001 (본체)
|
|
├── BD-RC.001 (C형)
|
|
└── BD-RD.001 (D형)
|
|
```
|
|
|
|
---
|
|
|
|
## 5. MNG 화면 기능
|
|
|
|
### 5.1 메뉴 구조
|
|
|
|
```
|
|
절곡품 관리
|
|
├── 기초관리 ← 이 문서의 대상
|
|
├── 가이드레일
|
|
├── 케이스
|
|
└── 하단마감재
|
|
```
|
|
|
|
### 5.2 기초관리 CRUD
|
|
|
|
| 기능 | 설명 |
|
|
|------|------|
|
|
| **목록** | 대분류/분류/재질/인정여부 필터, 검색, 페이지네이션 |
|
|
| **등록** | 분류코드 드롭다운 선택 → 순번(`.nnn`) 자동 채번 |
|
|
| **조회** | 코드/기본정보/전개도/이미지 표시 |
|
|
| **수정** | 코드 편집 가능 (저장 시 중복 검사) |
|
|
| **삭제** | Soft delete |
|
|
|
|
### 5.3 코드 관련 동작
|
|
|
|
#### 등록 시
|
|
|
|
1. 분류코드 드롭다운에서 `BD-XX` 선택
|
|
2. 저장 시 API가 해당 분류의 마지막 번호 +1 자동 채번
|
|
3. 결과: `BD-CL.028` (CL 분류에 .027까지 있었다면)
|
|
|
|
#### 수정 시
|
|
|
|
1. 코드 필드 편집 가능
|
|
2. 저장 시 API가 변경된 코드의 **중복 검사** 수행
|
|
3. 중복이면 422 에러 + "코드 'BD-XX.nnn'는 이미 사용 중입니다" 메시지
|
|
4. 중복 아니면 정상 저장
|
|
|
|
#### 코드 변경 불가 케이스
|
|
|
|
- 같은 코드 유지 → 중복 검사 건너뜀
|
|
- 자기 자신은 중복에서 제외
|
|
|
|
---
|
|
|
|
## 6. API 엔드포인트
|
|
|
|
| Method | Path | 설명 | 화이트리스트 |
|
|
|--------|------|------|:----------:|
|
|
| GET | `/api/v1/bending-items` | 목록 (페이지네이션) | 필수 |
|
|
| GET | `/api/v1/bending-items/filters` | 필터 옵션 | 필수 |
|
|
| GET | `/api/v1/bending-items/prefixes` | 분류코드 접두사 목록 | 필수 |
|
|
| POST | `/api/v1/bending-items` | 등록 (자동 채번) | 필수 |
|
|
| GET | `/api/v1/bending-items/{id}` | 상세 조회 | 필수 |
|
|
| PUT | `/api/v1/bending-items/{id}` | 수정 (코드 중복 검사) | 필수 |
|
|
| DELETE | `/api/v1/bending-items/{id}` | 삭제 | 필수 |
|
|
|
|
> 화이트리스트: `ApiKeyMiddleware`의 `allowWithoutAuth`에 등록 필요 (Bearer 토큰 없이 API Key + X-TENANT-ID로 접근)
|
|
|
|
---
|
|
|
|
## 7. MNG→API 통신 규칙
|
|
|
|
### 7.1 Docker 환경 (로컬)
|
|
|
|
```php
|
|
$baseUrl = config('services.api.internal_url'); // https://nginx
|
|
$headers['Host'] = 'api.sam.kr'; // nginx 서버 블록 라우팅
|
|
```
|
|
|
|
### 7.2 서버 환경 (개발/운영)
|
|
|
|
```php
|
|
$baseUrl = config('services.api.base_url'); // https://api.dev.codebridge-x.com
|
|
// Host 헤더 불필요
|
|
```
|
|
|
|
### 7.3 이미지 표시
|
|
|
|
| 용도 | 라우트 | 방식 |
|
|
|------|--------|------|
|
|
| 일반 `<img>` 표시 | `/files/{id}/view` | R2 presigned URL로 redirect |
|
|
| Canvas 편집기 | `/files/{id}/proxy` | MNG 서버가 R2에서 다운로드 후 스트리밍 (CORS 우회) |
|
|
|
|
---
|
|
|
|
## 8. 마이그레이션 이력
|
|
|
|
| 날짜 | 작업 |
|
|
|------|------|
|
|
| 2026-03-21 (1차) | 기존 코드(날짜 포함 LOT 형식) → `BD-XX-nn` 변환 (265건) |
|
|
| 2026-03-21 (2차) | `BD-XX-nn` → `BD-XX.nn` 변환 (재공품과 구분자 분리) |
|
|
| 2026-03-21 (3차) | `BD-XX.nn` → `BD-XX.nnn` 3자리 변형번호 (999종 수용) |
|
|
| 2026-03-21 (4차) | 순번 없는 항목 → `.001` 통일 (대표 번호) |
|
|
|
|
```
|
|
❌ CX250722-06 (날짜 포함) — LOT 번호와 혼동
|
|
❌ BD-CX-06 (하이픈) — 재공품 BD-CX-30과 혼동
|
|
❌ BD-CX.06 (2자리) — 변형 수용량 99종 한계
|
|
✅ BD-CX.006 (점 + 3자리) — 변형 999종, 재공품과 구분 명확
|
|
```
|
|
|
|
기존 코드는 `legacy_code` 필드에 보존되어 있다.
|
|
|
|
---
|
|
|
|
## 관련 문서
|
|
|
|
- [bending-item-code-policy.md](../../standards/bending-item-code-policy.md) — 품목코드 체계 정책
|
|
- [20260321_bending_api_internal_url_fix.md](../../changes/20260321_bending_api_internal_url_fix.md) — API 연동 수정 이력
|
|
- `api/app/Models/BendingItem.php` — 1차 가공물 모델
|
|
- `api/app/Models/BendingModel.php` — 2차 가공물 모델
|
|
- `api/app/Services/BendingItemService.php` — 자동 채번/중복 검사 로직
|
|
- `api/app/Services/BendingCodeService.php` — 재공품 코드맵/LOT 채번
|
|
|
|
---
|
|
|
|
**최종 업데이트**: 2026-03-21
|