Files
ax_document/과제 평가 방법/generate_report.py
dsyoon b0a2b0eec4 Initial commit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 17:58:49 +09:00

541 lines
28 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from docx import Document
from docx.shared import Pt, Inches, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn, nsdecls
from docx.oxml import parse_xml
import os
doc = Document()
style = doc.styles['Normal']
font = style.font
font.name = '맑은 고딕'
font.size = Pt(10)
style.element.rPr.rFonts.set(qn('w:eastAsia'), '맑은 고딕')
sections = doc.sections
for section in sections:
section.top_margin = Cm(2)
section.bottom_margin = Cm(2)
section.left_margin = Cm(2)
section.right_margin = Cm(2)
# ── Title ──
title = doc.add_heading('AX 과제 선정 기준 체크리스트 평가 보고서', level=0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.RIGHT
run = p.add_run('평가일: 2026년 2월 23일')
run.font.size = Pt(9)
run.font.color.rgb = RGBColor(0x66, 0x66, 0x66)
doc.add_paragraph()
def set_cell_shading(cell, color):
shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="{color}"/>')
cell._tc.get_or_add_tcPr().append(shading)
def add_eval_section(doc, num, title_text, dept, applicant, empno, summary, evaluations):
"""evaluations: list of (criteria_title, status_icon, detail_text)"""
heading = doc.add_heading(f'과제 {num}. {title_text}', level=1)
info_table = doc.add_table(rows=1, cols=4)
info_table.alignment = WD_TABLE_ALIGNMENT.LEFT
info_table.style = 'Light Grid Accent 1'
headers = ['소속', '신청자', '사번', '참여 가능 시간']
values = [dept, applicant, empno, summary]
for i, (h, v) in enumerate(zip(headers, values)):
cell = info_table.rows[0].cells[i]
cell.text = ''
p = cell.paragraphs[0]
run_h = p.add_run(f'{h}: ')
run_h.bold = True
run_h.font.size = Pt(9)
run_v = p.add_run(v)
run_v.font.size = Pt(9)
doc.add_paragraph()
eval_table = doc.add_table(rows=len(evaluations) + 1, cols=3)
eval_table.style = 'Light Grid Accent 1'
eval_table.alignment = WD_TABLE_ALIGNMENT.LEFT
hdr_cells = eval_table.rows[0].cells
hdr_texts = ['선정 기준', '판정', '평가 내용']
col_widths = [Cm(5), Cm(2), Cm(10)]
for i, (txt, w) in enumerate(zip(hdr_texts, col_widths)):
hdr_cells[i].text = ''
hdr_cells[i].width = w
p = hdr_cells[i].paragraphs[0]
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run(txt)
run.bold = True
run.font.size = Pt(9)
set_cell_shading(hdr_cells[i], '2E75B6')
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
for row_idx, (criteria, status, detail) in enumerate(evaluations, 1):
cells = eval_table.rows[row_idx].cells
cells[0].width = col_widths[0]
cells[1].width = col_widths[1]
cells[2].width = col_widths[2]
p0 = cells[0].paragraphs[0]
r0 = p0.add_run(criteria)
r0.font.size = Pt(9)
r0.bold = True
p1 = cells[1].paragraphs[0]
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
r1 = p1.add_run(status)
r1.font.size = Pt(10)
r1.bold = True
if '' in status:
set_cell_shading(cells[1], 'E2EFDA')
elif '' in status:
set_cell_shading(cells[1], 'FFF2CC')
elif '' in status:
set_cell_shading(cells[1], 'FCE4EC')
p2 = cells[2].paragraphs[0]
r2 = p2.add_run(detail)
r2.font.size = Pt(9)
doc.add_paragraph()
# ─────────────────────────────────────────────
# 과제 1: 박미경
# ─────────────────────────────────────────────
add_eval_section(
doc, 1,
'ETC마케팅본부 목표 달성 DashBoard',
'대웅제약_ETC마케팅본부_마케팅기획팀', '박미경', '2190270',
'하루 4시간 이상 (적극 참여)',
[
('① 업무 규칙·요구사항 명확성',
'✓ 명확',
'사업기 목표달성, MBO시스템, 성공모델 확산/파생사례, 검증4단계 등 4가지 항목의 데이터를 주 1회 업데이트하고 '
'사업팀/품목/PM별 필터링하여 대시보드로 공유하는 명확한 프로세스가 존재함.'),
('② 현업 참여 의지',
'✓ 적극',
'하루 4시간 이상 적극 참여 가능으로 선택. 선정 기준(1주일 매일 6시간)에는 다소 부족하나, 적극적 의지 확인됨.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV 형태로 데이터 보유. 과제 선발 후 샘플 데이터 즉시 제공 가능. '
'다만 SF CRM 데이터 자동 연계 시 SF CRM팀과의 협업 필요.'),
('④ 예상 AI Tool·인프라',
'',
'☑ BI 대시보드 (시각화 대시보드 구현)\n'
'☑ LLM (결산 보고서 자동 작성)\n'
'☑ 노코드 워크플로우 n8n (데이터 자동 업데이트)\n'
'☐ SF CRM 연동 시 사내 서버/클라우드 필요 가능'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 주 3~5시간 수기 업데이트·검수 시간 → 자동화로 대폭 단축\n'
'- 대시보드 로딩시간 3~5초 → 개선\n'
'- AI 기반 결산 자동 작성으로 보고 편의성 증대'),
('⑥ 예상 효과',
'',
'[정량적] 주 3~5시간 수작업 절감, 데이터 검수 시간 단축\n'
'[정성적] 데이터 정확성 향상, 사업부장/사업팀장/PM 보고 편의성 대폭 개선, 의사결정 속도 향상'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 외부 시스템 연동 제한: SF CRM 데이터 자동 연계 시 SF CRM팀과의 협업 및 권한 조율 필요\n'
'☐ 방대한 누적 데이터 용량으로 인한 성능 이슈 가능'),
]
)
# ─────────────────────────────────────────────
# 과제 2: 김희영
# ─────────────────────────────────────────────
add_eval_section(
doc, 2,
'MR 거래처 채권현황 실시간 조회 웹앱',
'한올_마케팅기획본부_영업관리팀', '김희영', '200056',
'본부내 자체적으로 진행 (AX특공대 불필요)',
[
('① 업무 규칙·요구사항 명확성',
'✓ 명확',
'SAP 데이터 기반 채권현황(회전일 150일 이상) 조회 → 웹앱으로 MR에게 제공하는 명확한 요구사항.'),
('② 현업 참여 의지',
'✗ 불확실',
'"본부내 자체적으로 진행(AX특공대 불필요)"로 선택. '
'AX팀과의 적극적 소통·검증 참여 의지가 불확실함. 선정 기준(1주일 매일 6시간) 충족 어려움.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'웹앱 형태 요청. 과제 선발 후 샘플 데이터 즉시 제공 가능. '
'다만 SAP 시스템 접근 및 데이터 연동이 핵심 전제조건임.'),
('④ 예상 AI Tool·인프라',
'',
'☑ 웹앱 개발 (모바일 대응)\n'
'☑ 상용 API / 사내 서버 필요 (SAP 데이터 연동)\n'
'☐ AI 요소보다 시스템 개발·연동 성격이 강함'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 건당 10분 유관부서 문의 → 모바일 즉시 조회로 전환\n'
'- 매일 평균 5건 × 10분 = 50분/일, 주 250분 절감\n'
'- MR 및 내근직 본질업무 집중 환경 구축'),
('⑥ 예상 효과',
'',
'[정량적] 주 250분(약 4.2시간) 업무시간 절감, 유관부서 문의 건수 제로화\n'
'[정성적] MR 영업현장 편의성 대폭 향상, 내근/외근 본질업무 집중도 개선'),
('⑦ 리스크·제약사항',
'✗ 높음',
'☑ 외부 시스템 연동 제한: SAP 시스템 연동이 필수이나, 영업부 SAP 사용 불가 환경\n'
'☑ AX 과제보다 IT 시스템 개발 과제에 가까움 (AI 활용 요소 미약)\n'
'☐ 참여 의지 불확실로 과제 진행 리스크'),
]
)
# ─────────────────────────────────────────────
# 과제 3: 김지숙
# ─────────────────────────────────────────────
add_eval_section(
doc, 3,
'CPS 지출보고 증빙 검토·승인 자동화',
'대웅제약_영업기획실_영업지원팀', '김지숙', '2190153',
'하루 4시간 이상 (적극 참여)',
[
('① 업무 규칙·요구사항 명확성',
'✓ 명확',
'CPS 시스템 내 상신문서 조회 → JPG 증빙파일 다운로드 → 증빙 적정성·CP 규정 준수 확인 → 승인/반려의 '
'명확한 검토 프로세스. 오류 판단 기준(촬영일자, 참석인원 대비 수량, 간이영수증 등)도 구체적.'),
('② 현업 참여 의지',
'✓ 적극',
'하루 4시간 이상 적극 참여 가능. 매일 7시간 해당 업무에 투입 중이므로 높은 참여 동기 확인됨.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV 및 이미지/스캔 파일 형태. 과제 선발 후 샘플 데이터 즉시 제공 가능.'),
('④ 예상 AI Tool·인프라',
'',
'☑ OCR (증빙 이미지 인식·판독)\n'
'☑ LLM (이상 문서 자동 선별·규정 준수 검증)\n'
'☑ 노코드 워크플로우 n8n (일괄 처리 자동화)\n'
'☐ CPS 시스템 연동 필요 시 사내 서버 필요'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 일 1,500건 × 건당 3분 수작업 → 자동 인식·선별로 대폭 단축\n'
'- 매일 7시간 → 이상 문서만 집중 검토로 업무시간 80%+ 절감 기대\n'
'- 오류 탐지율 향상 (사람 육안 → AI 자동 탐지)'),
('⑥ 예상 효과',
'',
'[정량적] 일 7시간 → 1~2시간으로 단축 (약 70~85% 절감), 월 30,000건 처리 속도 대폭 향상\n'
'[정성적] 오류 탐지 정확도 향상, 승인 지연 리스크 감소, 영업현장 지급 일정 안정화'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 개인정보 규제: 민감한 개인정보 포함 데이터 (주의 필요)\n'
'☑ 외부 시스템 연동 제한: CPS 시스템과의 연동이 필요할 수 있음\n'
'☐ 증빙 이미지 품질에 따른 OCR 정확도 변동 가능'),
]
)
# ─────────────────────────────────────────────
# 과제 4: 박지현
# ─────────────────────────────────────────────
add_eval_section(
doc, 4,
'ETC 로컬 스타 산출 자동화',
'대웅제약_영업기획실_영업지원팀', '박지현', '2230551',
'하루 2~3시간 (다른 업무 병행, 제한적 참여)',
[
('① 업무 규칙·요구사항 명확성',
'✓ 매우 명확',
'4단계 프로세스(실적 데이터 기초 작업 → 스타 파일 반영·검증 → 예외·소급 금액 반영 → 대상자 확정·리스트업)가 '
'매우 구체적. VLOOKUP/SUMIFS 등 엑셀 함수 기반 로직이 명확하게 정의되어 있음.'),
('② 현업 참여 의지',
'△ 제한적',
'"하루 2~3시간, 다른 업무 병행, 제한적 참여" 선택. '
'선정 기준(1주일 매일 6시간)에 크게 미달. 과제 진행 시 소통 시간 확보 협의 필요.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV 형태. 과제 선발 후 샘플 데이터 즉시 제공 가능. '
'다만 인사팀(영업부 담당자별 배치일자)과의 협업 필요.'),
('④ 예상 AI Tool·인프라',
'',
'☑ 노코드 워크플로우 n8n (엑셀 자동 가공·매핑)\n'
'☐ AI 요소보다 RPA/자동화 성격이 강함\n'
'☐ 복잡한 엑셀 로직의 프로그래밍 전환 필요'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 1일 8시간 수작업 → 원클릭 자동화로 획기적 단축\n'
'- 직전 3개월 파일 반복 작업 제거\n'
'- 10개 엑셀 파일 연동 자동화'),
('⑥ 예상 효과',
'',
'[정량적] 월 8시간+ 수작업 시간 절감, 파일 간 반복 작업 제거\n'
'[정성적] 수기 작업 오류 감소, 담당자 변경 시 업무 연속성 확보'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 타부서 협업: 인사팀 데이터(영업부 담당자별 배치일자) 확인 필요\n'
'☐ 참여 시간 제한적(2~3시간)으로 과제 일정 지연 리스크\n'
'☐ 복잡한 엑셀 로직 자동화 시 예외 케이스 처리 필요'),
]
)
# ─────────────────────────────────────────────
# 과제 5: 김진우(정신영) - Emma 메일링
# ─────────────────────────────────────────────
add_eval_section(
doc, 5,
'Emma 메일링 업그레이드 (해외 매체 기사 솔팅·발송)',
'엠서클_하이닥사업부_하이닥팀', '김진우(정신영)', '01534',
'진행 상황에 따라 팀장님과 논의 후 시간 조정 예정',
[
('① 업무 규칙·요구사항 명확성',
'△ 일부 애매',
'해외 매체 약 20여개 기사 솔팅 후 이메일 발송이라는 큰 틀은 있으나, '
'"선정 기준에 따른 기사 선별" 기준이 구체적이지 않음. 기사 선별 기준, UI 개편 범위 등 추가 정의 필요.'),
('② 현업 참여 의지',
'△ 불확실',
'"진행 상황에 따라 팀장님과 논의 후 시간 조정 예정"으로 기재. '
'선정 기준(1주일 매일 6시간) 충족 가능성 불확실. 사전에 AI팀 팀장님께 공유한 점은 긍정적.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV, 텍스트, 정형 DB 형태. 과제 선발 후 샘플 데이터 즉시 제공 가능.'),
('④ 예상 AI Tool·인프라',
'',
'☑ LLM (기사 선별·요약·번역)\n'
'☑ 노코드 워크플로우 n8n (크롤링·메일링 자동화)\n'
'☑ 상용 API (크롤링, 이메일 발송)\n'
'☐ IT 추진팀(기존 emma 개발팀) 협업 필요'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 기자당 약 30분 → 메일링 발송 시 5분 이내 (약 83% 단축)\n'
'- 기사 스크롤링 약 1,000여개 자동 처리'),
('⑥ 예상 효과',
'',
'[정량적] 기자당 25분 절감, 기사 1,000여개 자동 스크리닝·솔팅\n'
'[정성적] 기사 선별 품질 향상, UI 개편으로 사용자 경험 개선'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 외부 시스템 연동 제한: 기존 emma 시스템(IT 추진팀 개발)과의 연동·개편 필요\n'
'☐ 기사 선별 기준의 명확한 정의 필요 (담당자 ""에 의존 가능성)\n'
'☐ 닥터빌 홈페이지 내 페이지 제작 옵션 → 범위 확대 리스크'),
]
)
# ─────────────────────────────────────────────
# 과제 6: 김진우(정신영) - 논문 기사 자동화
# ─────────────────────────────────────────────
add_eval_section(
doc, 6,
'최신연구 논문 기사 제작 자동화',
'엠서클_하이닥사업부_하이닥팀', '김진우(정신영)', '01534',
'진행사항 확인 후 팀장님과 논의하여 시간 조정 예정',
[
('① 업무 규칙·요구사항 명확성',
'△ 일부 애매',
'과거 1차 제작 경험이 있으나, 담당자 퇴사로 홀딩 상태. '
'업그레이드 요건이 구체적이지 않으며, 기존 시스템 상태 파악이 선행되어야 함.'),
('② 현업 참여 의지',
'△ 불확실',
'"진행사항 확인 후 팀장님과 논의하여 시간 조정 예정"으로 기재. '
'선정 기준(1주일 매일 6시간) 충족 가능성 불확실.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'텍스트, 정형 DB 형태. 과제 선발 후 샘플 데이터 즉시 제공 가능. 논문 크롤링 데이터 100여개 이상.'),
('④ 예상 AI Tool·인프라',
'',
'☑ LLM (논문 요약·기사 작성)\n'
'☑ 상용 API (논문 크롤링)\n'
'☐ 하이닥 CMS 연동 필요'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 기사 1건당 4시간 → 1시간 이내 (75% 단축)\n'
'- 최신연구 논문 최근 1주일 내 100여개 이상 자동 크롤링·선별'),
('⑥ 예상 효과',
'',
'[정량적] 건당 3시간 절감, 기사 발행 속도 및 발행량 대폭 증가\n'
'[정성적] 최신 연구 트렌드 신속 반영, 기사 품질 일관성 확보'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 기존 담당자 퇴사로 기술 인수인계 이슈 (기존 시스템 상태 파악 필요)\n'
'☑ 외부 시스템 연동: 하이닥 CMS 내 기사 발행 연동 필요\n'
'☐ AI 생성 기사의 의료 정보 정확성 검증 체계 필요'),
]
)
# ─────────────────────────────────────────────
# 과제 7: 이승민
# ─────────────────────────────────────────────
add_eval_section(
doc, 7,
'처방마감자료 생성 및 메일 발송 자동화',
'대웅제약_영업기획실_영업지원팀', '이승민', '2240556',
'하루 2~3시간 (다른 업무 병행, 제한적 참여)',
[
('① 업무 규칙·요구사항 명확성',
'✓ 매우 명확',
'6단계 프로세스가 상세하게 기술됨: DCM 데이터 다운로드·검증 → 약가목록집 VLOOKUP(3차) → '
'회전관리장 조직 VLOOKUP → N/A 건 정리·메일 발송 → 재매핑 → 자동 메일 발송. '
'BIO 중복제외리스트 생성도 명확.'),
('② 현업 참여 의지',
'△ 제한적',
'"하루 2~3시간, 다른 업무 병행, 제한적 참여" 선택. '
'선정 기준(1주일 매일 6시간)에 크게 미달. 월 1회 업무이므로 집중 참여 기간 조율 가능성은 있음.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV, 사내 시스템 데이터. 과제 선발 후 샘플 데이터 즉시 제공 가능. '
'처방마감자료 25만행+, 회전관리장 20만행 이하의 대용량 데이터.'),
('④ 예상 AI Tool·인프라',
'',
'☑ 노코드 워크플로우 n8n (데이터 매핑·메일 발송 자동화)\n'
'☐ AI 요소보다 RPA/자동화 성격이 강함 (VLOOKUP 자동화, 메일 발송)\n'
'☐ 대용량 데이터 처리를 위한 서버 필요 가능'),
('⑤ 목표 달성 기준',
'✓ 명확',
'- 월 4시간+ 수작업 → 자동 매핑·메일 발송으로 대폭 단축\n'
'- VLOOKUP 1시간+ → 자동 매핑으로 수분 이내 처리\n'
'- 신규처 요청 메일 자동화, BIO 중복제외리스트 자동 생성'),
('⑥ 예상 효과',
'',
'[정량적] 월 4시간+ 절감, VLOOKUP 매핑 시간 90%+ 단축, PC 자원 점유 해소\n'
'[정성적] 처방마감자료 정확성 확보, 처방·DCM 마감 동시 진행 시 병목 해소, 재작업 최소화'),
('⑦ 리스크·제약사항',
'△ 일부',
'☑ 개인정보 규제: MR 사번 등 개인정보 포함\n'
'☑ 사내 시스템 연동: 영업 DCM, 약가목록집, 회전관리장 등 사내 시스템 데이터 접근 필요\n'
'☐ 참여 시간 제한적(2~3시간)으로 과제 일정 지연 가능'),
]
)
# ─────────────────────────────────────────────
# 과제 8: 백송이
# ─────────────────────────────────────────────
add_eval_section(
doc, 8,
'매출 대시보드 제작 (통합 데이터 시각화)',
'디엔컴퍼니_재무기획실_전략기획팀', '백송이', '2500685',
'하루 4시간 이상 (적극 참여)',
[
('① 업무 규칙·요구사항 명확성',
'△ 일부 애매',
'"아직 정형화된 틀이 없는 상태로 신규 구축을 계획"이라고 명시. '
'각 팀(전략기획팀, RPM, ME)의 데이터 취합·시각화라는 방향은 있으나, '
'지표 정의·대시보드 구조 등 구체적 요구사항 정의가 선행되어야 함.'),
('② 현업 참여 의지',
'✓ 적극',
'하루 4시간 이상 적극 참여 가능. 주 12시간을 해당 업무에 투입 중이므로 높은 참여 동기 확인됨.'),
('③ 데이터 디지털화 여부',
'✓ 즉시 가능',
'Excel/CSV 형태. 과제 선발 후 관리 파일 및 예상 결과 폼 공유 예정. '
'다만 조직별 포맷·기준이 상이하여 데이터 표준화 작업이 선행 필요.'),
('④ 예상 AI Tool·인프라',
'',
'☑ BI 대시보드 (매출 데이터 시각화)\n'
'☑ LLM (데이터 정합성 검증·지표 자동 산출)\n'
'☑ 노코드 워크플로우 n8n (데이터 자동 취합·가공)'),
('⑤ 목표 달성 기준',
'△ 구체화 필요',
'- 주 12시간 수작업 취합·가공 → 자동화로 단축 (구체적 목표 수치 미기재)\n'
'- 지표 정의 일관성 확보\n'
'- 신규 구축이므로 단계적 목표 설정 필요'),
('⑥ 예상 효과',
'',
'[정량적] 주 12시간 데이터 취합·가공 시간 절감, 보고 속도 단축\n'
'[정성적] 지표 일관성 확보, 담당자 의존도 감소, 실행 전환 속도 향상, 통합 데이터 기반 의사결정 체계 구축'),
('⑦ 리스크·제약사항',
'△ 일부',
'☐ 다부서 데이터 통합 필요 (영업부, ME팀, 전략기획팀 등 조직별 포맷 상이)\n'
'☐ 요구사항 미확정 상태에서 범위 확대 리스크 (scope creep)\n'
'☐ 신규 구축이므로 기대 수준 조율 필요'),
]
)
# ── 종합 요약 테이블 ──
doc.add_page_break()
doc.add_heading('종합 평가 요약', level=1)
summary_table = doc.add_table(rows=9, cols=9)
summary_table.style = 'Light Grid Accent 1'
summary_table.alignment = WD_TABLE_ALIGNMENT.CENTER
headers = ['과제', '① 규칙 명확성', '② 참여 의지', '③ 데이터 준비', '④ AI Tool', '⑤ 목표 기준', '⑥ 예상 효과', '⑦ 리스크']
for i, h in enumerate(headers):
cell = summary_table.rows[0].cells[i]
cell.text = ''
p = cell.paragraphs[0]
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run(h)
run.bold = True
run.font.size = Pt(8)
set_cell_shading(cell, '2E75B6')
run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
summary_data = [
['1. 박미경\nDashBoard', '', '', '', 'BI/LLM/n8n', '', '높음', ''],
['2. 김희영\n채권조회', '', '', '', '웹앱/API', '', '중간', ''],
['3. 김지숙\n증빙검토', '', '', '', 'OCR/LLM/n8n', '', '매우 높음', ''],
['4. 박지현\n스타산출', '', '', '', 'n8n/RPA', '', '높음', ''],
['5. 김진우\n메일링', '', '', '', 'LLM/n8n/API', '', '중간', ''],
['6. 김진우\n논문기사', '', '', '', 'LLM/API', '', '중간', ''],
['7. 이승민\n처방마감', '', '', '', 'n8n/RPA', '', '높음', ''],
['8. 백송이\n매출대시보드', '', '', '', 'BI/LLM/n8n', '', '높음', ''],
]
for row_idx, row_data in enumerate(summary_data, 1):
for col_idx, val in enumerate(row_data):
cell = summary_table.rows[row_idx].cells[col_idx]
cell.text = ''
p = cell.paragraphs[0]
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run(val)
run.font.size = Pt(8)
if col_idx > 0:
if val == '' or val == '매우 높음':
set_cell_shading(cell, 'E2EFDA')
elif val in ('', '중간'):
set_cell_shading(cell, 'FFF2CC')
elif val == '':
set_cell_shading(cell, 'FCE4EC')
elif val == '높음':
set_cell_shading(cell, 'E2EFDA')
# ── 종합 의견 ──
doc.add_paragraph()
doc.add_heading('종합 의견', level=2)
opinions = [
('과제 3 (김지숙 - 증빙 검토 자동화)',
'가장 높은 선정 적합도. 업무 규칙 명확, 적극적 참여 의지, OCR·LLM 등 AI 활용도 높음, '
'일 1,500건 대량 처리로 효과가 극대화됨. 개인정보 포함에 대한 보안 대책 수립 필요.'),
('과제 1 (박미경 - 목표 달성 DashBoard)',
'높은 선정 적합도. 명확한 프로세스와 적극적 참여 의지. BI 대시보드 + LLM 결산 자동 작성 조합으로 AI 활용 가치 높음. '
'SF CRM 연동 범위 사전 확정 필요.'),
('과제 4 (박지현 - 로컬 스타 산출)',
'업무 로직이 매우 명확하여 자동화 적합. 다만 참여 시간(2~3시간) 제한적이며, AI보다 RPA 성격이 강함. '
'참여 시간 확대 협의 후 선정 권장.'),
('과제 7 (이승민 - 처방마감자료)',
'업무 로직 매우 명확, 대용량 데이터 처리 자동화 효과 큼. 참여 시간 제한적(2~3시간)이나 월 1회 업무이므로 '
'집중 기간 조율 가능. 개인정보 보안 대책 수립 필요.'),
('과제 8 (백송이 - 매출 대시보드)',
'적극적 참여 의지와 높은 효과 기대. 다만 요구사항이 아직 미확정 상태이므로 '
'요건 정의 워크숍 후 착수 권장. 신규 구축 특성상 범위 관리 중요.'),
('과제 5, 6 (김진우 - 메일링/논문기사)',
'두 과제 모두 LLM 활용 가치는 있으나, 참여 의지가 불확실하고 요구사항 구체화 필요. '
'과제 6은 기존 시스템 상태 파악이 선행되어야 함. 참여 시간·요건 확정 후 재검토 권장.'),
('과제 2 (김희영 - 채권현황 조회)',
'참여 의지 불확실(AX특공대 불필요 기재), AI 활용 요소 미약(IT 시스템 개발 성격), '
'SAP 연동 제약 등으로 AX 과제 선정 부적합. IT 개발 과제로 별도 검토 권장.'),
]
for title, opinion in opinions:
p = doc.add_paragraph()
run_t = p.add_run(f'{title}: ')
run_t.bold = True
run_t.font.size = Pt(10)
run_o = p.add_run(opinion)
run_o.font.size = Pt(10)
base_dir = os.path.dirname(os.path.abspath(__file__))
output_path = os.path.join(base_dir, 'outputs', '20260223.doc')
os.makedirs(os.path.dirname(output_path), exist_ok=True)
doc.save(output_path)
print(f'Report saved: {output_path}')