feat: SWG 가스켓 전체 구성 정보 표시 개선
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled

- H/F/I/O SS304/GRAPHITE/CS/CS 패턴에서 4개 구성요소 모두 표시
- 기존 SS304 + GRAPHITE → SS304/GRAPHITE/CS/CS로 완전한 구성 표시
- 외부링/필러/내부링/추가구성 모든 정보 포함
- 구매수량 계산 모달에서 정확한 재질 정보 확인 가능
This commit is contained in:
Hyungi Ahn
2025-08-30 14:23:01 +09:00
parent 78d90c7a8f
commit 4f8e395f87
84 changed files with 16297 additions and 2161 deletions

View File

@@ -4,12 +4,12 @@
/**
* 파이프 구매 수량 계산
* @param {number} lengthMm - 파이프 총 길이 (mm)
* @param {number} totalLengthMm - 파이프 총 길이 (mm)
* @param {number} quantity - BOM 수량 (개수)
* @returns {object} 구매 계산 결과
*/
export const calculatePipePurchase = (lengthMm, quantity) => {
if (!lengthMm || lengthMm <= 0 || !quantity || quantity <= 0) {
export const calculatePipePurchase = (totalLengthMm, quantity) => {
if (!totalLengthMm || totalLengthMm <= 0 || !quantity || quantity <= 0) {
return {
purchaseQuantity: 0,
standardLength: 6000,
@@ -18,17 +18,18 @@ export const calculatePipePurchase = (lengthMm, quantity) => {
};
}
// 절단 여유분: 조각마다 2mm 추가
const cutLength = lengthMm + (quantity * 2);
// 절단 여유분: 절단 개수만큼 3mm 추가 (백엔드와 동일)
const cuttingLoss = quantity * 3;
const requiredLength = totalLengthMm + cuttingLoss;
// 6,000mm 단위로 올림 계산
const pipeCount = Math.ceil(cutLength / 6000);
const pipeCount = Math.ceil(requiredLength / 6000);
return {
purchaseQuantity: pipeCount,
standardLength: 6000,
cutLength: cutLength,
calculation: `${lengthMm}mm + ${quantity * 2}mm(여유분) = ${cutLength}mm → ${pipeCount}`
cutLength: requiredLength,
calculation: `${totalLengthMm}mm + ${cuttingLoss}mm(절단손실) = ${requiredLength}mm → ${pipeCount}`
};
};