docs: [numbering] 재공품 LOT 일련번호 제거

- 담당자 피드백: 같은 날 같은 조합은 동일 LOT 번호 사용
- sequence 세그먼트 제거, 포맷: {prod}{spec}{date}-{length}
- bending-lot-numbering-policy 일련번호 섹션 삭제
This commit is contained in:
김보곤
2026-03-18 20:00:16 +09:00
parent 88b44fe766
commit 05cdc6836c
2 changed files with 18 additions and 34 deletions

View File

@@ -14,7 +14,7 @@
### 1.2 핵심 원칙
- LOT 번호는 **제품 + 종류 + 날짜 + 모양&길이 + 일련번호**로 구성
- LOT 번호는 **제품 + 종류 + 날짜 + 모양&길이**로 구성 (일련번호 없음)
- 현재 경동기업 전용 코드 체계이며, 타 테넌트는 별도 채번 규칙이 필요할 수 있음
- 향후 MNG 채번 규칙 관리 기능으로 테넌트별 설정 가능하도록 확장 예정
@@ -23,16 +23,17 @@
## 2. LOT 번호 구조
```
G I 4A05 - 53 - 001
│ │ │ │
│ │ │ │ └── 일련번호 (001~)
G I 4A05 - 53
│ │ │ │
│ │ │ └── 모양&길이 코드
│ │ └── 날짜 코드 (4자리)
│ └── 종류 코드
└── 제품 코드
```
**예시**: `GI4A05-53-001` = 연기차단재 + 화이바원단(W50) + 2024년10월05일 + W50×3000 + 1번째
**예시**: `GI4A05-53` = 연기차단재 + 화이바원단(W50) + 2024년10월05일 + W50×3000
> 같은 날 같은 조합은 동일 LOT 번호를 사용한다. 일련번호는 부여하지 않는다.
---
@@ -181,19 +182,7 @@ G I 4A05 - 53 - 001
---
## 7. 일련번호
같은 LOT 베이스(`제품+종류+날짜-길이`)에 대해 001부터 순차 부여한다.
```
GI6317-53-001 ← 1번째
GI6317-53-002 ← 2번째
GI6317-53-003 ← 3번째
```
---
## 8. 구현 위치
## 7. 구현 위치
| 항목 | 파일 |
|------|------|
@@ -206,9 +195,9 @@ GI6317-53-003 ← 3번째
---
## 9. 향후 계획
## 8. 향후 계획
### 9.1 MNG 채번 규칙 관리로 전환
### 8.1 MNG 채번 규칙 관리로 전환
현재 `BendingCodeService`에 하드코딩된 코드맵을 MNG의 채번 규칙 관리 기능으로 전환하여 테넌트별로 설정 가능하게 한다.
@@ -219,7 +208,7 @@ GI6317-53-003 ← 3번째
→ 테넌트마다 다른 제품/종류/길이 코드 설정 가능
```
### 9.2 품목 매핑 데이터 등록
### 8.2 품목 매핑 데이터 등록
`bending_item_mappings` 테이블에 LOT 코드 조합 → 품목(items) 매핑 데이터를 등록해야 재고생산에서 품목 자동 식별이 가능하다.

View File

@@ -213,17 +213,17 @@ URL: admin.codebridge-x.com/numbering-rules
**결과:** `WO-20260317-0001`
### 5.5 재공품 로트번호 ({prod}{spec}{date}-{length}-NNN)
### 5.5 재공품 로트번호 ({prod}{spec}{date}-{length})
> 절곡품 LOT 번호. 제품+종류+날짜+길이 조합별 독립 시퀀스.
> 절곡품 LOT 번호. 제품+종류+날짜+길이 코드를 조합한 고정 번호.
> 날짜코드는 `BendingCodeService::generateDateCode()`가 생성한 4자리 압축 포맷.
> 같은 날 같은 조합은 동일 LOT 번호를 사용한다 (일련번호 없음).
| 항목 | 값 |
|------|------|
| 규칙명 | `5130 재공품 로트번호` |
| 문서유형 | `stock_production` (재고생산) |
| 리셋 주기 | `daily` (일별) |
| 시퀀스 자릿수 | `3` |
| 리셋 주기 | — (시퀀스 미사용) |
**패턴:**
@@ -233,15 +233,11 @@ URL: admin.codebridge-x.com/numbering-rules
{ "type": "param", "key": "spec_code", "default": "M" },
{ "type": "param", "key": "date_code", "default": "6318" },
{ "type": "separator", "value": "-" },
{ "type": "param", "key": "length_code", "default": "30" },
{ "type": "separator", "value": "-" },
{ "type": "sequence" }
{ "type": "param", "key": "length_code", "default": "30" }
]
```
**결과:** `GI6318-53-001`, `GI6318-53-002`, ... (연기차단재 화이바원단 W50×3000)
**scope_key:** 4개 param 값이 누적되어 `GI631853`처럼 조합별 독립 시퀀스 유지.
**결과:** `GI6318-53` (연기차단재 화이바원단 W50×3000, 2026-03-18)
**호출 예시:**
@@ -334,8 +330,7 @@ MySQL의 `ON DUPLICATE KEY UPDATE`로 Atomic 연산을 보장한다. 동시 요
**scope_key 분리**: `param`, `mapping` 세그먼트 값이 **누적 결합**되어 scope_key로 저장된다. 복수 param이 있으면 조합별 독립 시퀀스를 유지한다.
1: 수주 `KD-SS-260317-01``KD-TE-260317-01`은 scope_key가 `SS`, `TE`로 각각 독립 시퀀스.
예 2: 재공품 `GI6318-53-001``RM6318-30-001`은 scope_key가 `GI631853`, `RM631830`으로 조합별 독립.
예: 수주 `KD-SS-260317-01``KD-TE-260317-01`은 scope_key가 `SS`, `TE`로 각각 독립 시퀀스.
---
@@ -348,7 +343,7 @@ MySQL의 `ON DUPLICATE KEY UPDATE`로 Atomic 연산을 보장한다. 동시 요
| 1 | 5130 견적번호 | quote | `KD-PR-260317-01` | 일별 | 2 |
| 2 | 5130 수주 로트번호 | order | `KD-SS-260317-01` | 일별 | 2 |
| 3 | 원자재 로트번호 | material_receipt | `260317-01` | 일별 | 2 |
| 4 | 5130 재공품 로트번호 | stock_production | `RM6318-30-001` | 일별 | 3 |
| 4 | 5130 재공품 로트번호 | stock_production | `RM6318-30` | | |
> 신규 테넌트에 규칙이 없으면 각 서비스의 레거시 로직이 자동 적용된다.