feat: 작업일지/중간검사 설정을 ProcessStep → Process 레벨로 이동

- Process 모델에 document_template_id, needs_work_log, work_log_template_id 추가
- ProcessStep에서 해당 필드 제거
- WorkOrderService의 검사 관련 3개 메서드(getInspectionTemplate, resolveInspectionDocument, createInspectionDocument) 공정 레벨 참조로 변경
- ProcessService eager loading에 documentTemplate, workLogTemplateRelation 추가
- FormRequest 검증 규칙 이동 (ProcessStep → Process)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 09:51:35 +09:00
parent bb457d4ca8
commit 1d7ef66d19
10 changed files with 133 additions and 84 deletions

View File

@@ -7,6 +7,7 @@
use App\Traits\ModelTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -26,6 +27,9 @@ class Process extends Model
'process_type',
'department',
'work_log_template',
'document_template_id',
'needs_work_log',
'work_log_template_id',
'required_workers',
'equipment_info',
'work_steps',
@@ -39,9 +43,26 @@ class Process extends Model
protected $casts = [
'work_steps' => 'array',
'is_active' => 'boolean',
'needs_work_log' => 'boolean',
'required_workers' => 'integer',
];
/**
* 중간검사 양식
*/
public function documentTemplate(): BelongsTo
{
return $this->belongsTo(Documents\DocumentTemplate::class);
}
/**
* 작업일지 양식 (관계명: work_log_template 컬럼과 충돌 방지)
*/
public function workLogTemplateRelation(): BelongsTo
{
return $this->belongsTo(Documents\DocumentTemplate::class, 'work_log_template_id');
}
/**
* 공정 자동 분류 규칙 (패턴 규칙)
*/

View File

@@ -2,7 +2,6 @@
namespace App\Models;
use App\Models\Documents\DocumentTemplate;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -18,7 +17,6 @@ class ProcessStep extends Model
'is_required',
'needs_approval',
'needs_inspection',
'document_template_id',
'is_active',
'sort_order',
'connection_type',
@@ -41,12 +39,4 @@ public function process(): BelongsTo
{
return $this->belongsTo(Process::class);
}
/**
* 문서 양식 (검사 시 사용할 템플릿)
*/
public function documentTemplate(): BelongsTo
{
return $this->belongsTo(DocumentTemplate::class);
}
}