Files
sam-docs/features/documents
권혁성 ae7e139d12 docs: [종합정비] Phase 3 신규 도메인 기능 문서 16개 작성
- features/esign/README.md: 전자서명 (4모델, 16 API)
- features/documents/README.md: 문서관리 (12모델, EAV 기반, 15 API)
- features/ai/README.md: AI 리포트 (Gemini 2.0, 4 API)
- features/equipment/README.md: 설비관리 (MNG 전용)
- features/finance/ 9개 하위문서: 입출금, 급여, 가지급금, 세금계산서,
  악성채권, 어음, 카드, 미지급비용, 채권현황, CEO 대시보드
- features/finance/README.md 재구조화 (14개 하위문서 목록)
- features/barobill-kakaotalk/README.md 확장 (API 설정 + 세금계산서)
- rules/numbering-rules.md: 채번규칙 (6세그먼트, 원자적 UPSERT)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 18:03:25 +09:00
..

문서관리 시스템 (Document Management)

상태: API 완전 구현 최종 갱신: 2026-02-27


1. 개요

EAV(Entity-Attribute-Value) 패턴 기반의 동적 문서 관리 시스템. 문서 서식(Template)을 정의하면 해당 서식에 따라 문서를 생성·결재·관리할 수 있다. 제품 검사(FQC), 공정 검사 등 다양한 문서 유형을 하나의 시스템으로 처리한다.

핵심 기능:

  • 문서 서식(Template) 관리: 결재선, 기본필드, 섹션, 컬럼 정의
  • EAV 기반 동적 데이터 저장 (section_id + column_id + row_index + field_key)
  • 결재 워크플로우: 작성 → 검토 → 승인 (다단계)
  • FQC(제품검사) 일괄 생성 및 진행 현황
  • 첨부파일 관리 (서명, 이미지, 참조 문서)

2. 모델

서식 (Template) 계층

모델 설명
DocumentTemplate 서식 마스터 (이름, 카테고리, 회사 정보, 활성 여부)
DocumentTemplateApprovalLine 결재선 (이름, 부서, 역할, 순서)
DocumentTemplateBasicField 기본 필드 (라벨, 유형, 기본값)
DocumentTemplateSection 섹션 (제목, 이미지, 순서)
DocumentTemplateSectionField 섹션 필드 (field_key, 유형, 옵션, 필수 여부)
DocumentTemplateColumn 컬럼 (라벨, 너비, 유형, 하위 라벨)
DocumentTemplateLink 서식 간 연결

문서 (Document) 계층

모델 설명 Traits
Document 문서 인스턴스 (서식 기반, 상태, 연결 대상) BelongsToTenant, Auditable, SoftDeletes
DocumentApproval 결재 기록 (단계, 역할, 상태, 코멘트) BelongsToTenant
DocumentData EAV 데이터 (section + column + row + field_key → value) BelongsToTenant
DocumentAttachment 첨부파일 (유형: general, signature, image, reference) BelongsToTenant

문서 상태 흐름:

DRAFT → PENDING → APPROVED
                → REJECTED → DRAFT (재작성)
      → CANCELLED

컬럼 유형: text, check, complex, select, measurement


3. 서비스

서비스 주요 메서드
DocumentService list, show, create, update, destroy, submit, approve, reject, cancel, bulkCreateFqc, fqcStatus, resolve, upsert, formatTemplateForReact
DocumentTemplateService list, show

4. API 엔드포인트

서식 조회 (읽기 전용)

HTTP URI 설명
GET /v1/document-templates 서식 목록
GET /v1/document-templates/{id} 서식 상세 (필드·컬럼·섹션 포함)

문서 CRUD + 워크플로우

HTTP URI 설명
GET /v1/documents 문서 목록 (필터: status, template_id, 날짜, 검색)
POST /v1/documents 문서 생성
GET /v1/documents/{id} 문서 상세
PATCH /v1/documents/{id} 문서 수정
DELETE /v1/documents/{id} 문서 삭제
POST /v1/documents/{id}/submit 결재 요청
POST /v1/documents/{id}/approve 승인
POST /v1/documents/{id}/reject 반려
POST /v1/documents/{id}/cancel 취소/회수

특수 기능

HTTP URI 설명
POST /v1/documents/bulk-create-fqc FQC 일괄 생성
GET /v1/documents/fqc-status FQC 진행 현황
GET /v1/documents/resolve 카테고리+item_id로 문서 조회
POST /v1/documents/upsert 생성 또는 업데이트

5. FormRequest

Request 주요 검증
StoreRequest template_id (필수, exists), title, approvers[], data[] (EAV), attachments[]
UpdateRequest title, data[] (EAV), attachments[]
IndexRequest status, template_id, search, 날짜 범위, 정렬
BulkCreateFqcRequest order_id, template_id, item_count
ResolveRequest category, item_id
ApproveRequest comment (선택)
RejectRequest comment (필수)

관련 문서


최종 업데이트: 2026-02-27