#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""预填大客户部11月W1周会纪要。"""
import os, shutil
import openpyxl
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils import get_column_letter

SRC = '/Users/liuxinyuan/.hermes/profiles/zone-b/cache/documents/native-inputs/32b85d99f6d60e2fb66d19dfc65145ad0ea02eed8d85eebafe83cabfdf454b77/doc_324f6ace8fa4_大客户部月会纪要(20261102).xlsx'
OUT = '/Users/liuxinyuan/Desktop/Hermes输出-工作类/经营分析/会议纪要/大客户部周会纪要(20261109)_预填.xlsx'
os.makedirs(os.path.dirname(OUT), exist_ok=True)
shutil.copyfile(SRC, OUT)

wb = openpyxl.load_workbook(OUT)
for sn in ['11月W1']:
    if sn in wb.sheetnames:
        del wb[sn]
ws = wb.create_sheet('11月W1')

NAVY = '0B2A4A'
BLUE = '1F6FEB'
PALE = 'F3F7FC'
GREY = '5B6B7F'
WHITE = 'FFFFFF'
thin = Side(style='thin', color='BFCBD9')
border = Border(left=thin, right=thin, top=thin, bottom=thin)

ws.merge_cells('A1:I1')
ws['A1'] = '11月第1周周会纪要'
ws['A1'].font = Font(name='微软雅黑', bold=True, size=16, color=NAVY)
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
ws.row_dimensions[1].height = 30

# header rows
head_info = [
    (2, '会议主题', '大客户周例会', '会议时间', '11月9日 8：30'),
    (3, '会议主持', '刘新元', '纪要纪录', '刘新元'),
    (4, '参会人员', '赵云浩、刘子研', '缺席人员', ''),
]
for r, k1, v1, k2, v2 in head_info:
    ws.cell(r, 1, k1).font = Font(name='微软雅黑', bold=True, size=9, color=NAVY)
    ws.merge_cells(start_row=r, start_column=1, end_row=r, end_column=2)
    ws.cell(r, 3, v1).font = Font(name='微软雅黑', size=9, color=NAVY)
    ws.merge_cells(start_row=r, start_column=3, end_row=r, end_column=5)
    ws.cell(r, 6, k2).font = Font(name='微软雅黑', bold=True, size=9, color=NAVY)
    ws.cell(r, 6).alignment = Alignment(horizontal='right', vertical='center')
    ws.cell(r, 7, v2).font = Font(name='微软雅黑', size=9, color=NAVY)
    ws.merge_cells(start_row=r, start_column=7, end_row=r, end_column=9)
    for c in range(1, 10):
        ws.cell(r, c).border = border
        ws.cell(r, c).alignment = Alignment(vertical='center', wrap_text=True)
    ws.row_dimensions[r].height = 22

# summary
ws.cell(5, 1, '重点事项摘要').font = Font(name='微软雅黑', bold=True, size=10, color=NAVY)
ws.merge_cells('A5:A5')
ws.merge_cells('B5:I5')
summary = '''一、11月月会承接
1、11月重点拜访：赵云浩—老客户明日达、万孚、安图、圣湘、普泰，新客户科蒂亚；刘子研—老客户天隆、丹威、丽珠、西安天隆、佰奥莱博，新客户新产业、之江、艾德。
2、回款：圣湘、复星、丹威12月内达成回款计划；加强日常对账、催收及采购客情。
3、2027计划：11月底出第二版；存量商机60-80%、突破性商机10-30%、探索性商机10%左右。

二、11月W1关键进展/卡点
4、圣湘呼六预混 MD2104-000838-DB：CY5线型异常，4℃7d荧光下降19%（客户标准15%），空白起线；客户尚未筛到合格酶原料，按问题优先级继续优化。
5、圣湘呼吸道冻干：NA版本仍有背景菌污染（流感嗜血、肺克、鲍曼、铜绿），已安排重产洁净批次；公卫预计一周1500ml、两周4000ml，质量协议仍待客户反馈。
6、明日达829冻干样品待客户测试；M2244-043801客诉复测不稳定，客户要求补37℃加速3-5d；安图E10价格拉扯；万孚新酶尚未完成POCT仪器测试；明德冻干球堆叠层数待验证。
7、刘子研：之江003006签约2.5万T，11/1发2万T、11/4发100T小样，剩余5000T待小样通过；科华Tth三靶标不起线，内部改引探；西安天隆ATP测试意愿低，Tth目标两管/1.5h/2-8℃18个月；佰奥莱博冻干后性能下降，客户要CAPA；天隆003006出货标准待定。'''
ws['B5'] = summary
ws['B5'].font = Font(name='微软雅黑', size=8.2, color='1F2937')
ws['B5'].alignment = Alignment(wrap_text=True, vertical='top')
ws['B5'].fill = PatternFill('solid', fgColor=PALE)
for c in range(1, 10):
    ws.cell(5, c).border = border
