diff --git a/rules/bending-lot-numbering-policy.md b/rules/bending-lot-numbering-policy.md index f281672..8a89bd5 100644 --- a/rules/bending-lot-numbering-policy.md +++ b/rules/bending-lot-numbering-policy.md @@ -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) 매핑 데이터를 등록해야 재고생산에서 품목 자동 식별이 가능하다. diff --git a/rules/numbering-rules.md b/rules/numbering-rules.md index 0d6d22b..f2ec2c7 100644 --- a/rules/numbering-rules.md +++ b/rules/numbering-rules.md @@ -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` | — | — | > 신규 테넌트에 규칙이 없으면 각 서비스의 레거시 로직이 자동 적용된다.