From 3c79428246faf907882263d5d3d5dc376a1774a1 Mon Sep 17 00:00:00 2001 From: dongzi Date: Tue, 16 Jun 2026 16:50:27 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=80=9A=E7=9F=A5=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=86=E6=94=AF=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/codechecker/CodeCheckMain.java | 15 ++++++------ .../api/notify/ApiChangeNotifier.java | 24 ++++++++++--------- .../com/codechecker/git/GitChangeScanner.java | 18 ++++++++++++++ .../com/codechecker/notify/WeComNotifier.java | 16 +++++++------ .../api-templates/api-method-change.md | 1 + .../api-templates/api-param-change.md | 2 ++ .../api-templates/api-path-change.md | 3 +++ src/main/resources/notify-templates/README.md | 5 ++-- src/main/resources/notify-templates/dto.md | 1 + src/main/resources/notify-templates/entity.md | 1 + src/main/resources/notify-templates/model.md | 1 + src/main/resources/notify-templates/vo.md | 1 + .../api-templates/api-method-change.md | 1 + .../classes/api-templates/api-param-change.md | 2 ++ .../classes/api-templates/api-path-change.md | 3 +++ target/classes/notify-templates/README.md | 5 ++-- target/classes/notify-templates/dto.md | 1 + target/classes/notify-templates/entity.md | 1 + target/classes/notify-templates/model.md | 1 + target/classes/notify-templates/vo.md | 1 + 20 files changed, 74 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/codechecker/CodeCheckMain.java b/src/main/java/com/codechecker/CodeCheckMain.java index f26ae68..91a168d 100644 --- a/src/main/java/com/codechecker/CodeCheckMain.java +++ b/src/main/java/com/codechecker/CodeCheckMain.java @@ -68,6 +68,7 @@ public class CodeCheckMain implements Callable { } GitChangeScanner gitScanner = new GitChangeScanner(repoRoot.toAbsolutePath()); + String branch = gitScanner.getCurrentBranch(); DtoNestIndex nestIndex = DtoNestIndex.build(repoRoot.toAbsolutePath(), appConfig); List classReports = List.of(); List apiReports = List.of(); @@ -86,8 +87,8 @@ public class CodeCheckMain implements Callable { OverlapNotificationFilter.FilterResult filtered = OverlapNotificationFilter.apply( classReports, apiReports, appConfig.getDtoOverlapMode(), nestIndex); - int totalSent = sendClassNotifications(appConfig, filtered.classReports()) - + sendApiNotifications(appConfig, filtered.apiReports()); + int totalSent = sendClassNotifications(appConfig, filtered.classReports(), branch) + + sendApiNotifications(appConfig, filtered.apiReports(), branch); if (totalSent == 0 && appConfig.isOnlyOnChange()) { System.out.println("无变更,静默退出"); @@ -155,24 +156,24 @@ public class CodeCheckMain implements Callable { return new ArrayList<>(merged.values()); } - private int sendClassNotifications(AppConfig appConfig, List reports) { + private int sendClassNotifications(AppConfig appConfig, List reports, String branch) { if (reports.isEmpty()) { return 0; } WeComNotifier notifier = new WeComNotifier(); if (appConfig.isWecomEnabled()) { - return notifier.sendAll(appConfig.getWecomWebhookUrl(), reports, modifier, modifyTime); + return notifier.sendAll(appConfig.getWecomWebhookUrl(), reports, modifier, modifyTime, branch); } - notifier.logAll(reports, modifier, modifyTime); + notifier.logAll(reports, modifier, modifyTime, branch); return reports.size(); } - private int sendApiNotifications(AppConfig appConfig, List reports) { + private int sendApiNotifications(AppConfig appConfig, List reports, String branch) { if (reports.isEmpty()) { return 0; } ApiChangeNotifier notifier = new ApiChangeNotifier(); - return notifier.sendAll(appConfig.getWecomWebhookUrl(), reports, modifier, modifyTime, + return notifier.sendAll(appConfig.getWecomWebhookUrl(), reports, modifier, modifyTime, branch, appConfig.isWecomEnabled()); } } diff --git a/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java b/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java index f620d05..db2ac18 100644 --- a/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java +++ b/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java @@ -18,14 +18,14 @@ public class ApiChangeNotifier { private final WeComMarkdownSender sender = new WeComMarkdownSender(); public int sendAll(String webhookUrl, List reports, - String modifier, String modifyTime, boolean wecomEnabled) { + String modifier, String modifyTime, String branch, boolean wecomEnabled) { if (reports == null || reports.isEmpty()) { System.out.println("无 API 变更,不发送通知"); return 0; } int sent = 0; for (EndpointChangeReport report : reports) { - String markdown = buildMarkdown(report, modifier, modifyTime); + String markdown = buildMarkdown(report, modifier, modifyTime, branch); if (wecomEnabled) { if (sender.send(webhookUrl, markdown)) { sent++; @@ -43,20 +43,20 @@ public class ApiChangeNotifier { return sent; } - public String buildMarkdown(EndpointChangeReport report, String modifier, String modifyTime) { + public String buildMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) { ApiChangeKind kind = report.getChangeKind(); if (kind == ApiChangeKind.PATH_CHANGED || kind == ApiChangeKind.NEW_ENDPOINT || kind == ApiChangeKind.REMOVED_ENDPOINT) { - return buildPathMarkdown(report, modifier, modifyTime); + return buildPathMarkdown(report, modifier, modifyTime, branch); } if (kind == ApiChangeKind.METHOD_CHANGED) { - return buildMethodMarkdown(report, modifier, modifyTime); + return buildMethodMarkdown(report, modifier, modifyTime, branch); } - return buildParamMarkdown(report, modifier, modifyTime); + return buildParamMarkdown(report, modifier, modifyTime, branch); } - private String buildPathMarkdown(EndpointChangeReport report, String modifier, String modifyTime) { + private String buildPathMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) { String changeLabel; switch (report.getChangeKind()) { case NEW_ENDPOINT: @@ -72,10 +72,10 @@ public class ApiChangeNotifier { StringBuilder sb = new StringBuilder(); sb.append("# 【API路径变更通知】").append("\n\n"); sb.append(MarkdownStyles.quoteKvBold("变更类型", MarkdownStyles.colorWarning(changeLabel))).append("\n"); - sb.append(MarkdownStyles.quoteKvBold("路径", - MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("时间", MarkdownStyles.colorComment(modifyTime))).append("\n"); + sb.append(MarkdownStyles.quoteKvBold("路径", MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n"); + sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n"); sb.append("\n## 【URI变更详情】").append("\n\n"); sb.append(MarkdownStyles.quoteKvBold("接口说明", formatEndpointDescription(report))).append("\n"); appendPathUriLines(sb, report, changeLabel); @@ -103,12 +103,13 @@ public class ApiChangeNotifier { } } - private String buildMethodMarkdown(EndpointChangeReport report, String modifier, String modifyTime) { + private String buildMethodMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) { StringBuilder sb = new StringBuilder(); sb.append("# 【API请求方式变更通知】").append("\n\n"); sb.append(MarkdownStyles.quoteKvBold("变更类型", MarkdownStyles.colorWarning("修改请求方式"))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("路径", MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n"); + sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("时间", MarkdownStyles.colorComment(modifyTime))).append("\n"); sb.append("\n## 【请求方式变更详情】").append("\n\n"); @@ -122,7 +123,7 @@ public class ApiChangeNotifier { return sb.toString(); } - private String buildParamMarkdown(EndpointChangeReport report, String modifier, String modifyTime) { + private String buildParamMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) { StringBuilder sb = new StringBuilder(); sb.append("# 【API参数变更通知】").append("\n\n"); sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n"); @@ -133,6 +134,7 @@ public class ApiChangeNotifier { + MarkdownStyles.inlineCode(report.getUri()))).append("\n"); sb.append(MarkdownStyles.quoteKvBold("路径", MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n"); + sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n"); sb.append("\n## 【接口参数变动详情】").append("\n\n"); appendParameterDetails(sb, report); return sb.toString(); diff --git a/src/main/java/com/codechecker/git/GitChangeScanner.java b/src/main/java/com/codechecker/git/GitChangeScanner.java index f7716bf..cbe87d5 100644 --- a/src/main/java/com/codechecker/git/GitChangeScanner.java +++ b/src/main/java/com/codechecker/git/GitChangeScanner.java @@ -23,6 +23,7 @@ import java.util.Map; public class GitChangeScanner { private final Path repoRoot; private final ClassDeclParser classDeclParser = new ClassDeclParser(); + public static final String UNKNOWN_BRANCH = "未知"; public GitChangeScanner(Path repoRoot) { this.repoRoot = repoRoot; @@ -203,6 +204,23 @@ public class GitChangeScanner { return runGit("diff", "--name-only", oldSha, newSha); } + /** 获取当前检出的分支名(detached HEAD 等情况返回「未知」) */ + public String getCurrentBranch() { + try { + List lines = runGit("rev-parse", "--abbrev-ref", "HEAD"); + if (lines.isEmpty()) { + return UNKNOWN_BRANCH; + } + String branch = lines.get(0) == null ? "" : lines.get(0).trim(); + if (branch.isBlank() || "HEAD".equalsIgnoreCase(branch)) { + return UNKNOWN_BRANCH; + } + return branch; + } catch (IOException e) { + return UNKNOWN_BRANCH; + } + } + /** 在 repoRoot 下执行 git 命令并返回 stdout 行 */ private List runGit(String... args) throws IOException { String[] command = new String[args.length + 3]; diff --git a/src/main/java/com/codechecker/notify/WeComNotifier.java b/src/main/java/com/codechecker/notify/WeComNotifier.java index f05dffe..bea5b8b 100644 --- a/src/main/java/com/codechecker/notify/WeComNotifier.java +++ b/src/main/java/com/codechecker/notify/WeComNotifier.java @@ -20,7 +20,8 @@ public class WeComNotifier { private final WeComMarkdownSender sender = new WeComMarkdownSender(); /** 逐条发送企微通知,返回成功条数 */ - public int sendAll(String webhookUrl, List reports, String modifier, String modifyTime) { + public int sendAll(String webhookUrl, List reports, + String modifier, String modifyTime, String branch) { if (reports == null || reports.isEmpty()) { System.out.println("无类变更,不发送到企业微信"); return 0; @@ -28,7 +29,7 @@ public class WeComNotifier { int sent = 0; for (ClassChangeReport report : reports) { - String markdown = buildMarkdown(report, modifier, modifyTime); + String markdown = buildMarkdown(report, modifier, modifyTime, branch); if (postMarkdown(webhookUrl, markdown)) { sent++; System.out.println("已发送类变更通知: " + report.getClassName()); @@ -41,7 +42,7 @@ public class WeComNotifier { } /** 企微关闭时打印 Markdown 到控制台 */ - public void logAll(List reports, String modifier, String modifyTime) { + public void logAll(List reports, String modifier, String modifyTime, String branch) { if (reports == null || reports.isEmpty()) { System.out.println("无类变更,无日志输出"); return; @@ -52,17 +53,17 @@ public class WeComNotifier { ClassChangeReport report = reports.get(i); System.out.println("========== 类变更 [" + (i + 1) + "/" + reports.size() + "]: " + report.getClassName() + " =========="); - System.out.println(buildMarkdown(report, modifier, modifyTime)); + System.out.println(buildMarkdown(report, modifier, modifyTime, branch)); System.out.println("========== 结束 =========="); } System.out.println("共 " + reports.size() + " 条类变更结果(未发送到企业微信)"); } /** 组装完整 Markdown 正文(引用块 + 换行,每项独立一行) */ - public String buildMarkdown(ClassChangeReport report, String modifier, String modifyTime) { + public String buildMarkdown(ClassChangeReport report, String modifier, String modifyTime, String branch) { StringBuilder sb = new StringBuilder(); sb.append("# 【类变更通知】").append("\n\n"); - appendHeader(sb, report, modifier, modifyTime); + appendHeader(sb, report, modifier, modifyTime, branch); sb.append("\n## 【对象变更细节】").append("\n\n"); appendChangeDetails(sb, report); @@ -87,11 +88,12 @@ public class WeComNotifier { /** 头部元信息,每项一行引用(加粗) */ private void appendHeader(StringBuilder sb, ClassChangeReport report, - String modifier, String modifyTime) { + String modifier, String modifyTime, String branch) { sb.append(quoteKvBold("变更对象", formatChangeTarget(report))).append("\n"); sb.append(quoteKvBold("修改人", colorComment(modifier))).append("\n"); sb.append(quoteKvBold("时间", colorComment(modifyTime))).append("\n"); sb.append(quoteKvBold("路径", colorComment(report.getSourceFile()))).append("\n"); + sb.append(quoteKvBold("分支", colorComment(branch))).append("\n"); } /** 渲染删除 / 重命名 / 字段变更 */ diff --git a/src/main/resources/api-templates/api-method-change.md b/src/main/resources/api-templates/api-method-change.md index bcbbdb8..bab69d5 100644 --- a/src/main/resources/api-templates/api-method-change.md +++ b/src/main/resources/api-templates/api-method-change.md @@ -14,6 +14,7 @@ 变更类型: **修改请求方式** 路径: **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 diff --git a/src/main/resources/api-templates/api-param-change.md b/src/main/resources/api-templates/api-param-change.md index 18c5c16..7641d35 100644 --- a/src/main/resources/api-templates/api-param-change.md +++ b/src/main/resources/api-templates/api-param-change.md @@ -15,6 +15,7 @@ - **变更类型:** **修改参数** - **URI:** **POST** `/apply/clockIn` - **路径:** **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** +- **分支:** code/code_change_detection_v1.0 --------------------------------------- @@ -51,6 +52,7 @@ - **变更类型:** **修改参数** - **URI:** **GET** `/apply/clockIn/{id}` - **路径:** **jnpf-ftb/.../ApplyClockInController.java** +- **分支:** code/code_change_detection_v1.0 --------------------------------------- diff --git a/src/main/resources/api-templates/api-path-change.md b/src/main/resources/api-templates/api-path-change.md index 63f48db..4b1bd70 100644 --- a/src/main/resources/api-templates/api-path-change.md +++ b/src/main/resources/api-templates/api-path-change.md @@ -12,6 +12,7 @@ 变更类型: **修改路径** 路径: **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 @@ -31,6 +32,7 @@ 变更类型: **新增接口** 路径: **jnpf-ftb/.../ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 @@ -52,6 +54,7 @@ 变更类型: **删除接口** 路径: **jnpf-ftb/.../ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 diff --git a/src/main/resources/notify-templates/README.md b/src/main/resources/notify-templates/README.md index cc4c241..7e35601 100644 --- a/src/main/resources/notify-templates/README.md +++ b/src/main/resources/notify-templates/README.md @@ -11,14 +11,14 @@ Push 触发 CI 后,按变更类的后缀(`Dto` / `Vo` / `Entity` / `Model` | `#` / `##` / `###` | 标题(主区块用【】) | | `` `行内代码` `` | 字段名、URI | | `>` | 引用行(每项一行) | -| `**bold**` | 头部四行、统计行加粗 | +| `**bold**` | 头部五行、统计行加粗 | | `` | 绿:类名、新增、HTTP 方法、新类型 | | `` | 灰:说明、路径、无影响 | | `` | 橙:[修改]/[删除]、旧类型、统计数字 | ## 布局约定 -1. **# 【类变更通知】** — 头部 4 项,每项一行 `>**标签: 值**`(加粗,冒号后两空格);变更对象括号内展示类中文说明(@Schema / @ApiModel / Javadoc),无说明则仅类名 +1. **# 【类变更通知】** — 头部 5 项(新增「分支」),每项一行 `>**标签: 值**`(加粗,冒号后两空格);变更对象括号内展示类中文说明(@Schema / @ApiModel / Javadoc),无说明则仅类名 2. **## 【对象变更细节】** — 统计行 + 每条变更单行(标签/说明/类型合并) 3. **## 【影响范围】** — 各 ### 小节内,每项一行引用 @@ -31,6 +31,7 @@ Push 触发 CI 后,按变更类的后缀(`Dto` / `Vo` / `Entity` / `Model` > **修改人: dongzi** > **时间: 2026-06-07 20:14:35** > **路径: jnpf-ftb/.../ApplyAttendanceChangeDto.java** +> **分支: code/code_change_detection_v1.0** ``` ## 影响范围 diff --git a/src/main/resources/notify-templates/dto.md b/src/main/resources/notify-templates/dto.md index b4789e6..e4f54dd 100644 --- a/src/main/resources/notify-templates/dto.md +++ b/src/main/resources/notify-templates/dto.md @@ -15,6 +15,7 @@ > **修改人: dongzi** > **时间: 2026-06-07 20:14:35** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/workflow/dto/ApplyAttendanceChangeDto.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/src/main/resources/notify-templates/entity.md b/src/main/resources/notify-templates/entity.md index 22f74cd..ecb66a5 100644 --- a/src/main/resources/notify-templates/entity.md +++ b/src/main/resources/notify-templates/entity.md @@ -14,6 +14,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/entity/training/TrainingPositionEntity.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/src/main/resources/notify-templates/model.md b/src/main/resources/notify-templates/model.md index e8223f7..0b1536e 100644 --- a/src/main/resources/notify-templates/model.md +++ b/src/main/resources/notify-templates/model.md @@ -14,6 +14,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/attendance/AttendanceRuleModel.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/src/main/resources/notify-templates/vo.md b/src/main/resources/notify-templates/vo.md index 359630e..b736391 100644 --- a/src/main/resources/notify-templates/vo.md +++ b/src/main/resources/notify-templates/vo.md @@ -15,6 +15,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/attendance/vo/AttendanceDetailVo.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/target/classes/api-templates/api-method-change.md b/target/classes/api-templates/api-method-change.md index bcbbdb8..bab69d5 100644 --- a/target/classes/api-templates/api-method-change.md +++ b/target/classes/api-templates/api-method-change.md @@ -14,6 +14,7 @@ 变更类型: **修改请求方式** 路径: **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 diff --git a/target/classes/api-templates/api-param-change.md b/target/classes/api-templates/api-param-change.md index 18c5c16..7641d35 100644 --- a/target/classes/api-templates/api-param-change.md +++ b/target/classes/api-templates/api-param-change.md @@ -15,6 +15,7 @@ - **变更类型:** **修改参数** - **URI:** **POST** `/apply/clockIn` - **路径:** **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** +- **分支:** code/code_change_detection_v1.0 --------------------------------------- @@ -51,6 +52,7 @@ - **变更类型:** **修改参数** - **URI:** **GET** `/apply/clockIn/{id}` - **路径:** **jnpf-ftb/.../ApplyClockInController.java** +- **分支:** code/code_change_detection_v1.0 --------------------------------------- diff --git a/target/classes/api-templates/api-path-change.md b/target/classes/api-templates/api-path-change.md index 63f48db..4b1bd70 100644 --- a/target/classes/api-templates/api-path-change.md +++ b/target/classes/api-templates/api-path-change.md @@ -12,6 +12,7 @@ 变更类型: **修改路径** 路径: **jnpf-ftb/jnpf-ftb-biz/src/main/java/jnpf/workflow/controller/ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 @@ -31,6 +32,7 @@ 变更类型: **新增接口** 路径: **jnpf-ftb/.../ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 @@ -52,6 +54,7 @@ 变更类型: **删除接口** 路径: **jnpf-ftb/.../ApplyClockInController.java** + 分支: code/code_change_detection_v1.0 修改人: dongzi 修改时间: 2026-06-08 16:30:00 diff --git a/target/classes/notify-templates/README.md b/target/classes/notify-templates/README.md index cc4c241..7e35601 100644 --- a/target/classes/notify-templates/README.md +++ b/target/classes/notify-templates/README.md @@ -11,14 +11,14 @@ Push 触发 CI 后,按变更类的后缀(`Dto` / `Vo` / `Entity` / `Model` | `#` / `##` / `###` | 标题(主区块用【】) | | `` `行内代码` `` | 字段名、URI | | `>` | 引用行(每项一行) | -| `**bold**` | 头部四行、统计行加粗 | +| `**bold**` | 头部五行、统计行加粗 | | `` | 绿:类名、新增、HTTP 方法、新类型 | | `` | 灰:说明、路径、无影响 | | `` | 橙:[修改]/[删除]、旧类型、统计数字 | ## 布局约定 -1. **# 【类变更通知】** — 头部 4 项,每项一行 `>**标签: 值**`(加粗,冒号后两空格);变更对象括号内展示类中文说明(@Schema / @ApiModel / Javadoc),无说明则仅类名 +1. **# 【类变更通知】** — 头部 5 项(新增「分支」),每项一行 `>**标签: 值**`(加粗,冒号后两空格);变更对象括号内展示类中文说明(@Schema / @ApiModel / Javadoc),无说明则仅类名 2. **## 【对象变更细节】** — 统计行 + 每条变更单行(标签/说明/类型合并) 3. **## 【影响范围】** — 各 ### 小节内,每项一行引用 @@ -31,6 +31,7 @@ Push 触发 CI 后,按变更类的后缀(`Dto` / `Vo` / `Entity` / `Model` > **修改人: dongzi** > **时间: 2026-06-07 20:14:35** > **路径: jnpf-ftb/.../ApplyAttendanceChangeDto.java** +> **分支: code/code_change_detection_v1.0** ``` ## 影响范围 diff --git a/target/classes/notify-templates/dto.md b/target/classes/notify-templates/dto.md index b4789e6..e4f54dd 100644 --- a/target/classes/notify-templates/dto.md +++ b/target/classes/notify-templates/dto.md @@ -15,6 +15,7 @@ > **修改人: dongzi** > **时间: 2026-06-07 20:14:35** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/workflow/dto/ApplyAttendanceChangeDto.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/target/classes/notify-templates/entity.md b/target/classes/notify-templates/entity.md index 22f74cd..ecb66a5 100644 --- a/target/classes/notify-templates/entity.md +++ b/target/classes/notify-templates/entity.md @@ -14,6 +14,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/entity/training/TrainingPositionEntity.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/target/classes/notify-templates/model.md b/target/classes/notify-templates/model.md index e8223f7..0b1536e 100644 --- a/target/classes/notify-templates/model.md +++ b/target/classes/notify-templates/model.md @@ -14,6 +14,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/attendance/AttendanceRuleModel.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】 diff --git a/target/classes/notify-templates/vo.md b/target/classes/notify-templates/vo.md index 359630e..b736391 100644 --- a/target/classes/notify-templates/vo.md +++ b/target/classes/notify-templates/vo.md @@ -15,6 +15,7 @@ > **修改人: 张三** > **时间: 2026-06-07 14:30:00** > **路径: jnpf-ftb/jnpf-ftb-entity/src/main/java/jnpf/model/attendance/vo/AttendanceDetailVo.java** +> **分支: code/code_change_detection_v1.0** ## 【对象变更细节】