类变更通知模版
Push 触发 CI 后,按变更类的后缀(Dto / Vo / Entity / Model)选用对应模版生成企业微信 Markdown 通知。
企微语法说明
使用 webhook markdown(v1),支持 font 三色;不支持无序列表,故各项以引用块 + 换行分行展示。
| 语法 | 说明 |
|---|---|
# / ## / ### |
标题(主区块用【】) |
`行内代码` |
字段名、URI |
> |
引用行(每项一行) |
**bold** |
头部四行、统计行加粗 |
<font color="info"> |
绿:类名、新增、HTTP 方法、新类型 |
<font color="comment"> |
灰:说明、路径、无影响 |
<font color="warning"> |
橙:[修改]/[删除]、旧类型、统计数字 |
布局约定
- # 【类变更通知】 — 头部 4 项,每项一行
>**标签: 值**(加粗,冒号后两空格);变更对象括号内展示类中文说明(@Schema / @ApiModel / Javadoc),无说明则仅类名 - ## 【对象变更细节】 — 统计行 + 每条变更单行(标签/说明/类型合并)
- ## 【影响范围】 — 各 ### 小节内,每项一行引用
公共头部
# 【类变更通知】
> **变更对象: <font color="info">ApplyAttendanceChangeDto</font>(<font color="comment">流程表单 [出勤变更]</font>)**
> **修改人: <font color="comment">dongzi</font>**
> **时间: <font color="comment">2026-06-07 20:14:35</font>**
> **路径: <font color="comment">jnpf-ftb/.../ApplyAttendanceChangeDto.java</font>**
影响范围
| 类类型 | request | response | 类转换 |
|---|---|---|---|
| Dto | ✅ | ✅ | ✅ |
| Vo | ✅ | ✅ | ✅ |
| Entity / Model | ❌ | ❌ | ✅ |
Dto/Vo 均固定展示 request、response 两栏;无匹配接口时显示「无」。类转换栏仅在 dto_entity_conversion.enabled: true 时展示,关闭时不出现该小节。实际影响由接口索引 + 嵌套关系传播,不假定 Dto 仅 request、Vo 仅 response。
模版文件
| 文件 | 场景 |
|---|---|
| field-description.md | 字段说明与行格式 |
| dto.md | Dto |
| vo.md | Vo |
| entity.md | Entity |
| model.md | Model |
实现
| 组件 | 职责 |
|---|---|
ClassDeclParser.extractClassDescription() |
类级中文说明(Dto / Vo / Entity / Model 通用) |
ClassFieldParser.extractFieldLabel() |
字段中文说明(四类通用) |
ClassChangeAnalyzer |
编排 diff 并写入 ClassChangeReport |
WeComNotifier.buildMarkdown() |
渲染企微 markdown 通知 |
路径取自 ClassChangeReport.sourceFile。