feat: [QMS] 2일차 로트 추적 심사 API 구현 (Phase 1)
- QmsLotAuditService: 품질관리서 목록/상세, 8종 서류 조합, 서류 상세(2단계 로딩), 확인 토글 - QmsLotAuditController: 5개 엔드포인트 (index, show, routeDocuments, documentDetail, confirm) - FormRequest 3개: Index, Confirm, DocumentDetail 파라미터 검증 - QualityDocumentLocation: options JSON 컬럼 추가 (마이그레이션 + 모델 casts) - IQC 추적: WorkOrderMaterialInput → StockLot → lot_no → Inspection(IQC) 경로 - 비관적 업데이트: DB::transaction + lockForUpdate() 원자성 보장 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
use App\Http\Controllers\Api\V1\PerformanceReportController;
|
||||
use App\Http\Controllers\Api\V1\QmsLotAuditController;
|
||||
use App\Http\Controllers\Api\V1\QualityDocumentController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
@@ -38,3 +39,12 @@
|
||||
Route::patch('/unconfirm', [PerformanceReportController::class, 'unconfirm'])->name('v1.quality.performance-reports.unconfirm');
|
||||
Route::patch('/memo', [PerformanceReportController::class, 'updateMemo'])->name('v1.quality.performance-reports.memo');
|
||||
});
|
||||
|
||||
// QMS 로트 추적 심사
|
||||
Route::prefix('qms/lot-audit')->group(function () {
|
||||
Route::get('/reports', [QmsLotAuditController::class, 'index'])->name('v1.qms.lot-audit.reports');
|
||||
Route::get('/reports/{id}', [QmsLotAuditController::class, 'show'])->whereNumber('id')->name('v1.qms.lot-audit.reports.show');
|
||||
Route::get('/routes/{id}/documents', [QmsLotAuditController::class, 'routeDocuments'])->whereNumber('id')->name('v1.qms.lot-audit.routes.documents');
|
||||
Route::get('/documents/{type}/{id}', [QmsLotAuditController::class, 'documentDetail'])->whereNumber('id')->name('v1.qms.lot-audit.documents.detail');
|
||||
Route::patch('/units/{id}/confirm', [QmsLotAuditController::class, 'confirm'])->whereNumber('id')->name('v1.qms.lot-audit.units.confirm');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user