43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
# 检测已审查文件重复处理(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**。
|