# -*- coding: utf-8 -*-
from pathlib import Path
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils import get_column_letter
from openpyxl.worksheet.datavalidation import DataValidation

BASE = Path('/Users/liuxinyuan/Desktop/Hermes输出-工作类/2027年计划/一轮沟通会议纪要')
MIN_MD = BASE / '2027年目标第一轮沟通_会议纪要与待办_20261106_V01.md'
XLSX = BASE / '2027年目标第一轮沟通_待办清单_20261106_V01.xlsx'

# arithmetic checks / derived numbers
stock_low, stock_high = 20+29, 30+29
gap_low, gap_high = 300-stock_high, 300-stock_low
coverage_low, coverage_high = stock_low/300*100, stock_high/300*100
pain_sum = 479+433+1500
pain_gap_low, pain_gap_high = 3400-pain_sum, 5000-pain_sum
assert (stock_low, stock_high, gap_low, gap_high) == (49, 59, 241, 251)
assert pain_sum == 2412

ACTIONS = [
 # id, priority, line, category, item, action, owner, support, due, source, status
 ('A01','P0','科研-广东','目标与预算','广州预算模板定稿','对比月度汇报表与现有预测表，确认一套字段：课题组、关键人、主销产品、竞品、全年构成、月度/季度拆分；双方电话确认','韩远怀','刘新元','2026-11-05 晚','广-00:34:46 / 00:36:25','待启动'),
 ('A02','P0','科研-广东','目标与预算','广州 11 月每人业务标准','每人目标、客户、产品、动作；按会上口径，广州 11 月 10 万保底、20 万冲刺；思乡 35 万目标按 60%/80% 两档拆路径','韩远怀','各销售','2026-11-06（周五复盘）','广-00:29:28 / 00:30:30','待启动'),
 ('A03','P0','科研-广东/浙江','目标与预算','科研 300 万目标口径确认','确认 300 万是否广州+浙江合计、广州 150 万是否正式拆解、浙江总量与人数；形成一页口径','刘新元','韩远怀、吴云','2026-11-06','广-00:13:52 / 00:19:01；浙全篇','待启动'),
 ('A04','P1','科研-浙江','目标与预算','浙江 Q4/2027 课题组拆分','按 90% 重点客户、50%/30% 其他客户分类，每位销售拆到课题组、产品、月度；吴云审核','吴云','幸福、果园天果、海云、静飞','2026-11-18~11-25（会议口径 2-3 周）','浙-00:12:03 / 00:25:23','待启动'),
 ('A05','P0','科研-浙江','目标与预算','浙江预测表更新','把当天版本更新后发刘新元；补课题组清单、概率、金额；标注估算/四舍五入','吴云','—','2026-11-04 会后尽快','浙-00:26:26','待启动'),
 ('A06','P0','诊断原料','目标与预算','诊断商机汇总表补成交概率','汇总表增加成交概率字段；突破性 40%-50%、探索性 10%；客户、项目、责任人完整','刘欣','销售团队','本周内（会议日期未标注）','诊-3 / 行动#2','待启动'),
 ('A07','P1','诊断原料','目标与预算','诊断 2027 总量目标','明确诊断原料 2027 总量、存量/增量结构；本记录未给出该数字','刘新元','刘欣','待定','诊-2 / 诊-3','待启动'),

 ('B01','P0','科研-广东','客户与增量','广州重点客户库存与年底备货','林梦峰、夏来新、张桂红、张瑞等年定客户的剩余库存、采购节点、竞品关系；形成备货方案','韩远怀','思乡、建华','2026-11-06（周五复盘前）','广-00:17:14 / 00:28:05','待启动'),
 ('B02','P1','科研-广东','客户与增量','LAMP 标杆复制','拿下南科大 LAMP 单产品线约 20 万/年机会；整理一页可复制打法：客户画像、验证、报价、服务','韩远怀','思乡','2026-11 内','广-00:12:39 / 00:15:44','待启动'),
 ('B03','P1','科研-广东','客户与增量','空白区域与代理商落地','广医、广工、中大南校/东校、生物岛、广东实验室排人；湛江、汕头、广西代理商落地；深圳、东莞、新设理工院校列名单','韩远怀','范、彩虹','2026-11~12','广-00:09:27 / 00:16:30','待启动'),
 ('B04','P1','科研-浙江','客户与增量','WB 大麦 Mark 试点','选重点课题组做对比测试；效果和价格达标后按整套 WB 打包；不达标则调整','吴云','产品开发部门','2026-12 前','浙-00:06:18 / 00:06:37','待启动'),
 ('B05','P1','科研-浙江','客户与增量','浙江增量客户清单','郑州云浩/张坤龙/王凡、温医迁移客户、郑大杨聪/刘新、九江学院；补体量、对接人、采购节点、卡点','吴云','团队','2026-11-25 前','浙-00:13:47~00:16:27','待启动'),
 ('B06','P1','科研-浙江','客户与增量','温州客户巩固','回珠海后飞温州拜访袁林果，争取年底订单；杭州交接同步','吴云','—','2026-11-09~15（下周）','浙-00:27:27','待启动'),
 ('B07','P0','诊断原料','客户与增量','合同回传排查','咸平（8 月合同）、斯拉夫等逐户确认卡点；需发货的列时间表','刘欣','财务、销售','本周内（会议日期未标注）','诊-1 / 行动#3','待启动'),
 ('B08','P0','诊断原料','客户与增量','深圳重点客户计划','列出深圳重点客户清单、项目、金额、跟进计划，交刘欣','林潇','刘欣','紧急（会议日期未标注）','诊-4 / 行动#7','待启动'),
 ('B09','P1','诊断原料','客户与增量','凯奥迪商机核实','确认对接人、项目阶段、预算、竞争；不能确认则从汇总表剔除或降级','刘欣','—','待定','诊-4 / 待确认#2','待启动'),
 ('B10','P1','诊断原料','客户与增量','联合医学定价','对 0.5 元报价（会议原话“五毛钱”，单位未说明）做成本核算；决定放弃或替代方案；保留竞品低价背景','刘欣','刘新元','待定','诊-4 / 待确认#3','待启动'),
 ('B11','P2','诊断原料','客户与增量','赛乐奇、贝索拜访','完成拜访；记录机会、卡点、下一步','刘欣','文才','会议次日（日期未标注）','诊-6','待启动'),

 ('C01','P1','科研-广东','产品与研发','产品反馈专题会','组织思乡/石香、建华等四人会议；形成流程文档、会议纪要、问题清单，提交刘新元','韩远怀','思乡、建华','近期（日期待定）','广-00:25:03 / 00:25:38','待启动'),
 ('C02','P1','科研-广东','产品与研发','广州产品缺陷清单','每个问题带客户、样本、实验条件、竞品对比、影响金额；覆盖 QPCR/RT 平台适配、gDNA 去除、建库','韩远怀','思乡、建华','专题会前','广-00:21:20~00:24:53','待启动'),
 ('C03','P1','科研-广东/浙江','产品与研发','科研产品路线图','汇总建库、WB 大麦 Mark、LAMP、线粒体内切酶、mRNA 的机会与卡点；定立项/迭代优先级；给销售明确线索','刘新元','产品开发部门','待定','广-00:21:20；浙-00:17:42 / 00:18:10','待启动'),
 ('C04','P1','科研-浙江','产品与研发','浙江新品陪跑','对 LAMP、MIA、线粒体内切酶、建库提供明确市场线索和前期陪跑拜访；销售不再单打独斗','产品开发部门（负责人待指定）','吴云','待定','浙-00:18:10','待启动'),
 ('C05','P0','诊断原料','产品与研发','研发实验错误统计','统计近期实验错误类型和频次（样本配错、加样、仪器设置等），出归因报告；刘欣向王总、石总汇报','研发部门（负责人待指定）','刘欣','待定','诊-5 / 行动#6','待启动'),
 ('C06','P1','诊断原料','产品与研发','OE 验证事件复盘','联系何贤还原浇筑验证会议的沟通细节，形成时间线，避免再次信息不对称','刘欣','何贤','近期（日期待定）','诊-5 / 行动#9','待启动'),

 ('D01','P0','科研-浙江','市场活动','双十一促销执行','实物礼品不超过 5%，试剂赠送 10%-15%；超出报吴云审批；按客户需求沟通，不统一降价','吴云','销售团队','2026-11-11','浙-00:21:39~00:25:18','待启动'),
 ('D02','P2','科研-广东/浙江','市场活动','2027 市场活动规划','解决无专职策划、活动滞后/单一的问题；提前规划 5 月节点；评估高校送礼合规风险','刘新元','吴云','待定','浙-00:16:58~00:27:24','待启动'),

 ('E01','P1','科研-浙江','团队与人事','浙江人员观察与优化','静飞明确改进项和检查点；海云客户交吴云；HR 年底继续筛简历；按公司流程处理','吴云','HR','2026-12 前','浙-00:27:39~00:29:15','待启动'),
 ('E02','P1','诊断原料','团队与人事','组织架构草案','形成初步方案，下周会议前与石总讨论；不对外宣布','刘新元','石总','下周会议前（会议日期未标注）','诊-4 / 待确认#1','待启动'),
 ('E03','P1','诊断原料','团队与人事','杨笑沟通','就当前商机结构及信心问题沟通；记录卡点','刘新元','刘欣','会议次日或周五（日期未标注）','诊-行动#8','待启动'),
 ('E04','P2','科研-广东','团队与人事','新员工范区域计划','番禺大学城客户清单、首单目标、陪跑计划','韩远怀','范','2026-11 内','广-00:08:06','待启动'),

 ('F01','P0','科研-广东/浙江','回款与供应链','广州回款计划','核实发票提交时间、客户付款周期、预计回款；与预算安排一并确认','刘新元','韩远怀、吴云','2026-11-06','广-00:33:54 / 00:34:32','待启动'),
 ('F02','P0','诊断原料','回款与供应链','供应链预测单台账','重核代发货仓与成品仓；清理测试、取消、缺货单；补客户信息；分类未发货原因','供应链（肖/吴英，主责待定）','刘新元','待定','诊-5 / 行动#5','待启动'),
 ('F03','P1','诊断原料','回款与供应链','浙江验证复核','内部数据交叉复核，输出验证结论，防止纰漏','刘新元','专人（姓名未记录）','进行中','诊-6','进行中'),
]