ws.row_dimensions[5].height = 205

# section title
ws.merge_cells('A6:I6')
ws['A6'] = '周会内容'
ws['A6'].font = Font(name='微软雅黑', bold=True, size=10, color=WHITE)
ws['A6'].fill = PatternFill('solid', fgColor=NAVY)
ws['A6'].alignment = Alignment(vertical='center')
ws.row_dimensions[6].height = 22

headers = ['责任人', '客户名称', '项目名称', '上周工作计划', '本周完成情况', '11月月会计划/进度', '备注/联系人', '下周工作计划', '所需支持/协同']
for j, h in enumerate(headers, 1):
    c = ws.cell(7, j, h)
    c.font = Font(name='微软雅黑', bold=True, size=8.5, color=WHITE)
    c.fill = PatternFill('solid', fgColor=NAVY)
    c.alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
    c.border = border
ws.row_dimensions[7].height = 34

rows = [
    # 赵云浩
    ('赵云浩', '北京明日达', 'DNA/RNA预混项目沟通',
     '跟进客诉验证，反馈我司验证结果，形成下一步测试方案（M2244-043801）',
     '已完成反馈：客户引探可复现20260208批低浓度曲线下降；两次复测不能稳定复现；20260527/20261026批无明显异常；客户要求在现有模型上增加37℃加速3-5d，内部已安排。',
     '跟进M2244客诉解决与批次排查', '刘河冰', '明确客户新批次验证结果', '技术支持/研发'),
    ('赵云浩', '北京明日达', 'DNA快速冻干项目',
     '跟进内部帮客户冻干验证进度 FMD5104-000829-X',
     '已完成。内部已安排发出用客户物料冻干的测试试剂，待客户测试结果反馈。',
     '跟进内部冻干方案输出', '刘河冰', '跟进内部冻干客户端测试结果', '技术支持/研发'),
    ('赵云浩', '郑州安图', 'Tth/直扩',
     '跟进新的采购订单 E10-000725',
     '已部分完成。沟通到新采购订单，内部已备货成品40ml、物料500ml，目前双方价格拉扯中。',
     '跟进新采购和测试结果', '李江浩', '跟进新采购试剂进度及新测试结果', '技术支持/研发'),
    ('赵云浩', '广州万孚', 'HBV/HIV/一代测序',
     '跟进污水项目测试结果 FMD5084-000903/FMD0104-002401/FMD5104-014429',
     '未完成。客户正在测试污水项目，预计下周反馈。',
     '跟进客户测试结果', '朱兴彪', '跟进污水项目测试结果', '技术支持'),
    ('赵云浩', '广州万孚', '二代POCT',
     '跟进FE20-50异常排查/FE20-NA采购进度',
     '未完成。客户近两周持续备货出货，新酶尚未完成POCT仪器测试；按客户要求发出FE20-NA小样测背景核酸残留。',
     '跟进POCT结果；发NA测试小样', '高鑫凤', '跟进POCT仪器测试结果', '技术支持/研发'),
    ('赵云浩', '湖南圣湘', '呼吸道冻干',
     '跟进客户测试结果 FMD5104-014429-X',
     '已部分完成。曾伊婷老师个别靶标在超快速程序荧光值下降，客户要测单酶，已提单；尹康老师NA版本仍有背景菌污染（流感嗜血、肺克、鲍曼、铜绿），已安排重产洁净批次。',
     '形成新测试方案给客户', '林骄阳/尹康', '跟进呼六预混测试结果/冻干方案确定', '技术支持/研发'),
    ('赵云浩', '湖南圣湘', '脓毒症报证项目',
     '跟进新的采购预期 FM2181-4-NA-020303',
     '未完成。客户在和计划部门沟通采购预期。',
     '跟进采购预期/交付', '罗诗雅', '跟进采购预期落地', '技术支持/供应链'),
    ('赵云浩', '湖南圣湘', '呼六预混',
     '跟进客户测试反馈',
     '已完成。客户新试剂 MD2104-000838-DB：CY5线型异常；4℃7d荧光下降19%（标准15%）；空白起线（内标）。客户尚未筛到合格酶原料，我们仍有优化机会。',
     '按问题优先级继续优化；跟进冻干方案', '黄山/谭德勇', '跟进呼六预混客户测试结果/冻干测试方案确定', '技术支持/研发'),
    ('赵云浩', '湖南圣湘', '妇幼HPV/Q-POC',
     '给客户发出新的测试试剂',
     '已部分完成。给黄山老师提单安排新单酶测试 FE20-014301-42/FE20-002902-30，客户搭配 FMD5084-000903/FMD5104-020301 测试。',
     '跟进Q-POC测试结果', '谭德勇/黄山', '跟进q-poc新项目测试结果', '技术支持/研发'),
    ('赵云浩', '湖南圣湘', '公卫项目组',
     '跟进M2181-4-NA-095203采购订单；跟进质量协议',
     '已部分完成。预计一周内1500ml、两周内4000ml采购订单；下周安排预测订单备货8000ml；质量协议仍待客户反馈。',
     '推进订单落地；质量协议', '曾婧', '跟进订单与质量协议', '质量/供应链'),
    ('赵云浩', '武汉明德', '公卫',
     '跟进公卫测试结果反馈',
     '已完成线下拜访。M2274-088901/MD2104-092401结果预计本月中旬；了解到新项目RT预混/DNA预混单组份需求，计划下周发测试试剂。',
     '跟进测试结果形成采购', '徐俊', '跟进测试结果反馈', '技术支持/研发'),
    ('赵云浩', '武汉明德', '甲乙新冻干',
     '跟进客户生产批间异常 FMD5104-000829-DB',
     '已完成。客户补测异常批次4℃加速2d无异常；未发现CT滞后；客户怀疑冻干球堆叠层数过多，要求不超过3-4层，周一有结果；同步排查冻干机。',
     '解决冻干后重复性问题', '汪豪英/席菱', '跟进堆叠层数/冻干机验证结果', '技术支持/研发'),
    ('赵云浩', '郑州纳克', 'DNA预混/RT预混/冻干',
     '跟进客诉问题',
     '未完成。双方进一步优化验证中，已发试剂 FMD5084-000903/000901 给客户测试。',
     '跟进测试结果', '杨楠', '跟进客户测试结果反馈', '技术支持/质量'),
    ('赵云浩', '郑州中道', '提取试剂/非瘟试剂/回款',
     '跟进回款',
     '已部分完成。剩余已开票金额1万元，本月要求客户回完。',
     '跟进全部回款', '侯秀云/任保红', '跟进付款到账进度', '财务'),
    ('赵云浩', '洛阳普泰', 'DNA/RT预混',
     '跟进M2274-073702较对照性能异常',
     '已部分完成。已发EA/ET两种添加剂，客户测试作用不明显；EA有一定作用但CT提前不多，ET相反；计划另发GC增强剂和含GC增强剂预混液。',
     '跟进GC增强剂测试', '刘思晨/卞军平', '跟进给客户发出测试试剂', '技术支持/研发'),
    ('赵云浩', '许昌学院', '恒温扩增',
     '跟进预付到账',
     '已完成。郑州海关付款已到账。',
     '跟进新需求', '王德国', '—', '—'),
    # 刘子研
    ('刘子研', '上海之江', '登革热四亚型项目',
     '等待张阳明测试MD2104-092401和003006新批次；拜访采购曹老师谈价格和供应商模式',
     '已完成。003006比092401表现好；092401四个亚型滞后约5个Ct，Ct40多无法判阳；客户决定采购003006。曹丽君本周采购2.5万T，合同已签；11/1发2万T（261014/261012），11/4发100T小样，11/5发剩余5000T（待小样通过）。',
     '推进登革热成交；003006 2.5万T交付', '张阳明/曹丽君', '周三发小样，跟进后发5000T同批次', '供应链/技术支持'),
    ('刘子研', '上海科华', 'DNA病毒血筛/ Tth大血筛',
     '发Tth资料给新旺总确认；拜访於老师推进Tth测试；跟进M4211-3 HBV测试',
     'DNA血筛原料匹配阶段（提取试剂未回）；M4211-3希望单管，需COA/MSDS/稳定性资料；Tth三靶标（M5101-003001/136102/136104）均不起线，内部决定改引探；客户要求3x/4x、2-8℃、三管以内、今年内定体系。',
     '推进Tth/血筛测试；补资料', '江雁翔/於大春', '整理M4211-3资料发江老师；发Tth三款测试', '技术支持/研发'),
    ('刘子研', '西安天隆', 'ATP/Tth血筛',
     '整理荧光素酶资料并现场展示；与新旺总确认Tth要求',
     '王新旺：目标两管/1.5h/2-8℃18个月；让步三管/-20℃18个月/2-8℃3个月；推荐两款镁离子Tth+一款锰离子Tth。李红东：ATP测试意愿低，天隆Biolum成熟，资料无法支撑系统LOD/精密度/稳定性对比；计划1-2个月继续跟进。',
     'ATP/Tth推进', '王新旺/李红东', '了解ATP物料来源；完善荧光素酶对标资料', '技术支持/研发'),
    ('刘子研', '西安佰奥莱博', '宠物真菌/冻干项目',
     '跟进FMD5084-000901、FM5144冻干后性能异常；核查标签；了解测试问题；拜访采购回款',
     '颜艳：大标签（包装袋）需改、小标签（试剂管）实际；尾料冻干后性能下降，客户可接受波动1个Ct、Rn下降20%内；补一倍酶量后正常；客户本月出检测报告，要求我司出CAPA。杜巧云/李领：小问题多需整改；海外设备出货量大，生产恢复；明年重点看干式生化酶。',
     '冻干性能/CAPA/标签', '颜艳/杜巧云/李领', '跟进检测报告；内部出CAPA', '质量/技术支持'),
    # 下周计划新增/月会遗留
    ('赵云浩', '湖南圣湘', '回款',
     '—', '（本周周报未单列）', '回款跟进', '—', '回款跟进', '财务'),
    ('刘子研', '杭州迪安', '麻疹冻干球/结核耐药熔曲',
     '—', '（本周周报未单列，月会遗留）', '跟进齐晨麻疹三款冻干球；王博结核耐药熔曲', '齐晨/王博', '跟进测试情况', '/'),
    ('刘子研', '丹威', 'LAMP结核筛查/呼吸道快速',
     '—', '（本周周报未单列，月会遗留）', 'LAMP 5天加速非特异、10天正常；呼吸道快速项目', '孙艳/刘松林/赵丹蕊', '跟进孙艳呼吸道快速；跟踪LAMP内部优化与客户测试', '/'),
    ('刘子研', '天隆', '003006冻干球/货号清单',
     '—', '（本周周报未单列，月会遗留）', '张建2000T 838/003006冻干球发货；确定003006出货检测标准；货号清单', '张建/刘小辉', '关注MD2071-2-NA测试；拉线上会定出货标准；跟进货号清单', '技术支持'),
    ('刘子研', '艾德/华益美', '肿瘤SNP/资料',
     '—', '（本周周报未单列，月会遗留）', '艾德肿瘤SNP资料；华益美资料', '许燕彬', '追资料', '技术支持'),
]

