diff --git a/app/Http/Controllers/Api/V1/BendingController.php b/app/Http/Controllers/Api/V1/BendingController.php index 9bbc3775..7f03fa49 100644 --- a/app/Http/Controllers/Api/V1/BendingController.php +++ b/app/Http/Controllers/Api/V1/BendingController.php @@ -89,7 +89,7 @@ public function materialLots(Request $request): JsonResponse } /** - * LOT 번호 생성 (프리뷰 + 일련번호 확정) + * LOT 번호 생성 (일련번호 없음 — 같은 날 같은 조합은 동일 LOT) */ public function generateLotNumber(Request $request): JsonResponse { @@ -103,15 +103,11 @@ public function generateLotNumber(Request $request): JsonResponse return ['error' => 'MISSING_PARAMS', 'code' => 400, 'message' => 'prod_code, spec_code, length_code가 필요합니다.']; } - $dateCode = BendingCodeService::generateDateCode($regDate); - $lotBase = "{$prodCode}{$specCode}{$dateCode}-{$lengthCode}"; - $lotNumber = $this->service->generateLotNumber($lotBase); + $lotNumber = $this->service->generateLotNumber($prodCode, $specCode, $lengthCode, $regDate); $material = BendingCodeService::getMaterial($prodCode, $specCode); return [ - 'lot_base' => $lotBase, 'lot_number' => $lotNumber, - 'date_code' => $dateCode, 'material' => $material, ]; }, __('message.fetched')); diff --git a/app/Services/BendingCodeService.php b/app/Services/BendingCodeService.php index aa8e9a55..f360b449 100644 --- a/app/Services/BendingCodeService.php +++ b/app/Services/BendingCodeService.php @@ -2,7 +2,6 @@ namespace App\Services; -use App\Models\Orders\Order; use App\Models\Production\BendingItemMapping; class BendingCodeService extends Service @@ -154,24 +153,15 @@ public function resolveItem(string $prodCode, string $specCode, string $lengthCo } /** - * LOT 번호 생성 (일련번호 suffix 포함) + * LOT 번호 생성 (일련번호 없음 — 같은 날 같은 조합은 동일 LOT) * - * base: 'GI6317-53' → 결과: 'GI6317-53-001' + * 예: prod='C', spec='L', length='30', date='2026-03-18' → 'CL6318-30' */ - public function generateLotNumber(string $lotBase): string + public function generateLotNumber(string $prodCode, string $specCode, string $lengthCode, string $date): string { - $tenantId = $this->tenantId(); + $dateCode = self::generateDateCode($date); - // 같은 base로 시작하는 기존 LOT 수 조회 - $count = Order::withoutGlobalScopes() - ->where('tenant_id', $tenantId) - ->where('order_type_code', Order::TYPE_STOCK) - ->where('options->bending_lot->lot_number', 'LIKE', $lotBase.'-%') - ->count(); - - $seq = str_pad($count + 1, 3, '0', STR_PAD_LEFT); - - return "{$lotBase}-{$seq}"; + return "{$prodCode}{$specCode}{$dateCode}-{$lengthCode}"; } /**