CATS = [('A','目标与预算'),('B','客户与增量'),('C','产品与研发'),('D','市场活动'),('E','团队与人事'),('F','回款与供应链')]

def md_table(rows, header):
    out=['| '+' | '.join(header)+' |','|'+'|'.join(['---']*len(header))+'|']
    for r in rows:
        out.append('| '+' | '.join(str(x).replace('|','／') for x in r)+' |')
    return '\n'.join(out)

def action_rows(cat):
    rows=[]
    for a in ACTIONS:
        if a[3]==cat:
            rows.append((a[0],a[1],a[4],a[5],a[6],a[7],a[8],a[9]))
    return rows

KEY_QUOTES = '''1. 刘新元（广州场 00:13:52）：“在广州加上浙江的话，我们整个团队应该是差不多 300 的目标。这是打底的。”
2. 韩远怀（广州场 00:06:21）：“大概年度汇合的话，我看了一下是 61，这里面不是包含所有组，只是在目前我们所接触到的区域里面，属于中大型的一些课题组。”
3. 刘新元（广州场 00:10:16）：“存量其实是我们今年下了单能复购的。”
4. 吴云（浙江场 00:02:26）：“预计 26 年年底的话，这些客户总共是 15 万。到 27 年的时候预计是有 27 万。”
5. 刘新元（浙江场 00:11:12）：“要的是我们在这个市场上摸到了的……把这些项目如果想要把它拿回来……的问题跟卡点，把它分析出来，然后让公司去安排资源去解决。”
6. 诊断原料纪要（第 3 节）：“突破性商机默认设定为 40%-50%，探索性商机默认设定为 10%。”'''

