자재별 구매 수량 계산 시스템 구현
- 파이프: 6,000mm 단위 + 절단여유분 2mm/조각 계산 - 볼트/너트: +5% 후 4의 배수로 올림 - 가스켓: 5의 배수로 올림 - 피팅/계기/밸브: BOM 수량 그대로 - MaterialsPage에 '필요 수량' 칼럼 추가 - 엑셀 내보내기에 구매 수량 정보 포함 - 리비전 비교시 구매 수량 변화량도 계산
This commit is contained in:
32
RULES.md
32
RULES.md
@@ -143,12 +143,42 @@ python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||
4. **SQL에서 과도한 GROUP BY** - 같은 자재 분리됨
|
||||
5. **비율 기반 길이 계산** - 실제 총길이 사용해야 함
|
||||
|
||||
## 💰 **구매 수량 계산 규칙**
|
||||
|
||||
### **1. 파이프 (PIPE)**
|
||||
```javascript
|
||||
// 6,000mm 단위 판매 + 절단여유분 2mm/조각
|
||||
const cutLength = originalLength + 2; // 절단 여유분
|
||||
const pipeCount = Math.ceil(cutLength / 6000); // 올림 처리
|
||||
```
|
||||
|
||||
### **2. 피팅/계기/밸브 (FITTING/INSTRUMENT/VALVE)**
|
||||
```javascript
|
||||
// BOM 수량 그대로
|
||||
const purchaseQuantity = bomQuantity;
|
||||
```
|
||||
|
||||
### **3. 볼트/너트 (BOLT)**
|
||||
```javascript
|
||||
// +5% 후 4의 배수로 올림
|
||||
const withMargin = bomQuantity * 1.05;
|
||||
const purchaseQuantity = Math.ceil(withMargin / 4) * 4;
|
||||
// 예: 150 → 157.5 → 160 SETS
|
||||
```
|
||||
|
||||
### **4. 가스켓 (GASKET)**
|
||||
```javascript
|
||||
// 5의 배수로 올림
|
||||
const purchaseQuantity = Math.ceil(bomQuantity / 5) * 5;
|
||||
// 예: 7 → 10 EA
|
||||
```
|
||||
|
||||
## 🎯 **현재 진행 상황**
|
||||
- ✅ 자재 업로드 및 분류 시스템
|
||||
- ✅ 리비전 비교 기능
|
||||
- ✅ 파이프 길이 합산 로직 수정
|
||||
- ✅ 엑셀 내보내기 기능
|
||||
- 🚧 구매 관리 시스템 (진행 중)
|
||||
- 🚧 구매 수량 계산 시스템 (진행 중)
|
||||
|
||||
## 📚 **추가 참고사항**
|
||||
- 사용자는 가상환경에서 Python 실행을 선호
|
||||
|
||||
Reference in New Issue
Block a user