From 7cd0aab8843328f19f905956faac96ea81addece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=98=81=EB=B3=B4?= Date: Sat, 21 Mar 2026 15:29:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20[=EC=A0=88=EA=B3=A1]=20bending=5Fit?= =?UTF-8?q?ems=20code=EB=A5=BC=20'BD'=20=EB=8B=A8=EC=9D=BC=EA=B0=92?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bending_items.code: prod+spec(CP,RS 등) → 'BD' (절곡품 공통 접두사) - bending_models 패턴(GR/SB/BB)과 동일 레벨로 통일 - import 스크립트 3개 + BendingCodeService.resolveItem 수정 - 마이그레이션 SQL 업데이트 - DB 266건 업데이트 완료 --- app/Console/Commands/BendingCleanReimport.php | 2 +- app/Console/Commands/BendingImportMissing.php | 2 +- app/Console/Commands/MigrateBendingItemsToNewTable.php | 2 +- app/Services/BendingCodeService.php | 4 ++-- ...3_21_100000_separate_code_and_lot_no_in_bending_tables.php | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Console/Commands/BendingCleanReimport.php b/app/Console/Commands/BendingCleanReimport.php index 8297dbc5..da1f64fd 100644 --- a/app/Console/Commands/BendingCleanReimport.php +++ b/app/Console/Commands/BendingCleanReimport.php @@ -105,7 +105,7 @@ private function importItem(object $row): BendingItem $bi = BendingItem::create([ 'tenant_id' => $this->tenantId, - 'code' => mb_substr($code, 0, 2), + 'code' => 'BD', 'lot_no' => $code, 'legacy_code' => "CHANDJ-{$row->num}", 'legacy_bending_id' => $row->num, diff --git a/app/Console/Commands/BendingImportMissing.php b/app/Console/Commands/BendingImportMissing.php index 593f27c2..ab5d3c44 100644 --- a/app/Console/Commands/BendingImportMissing.php +++ b/app/Console/Commands/BendingImportMissing.php @@ -77,7 +77,7 @@ private function importItem(object $row): BendingItem $bi = BendingItem::create([ 'tenant_id' => $this->tenantId, - 'code' => mb_substr($code, 0, 2), + 'code' => 'BD', 'lot_no' => $code, 'legacy_code' => "CHANDJ-{$row->num}", 'legacy_bending_id' => $row->num, diff --git a/app/Console/Commands/MigrateBendingItemsToNewTable.php b/app/Console/Commands/MigrateBendingItemsToNewTable.php index dedfed1c..d68f2c21 100644 --- a/app/Console/Commands/MigrateBendingItemsToNewTable.php +++ b/app/Console/Commands/MigrateBendingItemsToNewTable.php @@ -90,7 +90,7 @@ private function migrateItem(Item $item, int $tenantId): BendingItem $bi = BendingItem::create([ 'tenant_id' => $tenantId, - 'code' => mb_substr($item->code, 0, 2), + 'code' => 'BD', 'lot_no' => $item->code, 'legacy_code' => $item->code, 'legacy_bending_id' => $opts['legacy_bending_num'] ?? null, diff --git a/app/Services/BendingCodeService.php b/app/Services/BendingCodeService.php index 387f3b25..da8f7d4f 100644 --- a/app/Services/BendingCodeService.php +++ b/app/Services/BendingCodeService.php @@ -134,9 +134,9 @@ public function getCodeMap(): array */ public function resolveItem(string $prodCode, string $specCode, string $lengthCode): ?array { - // 1차: code(코드 체계) + length_code로 조회 + // 1차: lot_no 앞 2자리(prod+spec) + length_code로 조회 $item = BendingItem::where('tenant_id', $this->tenantId()) - ->where('code', "{$prodCode}{$specCode}") + ->where('lot_no', 'like', "{$prodCode}{$specCode}%") ->where('length_code', $lengthCode) ->where('is_active', true) ->first(); diff --git a/database/migrations/2026_03_21_100000_separate_code_and_lot_no_in_bending_tables.php b/database/migrations/2026_03_21_100000_separate_code_and_lot_no_in_bending_tables.php index 97a18a0d..39aeee21 100644 --- a/database/migrations/2026_03_21_100000_separate_code_and_lot_no_in_bending_tables.php +++ b/database/migrations/2026_03_21_100000_separate_code_and_lot_no_in_bending_tables.php @@ -15,7 +15,7 @@ public function up(): void }); // 기존 code → lot_no 이관, code에는 앞 2자리(prod+spec)만 남기기 - DB::statement("UPDATE bending_items SET lot_no = code, code = LEFT(code, 2) WHERE lot_no IS NULL"); + DB::statement("UPDATE bending_items SET lot_no = code, code = 'BD' WHERE lot_no IS NULL"); // unique 제약 변경: code → lot_no Schema::table('bending_items', function (Blueprint $table) {