content = f'''# 2027 年目标第一轮沟通会议纪要与待办

> 版本：V01（工作稿）  
> 编制：营销中心销售管理  
> 编制日期：2026-11-06  
> 覆盖：科研（广东、浙江）2027 目标第一轮沟通；诊断原料 2027 目标沟通  
> 逐字/原文：`2027年目标第一轮沟通_合并转写_20261106_V01.md`  
> 口径提醒：本文件中的金额、目标、概率均为会议口径，未与 ERP、财务或正式预算定稿核对；人员调整内容为会议讨论倾向，不等于正式决定。

## 一、结论摘要

1. 科研线把 2027 年保底目标定在 **300 万（广州+浙江合计）**，对应人均销售 25-30 万、人均用人成本 20-25 万；广州 150 万是会上举例，尚未确认；浙江没有单独报总量。 [广-00:13:52 / 00:19:01；浙全篇]
2. 科研存量底盘按会议口径粗算 **49-59 万**：广州真正复购 20-30 万（接触中课题组汇总 61 万，仅覆盖部分存量），浙江稳定复购 29 万。相对 300 万保底，存量覆盖率约 **{coverage_low:.1f}%-{coverage_high:.1f}%**，缺口 **{gap_low}-{gap_high} 万**；增量必须落到具体课题组、产品和区域。 [广-00:06:21 / 00:10:16；浙-00:02:26 / 00:04:31]
3. 诊断原料存量商机约 **3,000 万**，但会议列出的三类核心痛点金额相加为 **{pain_sum:,} 万**（质量与控制偏差 479 万 + 备货库存 433 万 + 技术研发优化 1,500 万），与会议所说 **3,400-5,000 万**不一致，差额 {pain_gap_low:,}-{pain_gap_high:,} 万；诊断 2027 总量目标未在这份记录中给出。 [诊-2]
4. 三场记录都出现“成交概率”，阈值不同：广州 90%/40%/10%；浙江 90%/50%/30%/10%；诊断突破性 40%-50%、探索性 10%。直接汇总会不可比，需先定统一口径，或按业务线分表并注明版本。 [广-00:36:46；浙-00:09:20；诊-3]
5. 共同的管理动作是把商机清单做全、把拿不回来的卡点写清，公司按卡点配产品、研发、供应链资源；会议明确预测用于资源匹配，不作为强制考核承诺。 [广-00:37:31；浙-00:11:12；诊-3]
6. 近期可验收节点：11/06 广州每人业务标准与回款计划；浙江 2-3 周内交课题组拆分；诊断本周内完成合同回传排查、汇总表补概率字段。 [广-00:29:28；浙-00:25:23；诊-行动#2 / #3]

## 二、会议与证据

引用格式：`广-00:13:52` 指广州场相对时间 13 分 52 秒；`浙-00:02:26` 指浙江场；`诊-章节 / 行动#N` 指诊断原料纪要中的章节或行动事项编号。

{md_table([
 ('广州科研 2027 目标初次沟通','科研-广东','2026-11-05 15:44:43','韩远怀、刘新元','约 39:57','逐字稿 381 段 + 纪要 DOCX','逐字稿完整；纪要含 AI 摘要图'),
 ('浙江科研 2027 目标 2 次沟通','科研-浙江','2026-11-04 17:24:34','刘新元、吴云','约 29:27','逐字稿 237 段 + 纪要 DOCX','逐字稿完整；纪要含 AI 摘要图'),
 ('刘欣发起的视频会议','诊断原料（按用户说明归属）','未标注；文件生成 2026-11-06 13:34','刘欣、刘新元','约 1 小时 13 分钟（有效业务讨论前 40 分钟）','现成纪要 71 行','无逐字稿、无时间戳；只能按纪要引用'),
], ['场次','业务线','日期','参与人','时长','证据','完整度'])}

### 关键原话（节选）

{KEY_QUOTES}

## 三、目标与数字口径

{md_table([
 ('2027 保底目标','广州+浙江合计 300 万；广州未单列','未单列','未给出','广-00:13:52；浙全篇；诊全篇'),
 ('目标拆解','广州 150 万（会上举例，未确认）','未给出','—','广-00:19:01'),
 ('存量/复购','接触中课题组 61 万；真正复购 20-30 万；年底可能 30 多万','高确定性客户 2026 年 15 万→2027 年 27 万；稳定复购 29 万','存量商机约 3,000 万','广-00:06:21 / 00:10:16；浙-00:02:26 / 00:04:31；诊-2'),
 ('人均口径','销售 25-30 万；用人成本 20-25 万','—','—','广-00:14:49'),
 ('增量来源','LAMP 约 20 万/年；建华 RTQ 每组 6-8 万/年；竞品年定客户','WB 大麦 Mark（替换概率约 30%）；LAMP、线粒体内切酶、建库、mRNA；郑州/温医/九江','质量与控制、备货库存、技术研发/竞品替换；登革热 013016 预计 5 万人份','广-00:12:39 / 00:19:27；浙-00:06:18 / 00:07:24；诊-2 / 诊-6'),
 ('成交概率','存量 90%、竞争撬动 40%、突破 10%','高粘性 90%、小型散客 50%、新品撬动 30%、长周期 10%','突破 40%-50%、探索 10%','广-00:36:46；浙-00:09:20；诊-3'),
], ['口径','广州科研','浙江科研','诊断原料','出处'])}

**粗算说明**：300 万保底减广州 20-30 万、浙江 29 万，得到 241-251 万缺口；这是按会议口径的算术结果，尚非预算定稿。广州 150 万÷5 人=30 万/人，与“人均 25-30 万”一致；300 万若只由广州 5 人承担，则人均 60 万，与会上口径冲突，因此 300 万更可能是广州+浙江合计，但浙江人数和单独目标未在记录中确认。 [广-00:13:52 / 00:19:01]

## 四、科研线

### 4.1 广州：存量底数 61 万，真正复购 20-30 万

**团队与区域**

- 会上口径为 5 人（4 名销售加韩远怀）；范尚未到岗，计划负责番禺大学城。范到岗后是第 6 人还是已含在 5 人内，记录没有说清。 [广-00:07:49 / 00:08:06]
- 覆盖集中在广州主城；广医、广工、中大南校/东校、生物岛、广东实验室等区域无人覆盖或覆盖不足；深圳、东莞、新设理工院校作为外围；湛江、汕头、广西已预约代理商。 [广-00:09:27 / 00:16:30]

**存量与目标**

- 接触中的中大型课题组年度汇合 **61 万**；不含所有课题组，也不含几千几百元的小单。 [广-00:06:21]
- 韩远怀判断真正“今年下单、明年复购”的存量 **20-30 万**，年底可能到 30 多万；61 万不能直接当存量。 [广-00:10:16]
- 广州+浙江 2027 保底 **300 万**；人均销售 25-30 万、人均成本 20-25 万；广州 150 万是会上举例，存量 30 万按 90% 概率。 [广-00:13:52 / 00:19:01]

**客户与产品**

- 建华以 RTQ 为主，历史每组 6-8 万/年；思乡（转写另写作石香、诗香，姓名待核）以高保真、克隆为主；南科大 LAMP 单产品线年机会约 20 万。 [广-00:12:39 / 00:19:27]
- 年定客户包括林梦峰（中大）、夏来新（南方医）、张桂红（华农）、张瑞（中大南）；主要竞品为诺唯赞、全式金、金斯瑞；策略是借年底库存窗口小批量切入，先建立信任，再在 2027 年替换。 [广-00:17:14 / 00:18:23]
- 9 月已做一波验证，年底还有一波；年定客户当前有库存，先小批量替换，等 2027 年放量。 [广-00:16:45 / 00:17:29]

**产品卡点**

- 基础线 RTQ、高保真、克隆可用；建库产品是薄弱项，曾下架或暂停。 [广-00:20:20 / 00:22:13]
- QPCR/RT 的短板集中在不同仪器 Lock 浓度适配、gDNA 去除极限、缺少变种和持续迭代立项；公司研发投入偏工业端，科研端投入不足。 [广-00:21:20 / 00:22:34]
- 销售反馈机制：让客户做老师，收集具体缺陷数据；区域统筹同类问题后交总部优化；组织思乡/石香、建华等专题会，形成流程文档和会议记录。 [广-00:23:52 / 00:25:03]

**11-12 月动作**

- 会上提出广州 11 月 10 万保底、20 万冲刺；韩远怀周五复盘给每人定业务标准；思乡今年 5 万多、年度目标 35 万，按 60%/80% 两档拆动作。 [广-00:29:28 / 00:30:30]
- 重点客户库存盘点、年底备货方案、回款计划（发票提交时间、客户付款周期）；刘新元周五与韩远怀、吴云确认。 [广-00:28:05 / 00:33:54]

**未决**

- 预算模板：会上倾向沿用月度汇报格式，但韩远怀还没看模板，约定当晚核对后电话确认；尚未定稿。 [广-00:34:46 / 00:36:25]
- 广州 150 万、浙江 150 万的关系未确认；300 万与广州 5 人的人均 25-30 万不能单独勾稽。 [分析口径]

### 4.2 浙江：稳定复购 29 万，增量靠 WB 大麦 Mark 和新区域

**存量**

- 高确定性客户 2026 年底 15 万→2027 年 27 万；稳定复购底盘 **29 万**；初三课题组维持现状；郑少建课题组 2026 年 1.5 万，2027 年预计下降，原因是竞品低价和我方跟随降价、部分学生被撬。 [浙-00:02:26 / 00:03:39 / 00:04:31]
- 2026 年有 80 多个课题组采购；近 100 个几百到 1,000 元/单的小课题组没有纳入重点清单；当前预测仅覆盖重点客户，未含全量。 [浙-00:04:45 / 00:11:44]

**增量与概率**

- 10%：长周期替换或大型不确定项；30%：现有产品合适但承诺未落地，或依赖 WB 大麦 Mark 等新品；50%：小型闲散课题组；90%：高粘性复购。 [浙-00:09:20 / 00:10:12 / 00:10:30]
- WB 大麦 Mark 是明年增量的关键杠杆；如果产品效果和价格成立，可按整套 WB 打包；会上给的替换概率约 30%。 [浙-00:06:18 / 00:06:37]
- LAMP、线粒体内切酶、建库、mRNA：浙江建库开发极少；监控试剂盒前期不稳定，加上人员变动，替换周期 1-2 年；只有新开库客户可以从 0 切入；长周期项目按 10%。 [浙-00:07:24 / 00:08:03]

**区域机会**

- 郑州：云浩（转写另写作余浩，姓名待核）课题组目前仅 3,000 元/年，潜力待排查；张坤龙、王凡课题组有合作意向，近期采购；郑大杨聪、刘新有分子/mRNA 基础，预计 2-3 万打底。 [浙-00:13:47~00:15:38]
- 温医迁移客户测试完成，预计有订单，但仅个人使用，体量待评估；九江学院院长开山大弟子，已送试用装，计划回鹰潭时顺路拜访。 [浙-00:15:04 / 00:15:58]

**市场活动**

- 竞品诺唯赞通过台历、对联等周边主动获客；我方活动仓促、单一，没有专职策划；高校对送礼合规敏感。 [浙-00:16:58~00:20:35]
- 双十一（会上暂定）：销售按客户需求自由沟通；实物礼品不超过 5%，试剂赠送 10%-15%；超出报吴云审批。 [浙-00:21:39 / 00:25:06]
- 2027 年活动需提前规划，会上提到 5 月节点；提升专业性和及时性；刘新元负责想办法。 [浙-00:20:41 / 00:27:24]

**Q4 拆分与人员**

- 2-3 周内把 Q4/2027 计划拆到课题组；按 90% 重点客户、50%/30% 其他客户分类；吴云主导评估，幸福、果园天果自拆，海云、静飞由吴云代做或观察。 [浙-00:12:03 / 00:25:23 / 00:27:27]
- 静飞入职 2 个月、主动性差，处于观察期；海云剩余客户交吴云；HR 年底继续筛简历；会上倾向“若都不胜任则优化”，未形成正式人事决定。 [浙-00:27:39~00:29:15]
- 吴云下周回珠海后飞温州，巩固袁林果，争取年底订单；杭州正常交接。 [浙-00:27:27]

### 4.3 科研线共性问题

- **目标与存量差距大**：两省稳定复购合计 49-59 万，对 300 万保底覆盖约 16.3%-19.7%；增量必须来自竞品替换、新品上量和空白区域。 [广-00:10:16；浙-00:04:31]
- **产品支撑不足**：建库、WB 大麦 Mark、LAMP、线粒体内切酶、mRNA 都需要产品/研发给线索、做验证、陪跑；销售单独开发周期长。 [广-00:21:20；浙-00:07:24 / 00:18:10]
- **销售目标管理偏松**：广州韩远怀自述 10 月没怎么盯业绩；浙江 2-3 周后才交拆分表；短期冲刺和目标分解需要按人、按客户落地。 [广-00:31:29；浙-00:25:23]
- **预测口径不统一**：广州按 90/40/10，浙江按 90/50/30/10，诊断按 40-50/10；同一家公司汇总时无法直接比较。 [广-00:36:46；浙-00:09:20；诊-3]

## 五、诊断原料：存量商机 3,000 万，但增量结构不清

### 5.1 合同与回款

- 部分客户合同回传不及时，长期积压可能影响发货；大部分持续合作客户正常；重点跟进咸平（8 月合同）、斯拉夫。刘欣本周逐户排查客观因素。 [诊-1 / 行动#3]

### 5.2 商机结构

- 质量与控制偏差：39 个商机，约 479 万；备货库存保障：36 个商机，约 433 万；技术研发优化/竞品替换：约 1,500 万。 [诊-2]
- 会议称三类合计约 3,400-5,000 万、占整体商机近 50%；三项相加实际为 **{pain_sum:,} 万**，与会议总数不一致，差额 {pain_gap_low:,}-{pain_gap_high:,} 万。需要刘欣用原表核对是否有重叠、漏项或口径不同。 [诊-2；分析]
- 存量商机约 **3,000 万**，基本盘相对稳定，但难以支撑明年增长；突破性、探索性商机极少。学伟区域只有 4 个存量商机且均需突破；英科、宏威特斯存量 158 万，低于 250 万目标；红金、艾维迪缺少新商机。 [诊-2]

### 5.3 成交概率机制

- 诊断场次已决定在现有报表增加“成交概率”；突破性默认 40%-50%，探索性默认 10%；目的是降低销售“不敢报、怕完不成”的心理负担，把接触到的机会全部录入，便于公司看市场全貌和配资源。 [诊-3]
- 这套阈值与科研两场不一致；如果公司要一张总表，需要先统一，或在总表增加“业务线/口径版本”字段，避免把不同定义的概率直接相加。 [分析]

### 5.4 团队与组织

- 西子、学伟主动性和资源整合能力较强；江辉（华中）意愿尚可，但复杂问题解决和向上管理弱；林潇（深圳）推进慢，深圳重点客户计划此前催办未交；联合医学项目客户要求 0.5 元（会议原话“五毛钱”，单位未说明），低于成本预期，暂未推进；凯奥迪对接人不清晰，商机可靠性待核。 [诊-4]
- 明年组织架构可能调整；刘新元尚未形成成熟方案，计划下周会议前准备草案并与石总讨论，未定。 [诊-4 / 待确认#1]

### 5.5 内部协同

- 供应链预测单：代发货仓与成品仓数据不一致，测试单、取消订单未及时清理，账实不符；肖某拉的表缺客户信息。供应链需重做台账，分类未发货原因，刘新元后续跟进。 [诊-5 / 行动#5]
- 研发实验错误：近期出现样本配错、加样错误、仪器设置错误等，影响客户信任、浪费资源、延误项目。建议研发统计错误类型和频率，做归因分析；刘欣认为已触及底线，需向王总、石总反映。 [诊-5 / 行动#6]
- OE 验证：内部曾误传“自己做”，导致 OE 方关生终止合作意向；原计划采购 OE 方案，后改为自研引发误解。刘欣建议通过何贤还原现场沟通细节。 [诊-5 / 行动#9]

### 5.6 其他业务进展

- 浙江验证等待内部数据交叉验证，刘新元已安排专人复核。 [诊-6]
- 登革热项目：瀚海 PK 项目获得机会，即将下单 013016 产品，预计 5 万人份。 [诊-6]
- 刘欣次日与文才拜访赛乐奇、贝索，下午接待来访客户。 [诊-6]

## 六、共识、分歧与数据问题

### 6.1 已形成的共识

1. 2027 年科研不能只靠复购，必须找增量；存量只是底子。 [广-00:10:04；浙-00:11:12]
2. 用成交概率分层，把已接触、未成交、看到的机会都列进清单；预测用于资源匹配，不作为强制考核承诺。 [广-00:37:31；浙-00:11:12；诊-3]
3. 预算要落到课题组/客户、关键人、主销产品、竞品、全年构成、月度/季度拆分；不做多套模板。 [广-00:34:46；浙-00:12:31]
4. 销售要把产品卡点带回来，产品/研发要给市场线索和前期陪跑。 [广-00:23:52；浙-00:18:10]
5. 11-12 月是回款和客户预算窗口，要盯具体客户、具体数字和具体动作。 [广-00:29:28；浙-00:16:58]

### 6.2 需要拍板的分歧

{md_table([
 ('G1','成交概率阈值','广州 90/40/10；浙江 90/50/30/10；诊断突破 40-50、探索 10','总表不可比，同一商机可能被不同概率计算','刘新元，2026-11-06'),
 ('G2','300 万目标口径','300 万为广州+浙江合计；广州 150 万是举例；浙江未给总量和人数','无法判断广州/浙江各自缺口和人均目标','刘新元，2026-11-06'),
 ('G3','预算模板','倾向月度汇报格式，但韩远怀未看模板，约定当晚电话确认','可能重复填报，或与现有预测表字段不一致','刘新元、韩远怀，2026-11-05 晚'),
 ('G4','诊断金额与总量','三类痛点 2,412 万 vs 3,400-5,000 万；诊断 2027 总量未给','资源排序和增长目标缺少可信基数','刘欣，本周内'),
 ('G5','浙江人员','静飞观察、海云客户交吴云、HR 继续招聘；是否淘汰未定','影响团队稳定和 2027 年编制','吴云、HR，2026-12 前'),
 ('G6','诊断组织架构','刘新元下周与石总讨论，尚未形成方案','影响诊断团队职责和汇报关系','刘新元、石总，下周'),
], ['编号','事项','现状','影响','需拍板/时间'])}

### 6.3 数据质量问题

{md_table([
 ('D1','广州同一场出现 61 万与 100 多万两个口径','广-00:06:21 vs 00:36:25','存量/目标基数不清，无法判断哪个是汇总口径'),
 ('D2','300 万与广州 5 人×25-30 万不勾稽','300÷5=60 万/人；广-00:13:52 / 00:19:01','若 300 万只由广州承担，与人均口径冲突；若含浙江，浙江人数/目标缺失'),
 ('D3','广州团队 5 人，范尚未到岗','广-00:07:49 / 00:08:06','范到岗后是第 6 人还是已含在 5 人内，影响人均和目标分母'),
 ('D4','浙江 29 万稳定复购 vs 80+ 课题组、近 100 个小课题组','浙-00:04:45 / 00:11:44','当前仅重点客户口径，增量清单可能漏小客户'),
 ('D5','诊断三项痛点相加 2,412 万 vs 3,400-5,000 万','诊-2','差额 988-2,588 万；可能有重叠、漏项或口径不同'),
 ('D6','诊断 2027 总量目标未给','诊全篇','无法判断增长幅度和资源投入是否匹配'),
 ('D7','诊断场次无日期、无逐字稿','源文件 71 行纪要','引用强度弱，不能核对原话和承诺'),
 ('D8','ASR 同音词与人名不一致','见合并转写附录 B','思乡/石香/诗香、云浩/余浩、诺威/诺唯赞等需业务确认'),
], ['编号','问题','证据','影响'])}

## 七、待办事项

说明：只填会议记录能支持的主责和时限；原文没有的写“待定”，不替会议拍板。优先级 P0 为本周/即时或高风险管理项，P1 为 11 月内，P2 为可排后。

### 7.1 目标与预算

{md_table(action_rows('目标与预算'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.2 客户与增量

{md_table(action_rows('客户与增量'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.3 产品与研发

{md_table(action_rows('产品与研发'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.4 市场活动

{md_table(action_rows('市场活动'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.5 团队与人事

{md_table(action_rows('团队与人事'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.6 回款与供应链

{md_table(action_rows('回款与供应链'), ['ID','优先级','事项','动作与验收标准','主责','协同','时限','来源'])}

### 7.7 已完成 / 已发生

- 刘欣已通过钉钉把最新销售商机汇总表发给刘新元（纪要记载，未独立核验）。 [诊-行动#1]
- 广州、浙江两场已生成原始逐字稿和纪要 DOCX；本文件据此编制。 [来源文件]

## 八、待确认问题

1. **科研 300 万口径**：300 万是否广州+浙江合计？广州 150 万是否正式目标？浙江 2027 总量和团队人数是多少？广州团队是 5 人还是范到岗后 6 人？
2. **成交概率统一**：科研广州 90/40/10、浙江 90/50/30/10、诊断 40-50/10，是否统一为一套？如果不统一，总表如何标注版本？
3. **预算模板**：月度汇报格式与现有预测表是否合并？谁拥有最终模板？
4. **诊断金额**：三类痛点 2,412 万与 3,400-5,000 万的差额来自哪里？诊断 2027 总量目标是多少？
5. **诊断组织与人事**：组织架构草案、凯奥迪商机、联合医学定价，三项都未定；需明确拍板人和时间。
6. **浙江人员**：静飞、海云是观察、转岗还是淘汰？HR 年底招聘是否有明确岗位和到岗时间？
7. **产品/研发/供应链主责**：产品开发部门、研发部门、供应链在记录中只有部门名，没有具体主责人；需要指定到人，否则待办无法验收。
8. **诊断会议日期与逐字稿**：现只有纪要，日期未标注；如需对外或作为考核依据，应补原始记录。

## 九、证据索引

| 编号 | 来源 | 位置 | 用途 |
|---|---|---|---|
| 广-00:06:21 | 广州科研逐字稿 | 00:06:21 | 61 万接触中课题组口径 |
| 广-00:10:16 | 广州科研逐字稿 | 00:10:16 | 真正复购 20-30 万 |
| 广-00:13:52 | 广州科研逐字稿 | 00:13:52 | 广州+浙江 300 万保底 |
| 广-00:19:01 | 广州科研逐字稿 | 00:19:01 | 广州 150 万举例、存量 30 万 |
| 广-00:29:28 | 广州科研逐字稿 | 00:29:28 | 11 月 10 万/20 万、周五复盘 |
| 广-00:36:46 | 广州科研逐字稿 | 00:36:46 | 90/40/10 概率 |
| 浙-00:02:26 | 浙江科研逐字稿 | 00:02:26 | 15 万→27 万 |
| 浙-00:04:31 | 浙江科研逐字稿 | 00:04:31 | 稳定复购 29 万 |
| 浙-00:09:20 | 浙江科研逐字稿 | 00:09:20 | 10/30/50/90 四档 |
| 浙-00:25:23 | 浙江科研逐字稿 | 00:25:23 | Q4/2027 拆分 |
| 诊-2 | 诊断原料纪要 | 第 2 节 | 商机结构与金额 |
| 诊-3 | 诊断原料纪要 | 第 3 节 | 成交概率机制 |
| 诊-行动#2 / #3 | 诊断原料纪要 | 行动事项 | 概率同步、合同排查 |

---

**文件关系**：逐字/原文见 `2027年目标第一轮沟通_合并转写_20261106_V01.md`；可筛选待办见 `2027年目标第一轮沟通_待办清单_20261106_V01.xlsx`。本纪要中的派生数字（缺口、覆盖率、差额）均已在文中标注为粗算或分析口径。
'''

