# 检测已审查文件重复处理(Workflow产出双版本问题) ## 2026-07-13 消防设施检测合同教训 ### 现象 同一份合同在任务交付目录出现两个文件: - v1: 有WB tracked changes(正确交付物) - v2: 无tracked changes + 有WB批注(纯批注版) ### 诊断方法 ```python # 快速判断文件性质 with zipfile.ZipFile(filepath, 'r') as z: doc_xml = z.read('word/document.xml') # 检查tracked changes ins_count = doc_xml.count(b'w:ins') del_count = doc_xml.count(b'w:del') # 检查批注 has_comments = 'word/comments.xml' in z.namelist() if has_comments: comments = z.read('word/comments.xml') comment_count = comments.count(b'w:comment ') print(f"INS: {ins_count}, DEL: {del_count}, Comments: {comment_count}") ``` ### 判断标准 | 文件状态 | 性质 | 应否保留 | |----------|------|----------| | 有INS/DEL + 无comments | 标准修订版 | ✅ 正确交付物 | | 有INS/DEL + 有comments | 修订+批注版 | ✅ 正确 | | 无INS/DEL + 有comments | 纯批注版 | ⚠️ 需审查批注合规性 | | 无INS/DEL + 无comments | 原文副本 | ❌ 不应在交付目录 | ### 纯批注版的审查要点 - 是否违反"能改就不批注"原则 - 批注立场是否正确(站甲方) - 是否属于"提醒性批注"(禁止) - **严重错误示例**:Comment 203建议"违约金偏高,建议设上限"——这是在帮乙方限制甲方的违约金权利,立场完全反了 ### python-docx的.text陷阱 `paragraph.text`不反映批注内容。两份文件的`.text`可能100%相同但实际一份有6条批注。**判断文件是否相同必须检查comments.xml**。