feat: 完成 issue #18 [M1] 向客户发送《数据准备清单》并跟踪回执

This commit is contained in:
2026-08-04 23:12:05 +08:00
parent 4e9d0e60c9
commit 34c15f7ff8
2 changed files with 164 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
"""数据准备清单文档(docs/数据准备清单.md)一致性检查。
检查项:
1. 必备章节齐全(数据项总览 / 时间表 / 回执单模板 / 回执跟踪机制);
2. 引用的数据项模板文件(#16/#17/#19 交付物)真实存在;
3. 关键时间表节点(提前 2 周 / 首轮催办 / 二次催办)存在。
用法:python _check_data_prep_doc.py
"""
import os
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
DOC_PATH = os.path.join(HERE, "数据准备清单.md")
REQUIRED_SECTIONS = [
"## 2. 数据准备项总览",
"## 4. 时间表与里程碑",
"## 5. 回执单模板",
"## 6. 回执跟踪机制",
]
# 引用的模板文档(#16/#17/#19 交付物)需真实存在
REFERENCED_DOCS = [
"DCS点表需求模板.md",
"LIMS质检接口字段清单.md",
"网络拓扑与隔离策略.md",
]
KEY_PHRASES = ["提前 2 周", "首轮催办", "二次催办", "缺省通用点位集"]
def main() -> int:
failures = []
text = open(DOC_PATH, "r", encoding="utf-8").read()
for sec in REQUIRED_SECTIONS:
if sec not in text:
failures.append(f"缺少必备章节:{sec}")
for ref in REFERENCED_DOCS:
if not os.path.isfile(os.path.join(HERE, ref)):
failures.append(f"引用模板文档缺失:{ref}")
for phrase in KEY_PHRASES:
if phrase not in text:
failures.append(f"缺少关键短语:{phrase}")
if failures:
print("FAIL")
for f in failures:
print(" -", f)
return 1
print("OK: 章节/引用模板/时间表节点校验通过")
return 0
if __name__ == "__main__":
sys.exit(main())
+104
View File
@@ -0,0 +1,104 @@
# 数据准备清单(客户版)与回执跟踪
> 对应 EPIC #2「[M1] 数据准备」子任务 **#18**(0.5d):
> 向客户发送《数据准备清单》并**跟踪回执**。
> M1 里程碑(需求冻结 2026-09)依赖客户数据提前 2 周到位(PRD 13 章),
> 本清单为发送给客户的正式文档 + 内部回执跟踪机制。
---
## 1. 发送说明
| 项 | 内容 |
| --- | --- |
| 发送对象 | 客户方:生产部(车间主任)、仪表/自动化科、质检科、IT/信息科 |
| 发送时机 | **M1 需求冻结前 2 周**(PRD 13 章:提前 2 周发出数据准备清单) |
| 发送方式 | 邮件 + 纸质/电子签收(项目群同步) |
| 抄送 | 我方:项目经理(bot_pm)、实施工程师、平台产品(bot_po) |
| 对应数据项模板 | DCS 点表 → `docs/DCS点表需求模板.md`(#16);LIMS/质检 → `docs/LIMS质检接口字段清单.md`(#17);网络勘查 → `docs/网络拓扑与隔离策略.md`(#19) |
---
## 2. 数据准备项总览
| # | 数据项 | 用途 | 模板/清单 | 依赖部门 | 优先级 |
| --- | --- | --- | --- | --- | --- |
| D1 | DCS 点表(点位/量纲/采样率) | 点位字典与采集范围 | DCS点表需求模板.md(#16) | 仪表/自动化科 | P0 |
| D2 | LIMS/质检接口字段与推送频率 | 质量标签(模型监督目标) | LIMS质检接口字段清单.md(#17) | 质检科 | P0 |
| D3 | 历史数据(≥6 个月标注) | 监督模型训练 | 批量导出要求(见 §4) | 生产部/质检科 | P1 |
| D4 | 采集网/工业环网/办公网拓扑 | 网络隔离与部署方案 | 网络拓扑与隔离策略.md(#19) | IT/信息科 | P1 |
| D5 | 机房条件(机柜/供电/散热) | 边缘网关与服务器部署 | 网络拓扑与隔离策略.md §6 | IT/信息科 | P1 |
| D6 | 系统账号与权限(OPC/只读连接) | 只读采集接入 | DCS点表需求模板.md §2 | 仪表/自动化科 | P1 |
---
## 3. 各数据项详细要求
**D1 · DCS 点表**(P0)
- 按 `docs/DCS点表需求模板.md` 字段规范填写(9 列,可整表复制为 CSV);
- 覆盖:氯化车间全部工艺测点 + 能源/公用点位;采样率分级填写;
- 交付物:点表 Excel/CSV + 系统对接信息表。
**D2 · LIMS/质检接口**(P0)
- 按 `docs/LIMS质检接口字段清单.md` 填写系统信息 + 指标清单(tag_id/单位/推送频率);
- 一期无接口时:提供人工录入/批量导入模板(化验员按批次录入);
- 交付物:接口字段清单 + 指标清单 Excel。
**D3 · 历史数据**(P1)
- 质量预测训练需 **≥ 6 个月**历史标注(PRD 13 章);
- 字段:batch_id / 工艺参数快照 / 质量指标 / 时间戳;
- 交付物:历史批次表(CSV/数据库导出)。
**D4–D6 · 网络与机房**(P1)
- 按 `docs/网络拓扑与隔离策略.md` §6 现场勘查清单回填;
- 提供:三网拓扑图、IP 段规划、网闸/防火墙型号、OPC 服务器信息、机房条件。
---
## 4. 时间表与里程碑
| 时间点 | 事项 | 责任方 |
| --- | --- | --- |
| T-2 周 | 发送本清单 + 各数据项模板 | 我方项目经理/实施 |
| T-1 周 | 首轮催办(未回执项逐项确认) | 我方项目经理 |
| T-3 天 | 二次催办 + 风险项升级上报 | 我方项目经理/产品 |
| T(M1 冻结) | 数据回执截止;未到位项启用备选方案(缺省点位集 #20 等) | 双方 |
| T+1 周 | 数据接收校验与登记;缺口补采计划 | 实施工程师 |
> 缺省数据策略(PRD 13 章):D1 点表延迟 → 启用缺省通用点位集(#20)先行演示;
> D2 接口未定 → 人工录入过渡;D3 标注不足 → 无监督/阈值模型先行。
---
## 5. 回执单模板(客户填写)
| 数据项 | 是否可提供 | 预计提供时间 | 对接负责人 | 风险/备注 |
| --- | --- | --- | --- | --- |
| D1 DCS 点表 | ☐ 是 ☐ 否 | | | |
| D2 LIMS/质检接口 | ☐ 是 ☐ 否(转人工) | | | |
| D3 历史数据 | ☐ 是 ☐ 否 | | | |
| D4 网络拓扑 | ☐ 是 ☐ 否 | | | |
| D5 机房条件 | ☐ 是 ☐ 否 | | | |
| D6 系统账号权限 | ☐ 是 ☐ 否 | | | |
客户方确认人:____________ 日期:____________
---
## 6. 回执跟踪机制(内部)
1. **登记**:发送后 1 个工作日内登记回执状态(`docs/_data_prep_tracker.md` 或跟踪表);
2. **跟踪**:每周例会核对;T-1 周首轮催办、T-3 天二次催办(§4 时间表);
3. **接收校验**:收到回执后由实施工程师按对应模板校验(字段完整性/格式);
4. **风险升级**:P0 项(D1/D2)回执缺失或明显无法按期 → 立即上报 bot_pm/bot_po,
触发 PRD 13 章备选方案(缺省点位集/人工录入过渡);
5. **归档**:回执与校验结果归档至项目文档库,作为 M1 需求冻结评审输入。
---
## 7. 关联任务
- #16 DCS 点表需求模板、#17 LIMS 质检接口字段清单、#19 网络拓扑与隔离策略:
本清单的数据项模板来源;
- #20 缺省通用点位集:D1 延迟时的演示备选;
- PRD 13 章依赖矩阵:本清单触发条件与备选方案的依据。