MIN_MD.write_text(content, encoding='utf-8')
print('wrote', MIN_MD, MIN_MD.stat().st_size, 'chars', len(content))
print('actions', len(ACTIONS), 'categories', {c:sum(1 for a in ACTIONS if a[3]==c[1]) for c in CATS})
print('derived', stock_low, stock_high, gap_low, gap_high, coverage_low, coverage_high, pain_sum, pain_gap_low, pain_gap_high)

# ---------------- XLSX ----------------
wb = Workbook()
ws = wb.active
ws.title = '待办清单'
headers = ['ID','优先级','业务线','类别','事项','动作与验收标准','主责','协同','时限','状态','来源']
ws.append(headers)

hdr_fill = PatternFill('solid', fgColor='1F3864')
hdr_font = Font(name='微软雅黑', size=10, bold=True, color='FFFFFF')
thin = Side(style='thin', color='D9E2F3')
border = Border(left=thin, right=thin, top=thin, bottom=thin)
fills = {'P0': PatternFill('solid', fgColor='FCE4D6'), 'P1': PatternFill('solid', fgColor='FFF2CC'), 'P2': PatternFill('solid', fgColor='E2EFDA')}

for a in ACTIONS:
    ws.append(list(a))

for c in range(1, len(headers)+1):
    cell = ws.cell(1, c)
    cell.fill = hdr_fill
    cell.font = hdr_font
    cell.alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
    cell.border = border

