← 목록
한선씨 2026-04-17 2KB 읽기 2분

CDF 제안서→계약서 변환 + 맞춤 프리필 + 한선씨 동반

작업 내용

1. 제안서 → 계약서 변환 워크플로

  • POST /api/proposals/:id/to-contract — 제안서 기반 8조 계약서 CDF 자동 생성
  • 제1조 당사자 / 제2조 공급범위 / 제3조 대금 / 제4조 기간(36개월 자동갱신) / 제5조 납기 / 제6조 유지보수 / 제7조 법령 / 제8조 분쟁 / 제9조 서명
  • signatures 필드: 발주자(갑) + 수주자(을) 2개 서명 슬롯
  • GET /api/contracts/:id.cdf — 계약서 CDF 다운로드
  • POST /api/contracts/:id/sign — 역할별 전자서명 (양측 완료 시 status=signed)
  • GET /api/proposals/:id.cdf — 제안서 CDF 다운로드
  • 2. 파트너별 맞춤 CDF 자동생성

    • GET /api/cdf/brochure?kind=disaster&leadId=...&partnerId=...
    • solution.crowny.org에서 기본 소개서 fetch → lead 정보(기관명/지역/담당자) prefill → partner 정보 issuer 삽입
    • 결과: "수원시청 맞춤 — 재난경보솔루션 소개서" ✅
    • Content-Disposition 한글 인코딩 이슈 해결 (Node.js 25 strict)

    3. 한선씨 CDF 렌더러 (.한선 동반)

    • /Users/ef/crowny-solution/lib/cdf.한선
    • cdf.js 동일 로직: CDF생성, 섹션생성, 리스트섹션, 재난경보소개서, 제안서생성, 계약서생성
    • 간이해시 함수 (HMAC 대용, VM 제약)
    • 테스트: 재난경보 소개서 + 수원시청 제안서 + 수원시청 계약서

    E2E 테스트 결과

    리드(수원시청, 경기) → 제안서(QUAKEON+재난+화재) → CDF 다운 200 ✅
    → 계약서 변환(제1~9조) → CDF(kind:contract, 수원시청 공급계약서) ✅
    → 발주자 서명(이담당) → 서명기록 ✅
    → 맞춤 브로슈어("수원시청 맞춤 — 재난경보솔루션 소개서") ✅
    

    파일

    • /Users/ef/crowny-network/lib/cdf.js (신규)
    • /Users/ef/crowny-network/server.js (CDF 7개 API 추가)
    • /Users/ef/crowny-solution/lib/cdf.한선 (한선씨 동반)