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:
김보곤
2026-03-18 20:14:19 +09:00
parent 55f97f67d3
commit 8dc21bdda8
2 changed files with 7 additions and 21 deletions

View File

@@ -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'));

View File

@@ -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}";
}
/**