1.7 KiB
1.7 KiB
检测已审查文件重复处理(Workflow产出双版本问题)
2026-07-13 消防设施检测合同教训
现象
同一份合同在任务交付目录出现两个文件:
- v1: 有WB tracked changes(正确交付物)
- v2: 无tracked changes + 有WB批注(纯批注版)
诊断方法
# 快速判断文件性质
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。