for r in range(2, ws.max_row+1):
    for c in range(1, len(headers)+1):
        cell = ws.cell(r, c)
        cell.border = border
        cell.alignment = Alignment(vertical='top', wrap_text=True)
        cell.font = Font(name='微软雅黑', size=10, color='333333')
    pr = ws.cell(r, 2).value
    if pr in fills:
        ws.cell(r, 2).fill = fills[pr]
        ws.cell(r, 2).alignment = Alignment(horizontal='center', vertical='center')
    ws.cell(r, 1).alignment = Alignment(horizontal='center', vertical='center')
    ws.cell(r, 10).alignment = Alignment(horizontal='center', vertical='center')
    ws.row_dimensions[r].height = 72

widths = {'A':7,'B':8,'C':16,'D':14,'E':24,'F':74,'G':20,'H':18,'I':26,'J':10,'K':34}
for col, w in widths.items():
    ws.column_dimensions[col].width = w
ws.freeze_panes = 'A2'
ws.print_title_rows = '1:1'
ws.page_setup.orientation = 'landscape'
ws.page_setup.fitToWidth = 1
ws.page_setup.fitToHeight = 0
ws.auto_filter.ref = f'A1:K{ws.max_row}'
ws.sheet_view.zoomScale = 90

# validation for status
dv = DataValidation(type='list', formula1='"待启动,进行中,已完成,已取消,待确认"', allow_blank=False)
ws.add_data_validation(dv)
dv.add(f'J2:J{ws.max_row}')