start = 8
for i, row in enumerate(rows, start):
    for j, v in enumerate(row, 1):
        c = ws.cell(i, j, v)
        c.font = Font(name='微软雅黑', size=8.0, color='1F2937')
        c.alignment = Alignment(wrap_text=True, vertical='top', horizontal='center' if j in (1,) else 'left')
        c.border = border
        if i % 2 == 0:
            c.fill = PatternFill('solid', fgColor=PALE)
    ws.row_dimensions[i].height = 78

# merge responsible person blocks
zhao_end = start + 15  # 16 rows
liu_end = start + len(rows) - 1
ws.merge_cells(start_row=start, start_column=1, end_row=zhao_end, end_column=1)
ws.cell(start, 1).alignment = Alignment(horizontal='center', vertical='center')
ws.merge_cells(start_row=zhao_end + 1, start_column=1, end_row=liu_end, end_column=1)
ws.cell(zhao_end + 1, 1).alignment = Alignment(horizontal='center', vertical='center')
for r in range(start, liu_end + 1):
    ws.cell(r, 1).font = Font(name='微软雅黑', size=9, bold=True, color=NAVY)

# column widths
for col, w in {'A': 10, 'B': 14, 'C': 24, 'D': 34, 'E': 52, 'F': 26, 'G': 14, 'H': 30, 'I': 14}.items():
    ws.column_dimensions[col].width = w

ws.freeze_panes = 'A8'
ws.sheet_view.showGridLines = False
ws.print_area = f'A1:I{liu_end}'
ws.page_setup.orientation = 'landscape'
ws.page_setup.fitToWidth = 1
ws.page_setup.fitToHeight = 0
ws.sheet_properties.pageSetUpPr.fitToPage = True
ws.sheet_properties.tabColor = BLUE

wb.save(OUT)
print(OUT)
print('rows', len(rows), 'last_row', liu_end)
