# -*- coding: utf-8 -*-
import docx, re, hashlib, os, io
from pathlib import Path

BASE = Path('/Users/liuxinyuan/Desktop/Hermes输出-工作类/2027年计划/一轮沟通会议纪要')
OUT = BASE / '2027年目标第一轮沟通_合并转写_20261106_V01.md'

def sha(path):
    h=hashlib.sha256()
    with open(path,'rb') as f:
        for b in iter(lambda:f.read(1024*1024), b''): h.update(b)
    return h.hexdigest()

def parse_docx(path):
    d=docx.Document(path)
    paras=[p.text.strip() for p in d.paragraphs if p.text.strip()]
    title=paras[0] if paras and not re.match(r'^.{1,12}?\s+\d{2}:\d{2}:\d{2}$',paras[0]) else ''
    turns=[]; cur=None
    for t in paras:
        m=re.match(r'^(.{1,12}?)\s+(\d{2}:\d{2}:\d{2})$',t)
        if m:
            if cur: turns.append(cur)
            cur={'speaker':m.group(1).strip(),'time':m.group(2),'text':[]}
        elif cur:
            cur['text'].append(t)
    if cur: turns.append(cur)
    for x in turns:
        x['text']=' '.join(x['text']).strip()
    return title, turns, len(paras)

def fmt_turns(turns):
    lines=[]
    for x in turns:
        lines.append(f"- **[{x['time']}] {x['speaker']}**：{x['text']}")
    return '\n'.join(lines)

gz_title,gz_turns,gz_paras=parse_docx(BASE/'广州科研2027目标初次沟通-原文.docx')
zj_title,zj_turns,zj_paras=parse_docx(BASE/'浙江科研2027目标2次沟通-原文.docx')
diag=(BASE/'刘欣发起的视频会议_会议纪要.md').read_text(encoding='utf-8')
# shift headings in diagnostic minutes by one level under section 3
diag_lines=[]
for line in diag.splitlines():
    if line.startswith('### '):
        diag_lines.append('#### '+line[4:])
    elif line.startswith('## '):
        diag_lines.append('### '+line[3:])
    elif line.startswith('# '):
        diag_lines.append('### '+line[2:])
    else:
        diag_lines.append(line)
diag_md='\n'.join(diag_lines).strip()