# stats sheet
ws2 = wb.create_sheet('汇总')
ws2['A1'] = '2027 年目标第一轮沟通待办清单'
ws2['A1'].font = Font(name='微软雅黑', size=16, bold=True, color='1F3864')
ws2['A2'] = '来源：广州科研逐字稿、浙江科研逐字稿、诊断原料纪要；金额/目标为会议口径，未与 ERP/财务定稿核对。'
ws2['A2'].font = Font(name='微软雅黑', size=10, color='666666')
ws2.merge_cells('A2:E2')
ws2['A2'].alignment = Alignment(wrap_text=True, vertical='top')
ws2.row_dimensions[2].height = 34

from collections import Counter
pri = Counter(a[1] for a in ACTIONS)
cat = Counter(a[3] for a in ACTIONS)
owner = Counter(a[6] for a in ACTIONS)
ws2['A4'] = '按优先级'; ws2['A4'].font = Font(name='微软雅黑', size=11, bold=True)
ws2['A5'] = '优先级'; ws2['B5'] = '数量'
for i,(k,v) in enumerate(sorted(pri.items()), start=6):
    ws2.cell(i,1,k); ws2.cell(i,2,v)
ws2['D4'] = '按类别'; ws2['D4'].font = Font(name='微软雅黑', size=11, bold=True)
ws2['D5'] = '类别'; ws2['E5'] = '数量'
for i,(k,v) in enumerate(cat.items(), start=6):
    ws2.cell(i,4,k); ws2.cell(i,5,v)
