fix: 결재선 중복 결재자 자동 제거

- createApprovalSteps()에서 동일한 결재자가 여러 번 추가된 경우 첫 번째만 저장
- 에러 발생 대신 자동으로 중복 필터링하여 처리

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-30 15:06:52 +09:00
parent 75576323fe
commit e1d0681f55

View File

@@ -1011,10 +1011,13 @@ private function generateDocumentNumber(int $tenantId): string
/**
* 결재 단계 생성
* 프론트엔드 호환성: step_type/approver_id 또는 type/user_id 지원
* 중복 결재자 자동 제거
*/
private function createApprovalSteps(Approval $approval, array $steps): void
{
$order = 1;
$processedApprovers = []; // 중복 체크용
foreach ($steps as $step) {
// 필드명 호환성: step_type 또는 type
$stepType = $step['step_type'] ?? $step['type'] ?? null;
@@ -1024,6 +1027,12 @@ private function createApprovalSteps(Approval $approval, array $steps): void
$stepOrder = $step['step_order'] ?? $order++;
if ($stepType && $approverId) {
// 동일 결재자 중복 건너뛰기
if (in_array($approverId, $processedApprovers, true)) {
continue;
}
$processedApprovers[] = $approverId;
ApprovalStep::create([
'approval_id' => $approval->id,
'step_order' => $stepOrder,