POSA_LEAKSMS/php
cw2007 06f96a8d09 feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰
다크 대시보드를 그대로 인쇄하던 '단순 프린트지'를 화이트 A4 전문 보고서로 대체.
?format=print 로 브라우저 print-to-PDF 하면 표지·요약·차트·서명을 갖춘 정식 문서가
나온다. 설계 3안(경영진 브리프/보안증적/비주얼 애널리틱스) 병렬 → 종합 → 구현.
실제 브라우저 렌더로 6개 섹션 전부 검증.

구성:
- 표지 마스트헤드: 대형 대상월 + 관제 판정 씰(SVG 원형 도장 — 데이터 자동 판정
  安定/注意/警報)이 시그니처. 러닝 헤더/푸터(대외비·문서번호·시스템).
- 01 경영 요약: 헤드라인 KPI 4(SMS신뢰성 게이지·총경보·누수·측정) + 자동 총평 내러티브.
- 02 월간 지표: 경보·이벤트 / 온습도 측정 2열 정의형.
- 03 추이(인라인 SVG): 일별 평균 온·습도(안전/고온/저온 밴드·임계선), 일별 경보 스택
  막대(온습도=네이비 / 누수=적색 사선 해치 — 흑백 인쇄 구분).
- 04 관제 지점별 상세 카드, 05 누수 사고 로그(지속시간·복구), 06 기준·주석 및 서명란.

구현:
- 집계를 monthly_report_data.php(공유 include)로 추출 — HTML 조회·CSV·PDF 뷰가 단일
  소스 사용(회귀 0: HTML 표 3행·요약 11카드·CSV 3행 렌더 확인). 일별 추이·누수 사고·
  판정 파생은 인쇄 뷰 전용으로 추가.
- monthly_report_print.php(A4 뷰) + report_charts.php(인라인 SVG 차트) + assets/report-print.css
  (@page A4·여백·page-break·running header/footer·print-color-adjust). app.css 다크 토큰과
  격리(.report-paper 스코프, report-print.css 단독 링크).
- 폐쇄망 준수: 외부 CDN/JS/폰트/PDF 라이브러리 0, 시스템 폰트, 인라인 SVG.
- 보안: 신규 include 3파일 직접접근 가드 + .htaccess FilesMatch 차단(monthly_report.php
  본체는 진입 페이지라 제외). sensor_label 라벨·htmlspecialchars 이스케이프.
2026-07-11 16:56:02 +09:00
..
api docs(sht30): 온습도 2번 모듈 문서를 STM32 기본 → Raspberry Pi 기본으로 정합 2026-07-10 10:42:31 +09:00
assets feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
tabs fix(dashboard): 센서 카드 정렬 — 유형 통합 그리드로 sparse/줄 안맞음 해소 2026-07-11 11:52:31 +09:00
var chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
.htaccess feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
admin_security.php feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
blocked.php feat: cafe24 관리자 UI "Slate NOC Console" 디자인시스템 통합 + 적대리뷰 18건 반영 2026-07-04 22:32:16 +09:00
config.local.example.php feat: 대시보드 예보·대응 정보 (예방 신호 + 조치 가이드) 2026-07-05 14:02:48 +09:00
config.php feat(sensor): 센서별 표시 라벨(위치·관리주체) 서버측 오버라이드 2026-07-11 11:22:40 +09:00
cron_heartbeat.php refactor(db)!: DB 테이블 전체 leak_ 접두사 통일 + 구 마이그레이션 폐기 2026-07-02 18:50:56 +09:00
dashboard.php refactor(dashboard): 탭 구조 전면 재개편(실시간/추이/이력/시스템) 2026-07-11 11:23:14 +09:00
dashboard_data.php refactor(dashboard): 탭 구조 전면 재개편(실시간/추이/이력/시스템) 2026-07-11 11:23:14 +09:00
forecast.php feat: 대시보드 예보·대응 정보 (예방 신호 + 조치 가이드) 2026-07-05 14:02:48 +09:00
login.php feat: cafe24 관리자 UI "Slate NOC Console" 디자인시스템 통합 + 적대리뷰 18건 반영 2026-07-04 22:32:16 +09:00
monthly_report.php feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
monthly_report_data.php feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
monthly_report_print.php feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
ops_checks.php docs(sht30): 온습도 2번 모듈 문서를 STM32 기본 → Raspberry Pi 기본으로 정합 2026-07-10 10:42:31 +09:00
photo.php feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
report_charts.php feat(report): 월간 보고서 PDF 저장 전용 A4 문서 뷰 2026-07-11 16:56:02 +09:00
retention_cleanup.php refactor(db)!: DB 테이블 전체 leak_ 접두사 통일 + 구 마이그레이션 폐기 2026-07-02 18:50:56 +09:00
security_evidence.php docs(sht30): 온습도 2번 모듈 문서를 STM32 기본 → Raspberry Pi 기본으로 정합 2026-07-10 10:42:31 +09:00
setup_hash.php chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
setup_mfa.php feat: cafe24 관리자 UI "Slate NOC Console" 디자인시스템 통합 + 적대리뷰 18건 반영 2026-07-04 22:32:16 +09:00
setup_wizard.php feat: cafe24 관리자 UI "Slate NOC Console" 디자인시스템 통합 + 적대리뷰 18건 반영 2026-07-04 22:32:16 +09:00
sms_send.php feat(sensor): 센서별 표시 라벨(위치·관리주체) 서버측 오버라이드 2026-07-11 11:22:40 +09:00
test_mobile.php feat(deploy): 기기별 턴키 배포 번들 + Pi OS 하드닝 + 원샷 설치 2026-07-02 18:51:46 +09:00