字段修改匹配规则优化
All checks were successful
类变更检测 / class-change-check (push) Successful in 14s

This commit is contained in:
2026-06-08 16:16:39 +08:00
parent ba1cc6aa4e
commit e367d4257f
4 changed files with 172 additions and 23 deletions

View File

@@ -16,11 +16,11 @@
每条变更占**一行**,标签、说明、类型横向排列,冒号后两空格:
```
> **共 <font color="warning">4</font> 项变更**
> **共 <font color="warning">2</font> 项变更**
> <font color="warning">[修改]</font> `taskId` 说明: <font color="comment">流程主键</font> 类型: <font color="warning">Integer</font> <font color="info">String</font>
> <font color="warning">[重命名]</font> <font color="comment">taskId</font> <font color="info">taskIds</font> 说明: <font color="comment">流程主键</font>
> <font color="info">[新增]</font> `storeId` 说明: <font color="comment">门店ID</font>
> <font color="warning">[删除]</font> `changeUserNickName` 说明: <font color="comment">变更人员别名</font>
```
| 操作 | 标签 | 类型段 |
@@ -28,6 +28,14 @@
| 新增 | info `[新增]` | 无 |
| 删除 | warning `[删除]` | 无 |
| 修改 | warning `[修改]` | 仅类型变化时出现 |
| 重命名 | warning `[重命名]` | 说明匹配时合并删除+新增;类型变化时附带类型行 |
### 重命名配对规则
- 删除+新增且**类型相同、说明相同**(非空)→ `[重命名]`
- 删除+新增且**说明相同但类型不同** → `[重命名]` + 类型行
- 说明均为空时也可配对
- 说明不同则不配对,保持删除+新增
- 统计行加粗,数字用 warning橙色文案为「共 N 项变更」(不含「字段」)
- 多条变更之间用**空行**分隔
@@ -43,5 +51,5 @@
## 实现
- `ClassFieldParser.extractFieldLabel()`
- `FieldDiffEngine`类型变化产生 `[修改]`
- `FieldDiffEngine` — 类型变化产生 `[修改]`,说明匹配的删除+新增合并为 `[重命名]`
- `WeComNotifier.formatFieldChange()`