fix: [bending] LOT 채번에서 일련번호 제거
- generateLotNumber() 시그니처 변경: lotBase → prod/spec/length/date - 일련번호(-001) 로직 제거: 같은 날 같은 조합은 동일 LOT - generate-lot API 응답에서 lot_base/date_code 필드 제거 - 미사용 Order 모델 import 제거
This commit is contained in:
@@ -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'));
|
||||
|
||||
@@ -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}";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user