ws2['G4'] = '按主责（前 10）'; ws2['G4'].font = Font(name='微软雅黑', size=11, bold=True)
ws2['G5'] = '主责'; ws2['H5'] = '数量'
for i,(k,v) in enumerate(owner.most_common(10), start=6):
    ws2.cell(i,7,k); ws2.cell(i,8,v)
for r in (5,):
    for c in range(1,9):
        ws2.cell(r,c).font = Font(name='微软雅黑', size=10, bold=True)
        ws2.cell(r,c).fill = PatternFill('solid', fgColor='D9E2F3')
for col,w in {'A':12,'B':8,'C':3,'D':16,'E':8,'F':3,'G':22,'H':8}.items():
    ws2.column_dimensions[col].width = w
ws2.sheet_view.showGridLines = False

# notes sheet
ws3 = wb.create_sheet('口径说明')
notes = [
 ('字段','说明'),
 ('优先级','P0=本周/即时或高风险管理项；P1=11 月内；P2=可排后。按会议记录判断，非公司正式优先级。'),
 ('主责','只写会议记录能支持的人；部门名后标“负责人待指定”的，需另行指定到人。'),
 ('时限','按会议原话换算；“会议日期未标注”的诊断场次，不能换算成具体日历日期。'),
 ('来源','广=广州科研逐字稿；浙=浙江科研逐字稿；诊=诊断原料纪要。详见会议纪要第九节。'),
 ('金额','均为会议口径，未与 ERP/财务定稿核对；诊断三类痛点合计 2,412 万与会议 3,400-5,000 万不一致。'),
 ('概率','科研广州 90/40/10；浙江 90/50/30/10；诊断 40-50/10；口径未统一。'),
 ('人员','浙江静飞/海云为观察或调整倾向，不是正式人事决定；诊断组织架构未定。'),
]
for r,row in enumerate(notes,1):
    for c,val in enumerate(row,1):
        cell=ws3.cell(r,c,val)
        cell.alignment=Alignment(vertical='top', wrap_text=True)
        cell.font=Font(name='微软雅黑', size=10, bold=(r==1), color='FFFFFF' if r==1 else '333333')
        cell.fill=PatternFill('solid', fgColor='1F3864' if r==1 else 'FFFFFF')
ws3.column_dimensions['A'].width=16
ws3.column_dimensions['B'].width=100
for r in range(2, len(notes)+1):
    ws3.row_dimensions[r].height=38
ws3.sheet_view.showGridLines=False

wb.save(XLSX)
print('wrote', XLSX, XLSX.stat().st_size)

# verify readback
from openpyxl import load_workbook
wb2 = load_workbook(XLSX, data_only=True)
wsx = wb2['待办清单']
assert wsx.max_row == len(ACTIONS)+1, (wsx.max_row, len(ACTIONS))
ids = [wsx.cell(r,1).value for r in range(2, wsx.max_row+1)]
assert len(ids) == len(set(ids)), 'duplicate ids'
assert all(wsx.cell(r,7).value for r in range(2, wsx.max_row+1)), 'blank owner'
print('xlsx verify: rows', wsx.max_row-1, 'unique ids', len(set(ids)), 'sheets', wb2.sheetnames)