header=f'''---
title: 2027年目标第一轮沟通合并转写
scene: 2027年计划 / 第一轮目标沟通
line: 科研（广东、浙江）+ 诊断原料
owner: 营销中心销售管理
updated: 2026-11-06
confidence: 科研两场为ASR逐字稿；诊断原料仅有现成纪要
source:
  - 广州科研2027目标初次沟通-原文.docx
  - 浙江科研2027目标2次沟通-原文.docx
  - 刘欣发起的视频会议_会议纪要.md
---

# 2027年目标第一轮沟通合并转写

## 0. 转写范围与规则

本文件合并本轮三场沟通记录，来源均为用户提供的原始文件，未引入外部数据。

| 场次 | 业务线 | 来源类型 | 发言段/行 | 说明 |
|---|---|---:|---:|---|
| 广州科研2027目标初次沟通 | 科研-广东 | DOCX 逐字稿 | {len(gz_turns)} 段（原文 {gz_paras} 段） | ASR 原文，保留发言人与相对时间戳 |
| 浙江科研2027目标2次沟通 | 科研-浙江 | DOCX 逐字稿 | {len(zj_turns)} 段（原文 {zj_paras} 段） | ASR 原文，保留发言人与相对时间戳 |
| 刘欣发起的视频会议 | 诊断原料 | Markdown 纪要 | 71 行 | 原件本身是纪要，无逐字稿、无时间戳 |

转写规则：

1. 科研两场按原文逐段转写，不删口语、不合并发言、不把推测改写成结论。ASR 的同音词、断句和重复保留原样；疑似词见附录 B。
2. 诊断原料场次只有现成纪要，没有逐字记录。本文件全文收录该纪要，但不把它标注为逐字稿，也不补写未记录的发言人、时间或金额。
3. 数字按原文照录，未做四舍五入或单位换算。原文中同一事项出现不同数字时，两边并列，不做静默修正。
4. 两份纪要 DOCX 各含 1 张 AI 生成的摘要图。图片文字化见附录 C；图片没有提供正文之外的新数据。

## 一、广州科研 2027 目标初次沟通

| 项 | 内容 |
|---|---|
| 会议日期 | 2026-11-05 15:44:43 |
| 参与人 | 韩远怀、刘新元 |
| 时长 | 约 39 分 57 秒（最后时间戳 00:39:57） |
| 来源 | `广州科研2027目标初次沟通-原文.docx` |
| 配套纪要 | `广州科研2027目标初次沟通-纪要.docx` |
| 转写完整度 | 381 个发言段，原文 763 段；逐段提取，无空发言段 |

### 1.1 逐字转写

{fmt_turns(gz_turns)}

## 二、浙江科研 2027 目标 2 次沟通

| 项 | 内容 |
|---|---|
| 会议日期 | 2026-11-04 17:24:34 |
| 参与人 | 刘新元、吴云 |
| 时长 | 约 29 分 27 秒（最后时间戳 00:29:27） |
| 来源 | `浙江科研2027目标2次沟通-原文.docx` |
| 配套纪要 | `浙江科研2027目标2次沟通-纪要.docx` |
| 转写完整度 | 237 个发言段，原文 475 段；逐段提取，无空发言段 |

### 2.1 逐字转写

{fmt_turns(zj_turns)}

## 三、诊断原料 2027 目标沟通（纪要体）

| 项 | 内容 |
|---|---|
| 会议日期 | 未标注；文件生成时间为 2026-11-06 13:34 |
| 参与人 | 刘欣、刘新元 |
| 时长 | 约 1 小时 13 分钟（纪要记载） |
| 来源 | `刘欣发起的视频会议_会议纪要.md` |
| 完整度 | 无逐字稿；仅有 71 行现成纪要 |

> 以下是原纪要全文。它不是逐字稿，原件没有发言人和时间戳；引用时请用“纪要记载”，不要当作原话。

{diag_md}

## 附录 A：来源文件与完整性

| 文件 | 类型 | 字节 | SHA256（前 16 位） | 提取结果 |
|---|---|---:|---|---|
| 广州科研2027目标初次沟通-原文.docx | DOCX 逐字稿 | {os.path.getsize(BASE/'广州科研2027目标初次沟通-原文.docx')} | `{sha(BASE/'广州科研2027目标初次沟通-原文.docx')[:16]}` | 381 发言段 |
| 浙江科研2027目标2次沟通-原文.docx | DOCX 逐字稿 | {os.path.getsize(BASE/'浙江科研2027目标2次沟通-原文.docx')} | `{sha(BASE/'浙江科研2027目标2次沟通-原文.docx')[:16]}` | 237 发言段 |
| 刘欣发起的视频会议_会议纪要.md | Markdown 纪要 | {os.path.getsize(BASE/'刘欣发起的视频会议_会议纪要.md')} | `{sha(BASE/'刘欣发起的视频会议_会议纪要.md')[:16]}` | 71 行 |
| 广州科研2027目标初次沟通-纪要.docx | DOCX 纪要（含 1 图） | {os.path.getsize(BASE/'广州科研2027目标初次沟通-纪要.docx')} | `{sha(BASE/'广州科研2027目标初次沟通-纪要.docx')[:16]}` | 78 段 + 1 图 |
| 浙江科研2027目标2次沟通-纪要.docx | DOCX 纪要（含 1 图） | {os.path.getsize(BASE/'浙江科研2027目标2次沟通-纪要.docx')} | `{sha(BASE/'浙江科研2027目标2次沟通-纪要.docx')[:16]}` | 92 段 + 1 图 |

## 附录 B：ASR 疑似词与待核项

以下只列影响理解或影响后续行动的词，不在正文中静默替换。

| 原文写法 | 可能指 | 处理 |
|---|---|---|
| 诺威站 / 诺维站 / 诺维赞 | 诺唯赞 | 保留原文；纪要中统一写“诺唯赞”，引用原话时用原文 |
| 宝瑞 | 宝锐 | 保留原文；正文按“宝锐”理解 |
| 高宝珍 / 高宝真 | 高保真（酶/聚合酶） | 保留原文；需产品线确认具体货号 |
| 思乡 / 石香 / 诗香 | 同一名销售，姓名待核 | 保留原文；纪要首次出现时并列，后续沿用“思乡” |
| 金斯达 | 金斯瑞（待核） | 保留原文；需确认竞品全称 |
| IDQ / RTQ | 待核（可能指 RT-qPCR 相关产品） | 保留原文；需产品线确认 |
| 大麦 Mark / 大麦mark | 大分子量 Marker（待核） | 保留原文；需产品线确认 |
| 监控试剂盒 / 电控试剂盒 / 建库式集合 | 建库/监控相关试剂盒（待核） | 保留原文；需产品线确认 |
| 云云鹏 / 云浩 / 余浩 | 待核（可能为同一客户） | 保留原文；客户名以 ERP/CRM 为准 |

## 附录 C：纪要 DOCX 内嵌图片文字化

### C.1 广州科研纪要图

图片标题：`广州团队2027预算与销售规划`。图片为 AI 生成的摘要图，主要内容：

- 确定 300 万保底目标与人均 25-30 万产出标准，通过精细化商机管理驱动年底回款冲刺。
- 团队基线与成本：5 人编制；单人综合用人成本约 20-25 万；新增人员范负责番禺大学城业务；老员工建华、思乡业绩有保障；新员工彩虹及范处于发育期；需实现盈亏平衡。
- 业绩构成拆解：接触中课题组预计汇合 61 万；真正复购存量预计 20-30 多万；南科大 LAMP 项目单线可达 20 万；优秀销售人均波动达 60-80 万；引导客户年度囤货。
- 市场拓展策略：深圳、东莞及新成立院校为增长点；湛江、汕头、广西已预约代理商；利用年底库存窗口期切入竞品客户；重点跟进中大、华农等年定客户；小批量试用建立信任。
- 产品竞争力反馈：基础线具备竞争力，建库产品是薄弱项；QPCR/RT 产品在通用性上仍有优化空间；转变思维让客户做老师，收集缺陷数据；近期组织核心销售召开产品改进专题会；弥补科研端投入不足。
- 预算编制标准化：90% 概率为存量/高把握商机；40% 概率为竞争撬动型商机；10% 概率为突破/挑战型商机；统一使用月度汇报格式细化表格；客观呈现市场全貌。
- 年底回款冲刺：11-12 月是掏客户预算关键期；韩远怀周五复盘落实每人业务标准；重点跟进思乡（目标 35 万）冲刺计划；核实发票提交时间及客户付款周期；紧盯具体数字和动作。

### C.2 浙江科研纪要图

图片标题：`2027科研业务规划`。图片为 AI 生成的摘要图，主要内容：

- 确立分层概率预测模型，聚焦 WB 大麦 Mark 等新品增量，优化团队结构以突破增长瓶颈。
- 存量复购基本盘：高确定性 90%-100% 概率客户预计 27 万；维持现状如初三课题组，无显著增长；下滑风险受竞品低价冲击，需警惕流失；夯实基础，确保核心客户不流失。
- 增量机会分级：10% 为长周期替换及大型不确定项；30% 为依赖 WB 大麦 Mark 撬动的新品；50% 为小型闲散课题组，按半成功估算；WB 大麦 Mark 是明年增量的关键杠杆。
- 预测方法论：全量商机列入清单，按概率分层；分析各层级项目拿不回来的卡点；争取公司资源支持，避免业务萎缩；从结果导向转向过程管理与资源匹配。
- 区域商机挖掘：郑州云浩、张坤龙/王凡课题组潜力待挖；郑大杨聪、刘新等有 2-3 万打底增量；九江通过校友关系顺路拜访挖掘机会；线下收集准确数据，巩固温州迁移客户。
- 市场活动痛点：竞品周边吸引力强，我方活动设计仓促；合规风险增加，需设计深层互动形式；缺乏专职策划，销售自行策划效果一般；双十一促销实物≤5%、试剂≤15%；提前规划明年 5 月节点活动，避免仓促。
- 产研协同诉求：LAMP、建库试剂盒等需明确市场线索；产品部门需提供前期陪跑拜访支持；缩短市场教育时间，避免销售单打独斗。
- 团队管理与 Q4 行动：Q4 计划拆分 2-3 周完成；按 90% 重点客户与其他客户分类处理；吴云主导评估，骨干自行拆分计划；提交详细拆分表作为明年计划基础；人员优化调整，静飞主动性差持续观察、无改善则淘汰；海云客户暂由吴云接手，HR 继续招聘；宁可短期负担也要优化，避免耽误业务；解决头重脚轻风险，加速新人培养或引进。
'''
OUT.write_text(header, encoding='utf-8')
print('wrote', OUT, 'bytes', OUT.stat().st_size)
print('turns', len(gz_turns), len(zj_turns), 'diag lines', len(diag.splitlines()))
