确定性注释审查 harness(cmr),程序决定审什么、agent 负责推理: - 轻量状态机提取注释(Java/TS/JS/Vue/SQL/YAML/Shell/Python),过程性模式分级 P0/P1/P2/INFO - 分层规则(CLI/项目/用户/内置)、全库 scan 与 Git 增量 diff(工作区/分支/提交) - 悬空引用两级判定:确认失效 P0(附近似候选与查找依据)与待核实 P1(外部路径/构建产物/跨仓裸文件名) - testdata/corpus 56 条人工判定样例库 + 记分卡回归门禁;npm test 30/30
27 KiB
Comment Review Spec (scan)
- repo: C:\Development\Code\zhgl\zhgl-server
- rules: project (C:\Development\Code\zhgl\zhgl-server.commentreview\rule.json)
- files: 1030 | comments: 8386 | candidates: 55
- severity: P0=5 P1=33 P2=17 INFO=0
Comment Rule Group 1: project / **
Applies to:
- .gitlab-ci.yml
- script\bin\ts.sh
- zhgl-admin\src\main\resources\application.yml
- zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java
- zhgl-common\zhgl-common-mybatis\src\main\java\com\zhgl\common\mybatis\aspect\DataPermissionPointcut.java
- zhgl-common\zhgl-common-social\src\main\java\me\zhyd\oauth\request\AuthDingTalkV2Request.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\support\OaWorkflowNodes.java
Content
注释通用质量(内置规则)
注释只回答三问:是什么(作用域/职责)、受何约束(业务规则、前提、坑)、行为是什么(非显然的行为说明)。
禁止(过程叙述,git 提交消息的职责)
- 日期戳、迭代/阶段编号(阶段 3、第二阶段、Phase N)、文档版本号
- 版本演变起点("v2.1 起…")→ 改写为当前结构语义
- 实测/性能回忆("实测 594s 挂死")、"曾在某环境"类环境记忆
- 提交溯源(commit hash)、来源仓、评审编号引用(R6 修正)
- 历史因果词(曾致/曾被/早期版本误用/迁移期教训/取代原先/反哺)
- 悬空引用:引用仓库中不存在的文档/文件/章节 → 删除引用
豁免(合法保留,勿误杀)
- 引用真实存在的带日期文档,按实际文件名保留(改名会伪造记录)
- 数据/行为事实:动画时长、menu_id、数据版本字段、SQL 日期字面量
- 环境频率现状描述("偶发超过 15s"支撑超时取值)= 现状约束
- vendor/第三方文件注释不动
过程性表述判定口径(全局,与分层要求叠加)
- 判别二分:时间/人物/版本指向代码变更过程(删或改写),还是业务规则与外部对象(保留)。外部对象版本锚定保留(库版本如 MP 3.5.0、流程定义发布版本、发布脚本版本、发布基线头部元数据);代码自身版本演变(「v2.1 起存在」「第二阶段/阶段 3/Phase/T3」)删编号、留兼容行为语义
- 措辞黑名单(复扫 grep):(原先|此前|曾致|改为[:]|不再(加|重复|连坐|逐处|自行)|取代原先|[0-9]{1,2}/[0-9]{1,2} 合入|R[0-9]+ 修正|早期版本|反哺|实测[::]|自 [0-9a-f]{7,} 并入)
- 改写公式:「不再 X」→「不 X/避免 X」;「取代原先 X」→「免去 X」;历史因果→可能因果(「历史上因 X 累积过多」→「可能因 X 累积多条」);实测性能数字删、由其支撑的超时/阈值取值约束保留
- 悬空引用按 P0 处置:注释引用的文档/文件/版本号已不存在时,删除或改写为实锚点
- 测试代码特判:「本轮/本次」=当前运行语义,保留;「偶发 N 秒」=超时取值依据,保留
- 豁免:vendor 第三方目录、SQL 数据字面量日期(create_time 等业务数据)、错误信息字符串、带日期的文档文件名(按实际文件名引用)
- 改既有注释三步:删失效过程叙事、保留仍成立的技术约束、不追加「历史上曾经」
Comment Rule Group 2: project / script/sql/**
Applies to:
- script\sql\release\1.0.0\01_system.sql
- script\sql\release\1.0.0\02_snailjob.sql
- script\sql\release\1.0.0\03_workflow.sql
- script\sql\release\1.0.0\04_document.sql
- script\sql\release\1.0.0\05_seal.sql
- script\sql\release\1.1.0\V1.1.0_001__contract.sql
- script\sql\release\1.1.0\V1.1.0_002__supplies.sql
- script\sql\release\1.1.0\V1.1.0_003__vehicle.sql
- script\sql\release\1.1.0\V1.1.0_004__schema_history.sql
- script\sql\release\1.1.0\V1.1.0_005__document_seal.sql
- script\sql\release\1.1.1\V1.1.1_001__document_send_version.sql
- script\sql\release\1.1.1\V1.1.1_002__oa_tenant_version_alignment.sql
Content
注释通用质量(内置规则)
注释只回答三问:是什么(作用域/职责)、受何约束(业务规则、前提、坑)、行为是什么(非显然的行为说明)。
禁止(过程叙述,git 提交消息的职责)
- 日期戳、迭代/阶段编号(阶段 3、第二阶段、Phase N)、文档版本号
- 版本演变起点("v2.1 起…")→ 改写为当前结构语义
- 实测/性能回忆("实测 594s 挂死")、"曾在某环境"类环境记忆
- 提交溯源(commit hash)、来源仓、评审编号引用(R6 修正)
- 历史因果词(曾致/曾被/早期版本误用/迁移期教训/取代原先/反哺)
- 悬空引用:引用仓库中不存在的文档/文件/章节 → 删除引用
豁免(合法保留,勿误杀)
- 引用真实存在的带日期文档,按实际文件名保留(改名会伪造记录)
- 数据/行为事实:动画时长、menu_id、数据版本字段、SQL 日期字面量
- 环境频率现状描述("偶发超过 15s"支撑超时取值)= 现状约束
- vendor/第三方文件注释不动
SQL 脚本注释要求
- 表/字段 COMMENT 表达业务含义;状态类字段注明取值映射
- 脚本头部 banner 只保留当前用途说明,不留创建/修改历程
Comment Rule Group 3: project / /controller//*.java
Applies to:
- zhgl-modules\zhgl-demo\src\main\java\com\zhgl\demo\controller\TestBatchController.java
Content
注释通用质量(内置规则)
注释只回答三问:是什么(作用域/职责)、受何约束(业务规则、前提、坑)、行为是什么(非显然的行为说明)。
禁止(过程叙述,git 提交消息的职责)
- 日期戳、迭代/阶段编号(阶段 3、第二阶段、Phase N)、文档版本号
- 版本演变起点("v2.1 起…")→ 改写为当前结构语义
- 实测/性能回忆("实测 594s 挂死")、"曾在某环境"类环境记忆
- 提交溯源(commit hash)、来源仓、评审编号引用(R6 修正)
- 历史因果词(曾致/曾被/早期版本误用/迁移期教训/取代原先/反哺)
- 悬空引用:引用仓库中不存在的文档/文件/章节 → 删除引用
豁免(合法保留,勿误杀)
- 引用真实存在的带日期文档,按实际文件名保留(改名会伪造记录)
- 数据/行为事实:动画时长、menu_id、数据版本字段、SQL 日期字面量
- 环境频率现状描述("偶发超过 15s"支撑超时取值)= 现状约束
- vendor/第三方文件注释不动
Controller 层注释要求
- 接口注释描述业务动作与权限语义(谁能做什么),与 @SaCheckPermission 一致
- 不写调用方式、参数示例等前端细节(那是接口文档的职责)
Comment Rule Group 4: project / /domain//*.java
Applies to:
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\bo\ContractReviewBo.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\bo\DocumentReceivingCirculateBo.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\ContractReview.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\vo\ContractReviewVo.java
Content
注释通用质量(内置规则)
注释只回答三问:是什么(作用域/职责)、受何约束(业务规则、前提、坑)、行为是什么(非显然的行为说明)。
禁止(过程叙述,git 提交消息的职责)
- 日期戳、迭代/阶段编号(阶段 3、第二阶段、Phase N)、文档版本号
- 版本演变起点("v2.1 起…")→ 改写为当前结构语义
- 实测/性能回忆("实测 594s 挂死")、"曾在某环境"类环境记忆
- 提交溯源(commit hash)、来源仓、评审编号引用(R6 修正)
- 历史因果词(曾致/曾被/早期版本误用/迁移期教训/取代原先/反哺)
- 悬空引用:引用仓库中不存在的文档/文件/章节 → 删除引用
豁免(合法保留,勿误杀)
- 引用真实存在的带日期文档,按实际文件名保留(改名会伪造记录)
- 数据/行为事实:动画时长、menu_id、数据版本字段、SQL 日期字面量
- 环境频率现状描述("偶发超过 15s"支撑超时取值)= 现状约束
- vendor/第三方文件注释不动
领域对象注释要求
- 字段注释 = 业务含义(如"审批流当前节点编码,见 FlwNode"),不是字段名翻译("用户名→用户的名字")
- BO 与 VO 的区别要在类注释说明用途方向
Comment Rule Group 5: project / /service//*.java
Applies to:
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractChangeServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractLedgerServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractPaymentApprovalServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractReviewServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentReceivingServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentSendServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\SealApplyServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\SuppliesItemServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\VehicleApplicationServiceImpl.java
- zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\IVehicleApplicationService.java
- zhgl-modules\zhgl-oa\src\test\java\com\zhgl\oa\service\impl\DocumentReceivingServiceImplTest.java
- zhgl-modules\zhgl-system\src\main\java\com\zhgl\system\service\impl\SysSchemaHistoryServiceImpl.java
- zhgl-modules\zhgl-workflow\src\test\java\com\zhgl\workflow\service\impl\WorkflowServiceImplTest.java
Content
注释通用质量(内置规则)
注释只回答三问:是什么(作用域/职责)、受何约束(业务规则、前提、坑)、行为是什么(非显然的行为说明)。
禁止(过程叙述,git 提交消息的职责)
- 日期戳、迭代/阶段编号(阶段 3、第二阶段、Phase N)、文档版本号
- 版本演变起点("v2.1 起…")→ 改写为当前结构语义
- 实测/性能回忆("实测 594s 挂死")、"曾在某环境"类环境记忆
- 提交溯源(commit hash)、来源仓、评审编号引用(R6 修正)
- 历史因果词(曾致/曾被/早期版本误用/迁移期教训/取代原先/反哺)
- 悬空引用:引用仓库中不存在的文档/文件/章节 → 删除引用
豁免(合法保留,勿误杀)
- 引用真实存在的带日期文档,按实际文件名保留(改名会伪造记录)
- 数据/行为事实:动画时长、menu_id、数据版本字段、SQL 日期字面量
- 环境频率现状描述("偶发超过 15s"支撑超时取值)= 现状约束
- vendor/第三方文件注释不动
Service 层注释要求
- 方法注释表达业务约束与动机(事务边界理由、状态机规则、并发前提),不复述方法名
- 类级 Javadoc 说明领域职责与边界,一段以内
- 复杂算法处允许行内注释解释非显然的分支条件
Candidates
高危(纯过程记录,删除候选) — 5 处
script\bin\ts.sh:1-2[悬空引用:./ry.sh 不存在] !/bin/sh ./ry.sh start 启动 stop 停止 restart 重启 status 状态script\sql\release\1.0.0\01_system.sql:269-274[悬空引用:sys_user_data.sql 不存在] ---------------------------- 初始化-用户信息表数据 系统管理员(user_id=1) 为内置账号,保留于此;其余用户已脱敏,转移至 sys_user_data.sql ---------------------------- 保留内置管理员主键供基础关联使用,但账号默认停用且不存在可用密…script\sql\release\1.0.0\03_workflow.sql:1-3[悬空引用:warm-flow-all.sql 不存在] ---------------------------- 0、warm-flow-all.sql ----------------------------script\sql\release\1.0.0\04_document.sql:183-188[悬空引用:oa_document_send.sql 不存在] 设计说明(最佳实践,对照请假 test_leave / 发文 oa_document_send): 1. 审批意见不入业务表,统一由 warm-flow flow_his_task.message 记录; 2. 名称字段不入表,一律按 ID 存,由 ServiceImpl#fillNames 运行时回填到 VO; 3…zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentSendServiceImpl.java:245-251[悬空引用:sendForm.vue 不存在] 新增发文注意:返回 DocumentSendVo 而非 Boolean,与同模块 SealApply/DocumentReceiving 不同。 原因:前端 sendForm.vue 提交后需要获取 id 用于发起工作流,返回 VO 可避免额外查询。
中危(混合/演变叙述,拆分改写) — 33 处
.gitlab-ci.yml:79-79[新旧对比/历史因果叙述] 单次完成测试与打包;后续 job 直接复用三个 JAR,不再重复编译。script\sql\release\1.1.0\V1.1.0_001__contract.sql:1-12[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.0 数据库基线:合同管理 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.0_001__contract.sql;执行序号:1/4 …script\sql\release\1.1.0\V1.1.0_002__supplies.sql:1-12[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.0 数据库基线:物资管理 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.0_002__supplies.sql;执行序号:2/4 …script\sql\release\1.1.0\V1.1.0_003__vehicle.sql:1-12[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.0 数据库基线:车辆管理 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.0_003__vehicle.sql;执行序号:3/4 内…script\sql\release\1.1.0\V1.1.0_003__vehicle.sql:484-493[版本号+过程信号(多为库特性说明,判别)] ============================================================ C. 菜单:车辆管理(父)+ 车辆信息/司机信息/用车申请 + 表单 + 按钮 ID 段 12400-12499:12400 父 / 12401 车辆信息 12402 司机信息 12403 用车申…script\sql\release\1.1.0\V1.1.0_004__schema_history.sql:1-12[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.0 数据库基线:数据库发布历史 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.0_004__schema_history.sql;…script\sql\release\1.1.0\V1.1.0_005__document_seal.sql:1-13[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.0 数据库迁移:公文与印章 DEL_FLAG 扩容 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.0_005__document_…script\sql\release\1.1.1\V1.1.1_001__document_send_version.sql:1-15[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.1 数据库迁移:发文表补充 VERSION 乐观锁列 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.1_001__document…- 挂接: ALTER TABLE OA_DOCUMENT_SEND ADD (VERSION NUMBER(20) DEFAULT 0 NOT NULL);
script\sql\release\1.1.1\V1.1.1_002__oa_tenant_version_alignment.sql:1-20[版本号+过程信号(多为库特性说明,判别)] ============================================================================= ZHGL 1.1.1 数据库迁移:OA 基线表 TENANT_ID / VERSION 对齐 数据库:达梦 DM;默认模式:ZHYWGL 文件:V1.1.1_00…zhgl-admin\src\main\resources\application.yml:60-61[新旧对比/历史因果叙述] 从 springboot 3.5 开始 spring自带线程池 不再需要 AsyncConfig与ThreadPoolConfig 可直接注入线程池使用zhgl-common\zhgl-common-mybatis\src\main\java\com\zhgl\common\mybatis\aspect\DataPermissionPointcut.java:21-22[新旧对比/历史因果叙述] 优先匹配方法 数据权限注解不对继承生效,所以检查当前方法是否有注解即可,不再往上匹配父类或接口- 挂接: if (method.isAnnotationPresent(DataPermission.class)) {
zhgl-common\zhgl-common-social\src\main\java\me\zhyd\oauth\request\AuthDingTalkV2Request.java:21-26[新旧对比/历史因果叙述] 新版钉钉二维码登录 @author yadong.zhang (yadong.zhang0415(a)gmail.com) @since 1.16.7- 挂接: public class AuthDingTalkV2Request extends AuthDefaultRequest {
zhgl-modules\zhgl-demo\src\main\java\com\zhgl\demo\controller\TestBatchController.java:33-37[版本号+过程信号(多为库特性说明,判别)] 新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大)3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度
zhgl-modules\zhgl-demo\src\main\java\com\zhgl\demo\controller\TestBatchController.java:52-56[版本号+过程信号(多为库特性说明,判别)] 新增或更新 可完美替代 saveOrUpdateBatch 高性能3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度
zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\bo\DocumentReceivingCirculateBo.java:29-29[未定/临时过程词] 部门承办人用户 ID 列表(写入业务单并作为后续会签办理人)zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractChangeServiceImpl.java:131-131[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractChangeServiceImpl.java:361-361[新旧对比/历史因果叙述] 提出单位已经改为字典项,后端保存并透传 dictValue,不再限定旧的中文展示文本。zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractLedgerServiceImpl.java:103-106[新旧对比/历史因果叙述] 台账编辑只维护六月原型中的起止日期、履约情况、备注和附件。 支付列表由支付审批办结后自动写入,台账编辑不再删除或重建支付记录。zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractPaymentApprovalServiceImpl.java:112-112[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractReviewServiceImpl.java:194-194[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\ContractReviewServiceImpl.java:387-387[新旧对比/历史因果叙述] 幂等守卫:已办结的业务不再重复执行办结副作用(防止事件重放重复生成台账)zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentReceivingServiceImpl.java:151-153[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人 发起部门过滤:收文无实体列,统一由综合管理部(102)发起。 前端编号统计传 draftDept=102 时命中全部收文;传其它值时返回空。zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentReceivingServiceImpl.java:511-511[新旧对比/历史因果叙述] 新版收文定义据此决定合并办理节点是否包含副总,发起时固定 N,由后续节点按需调整- 挂接: vars.put("needDeputyManager", "N");
zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentSendServiceImpl.java:118-118[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\DocumentSendServiceImpl.java:369-374[新旧对比/历史因果叙述] 发文流程变量白名单构建:全部取自已入库的业务单据字段,网关标志统一 Y/N。会签部门负责人(signDeptLeaders)由服务端按部门配置解析, 不再信任前端回传的负责人 ID 串。
zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\SealApplyServiceImpl.java:124-124[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\SuppliesItemServiceImpl.java:207-210[新旧对比/历史因果叙述] 采购入库:以当前入库确认人为操作人,新建台账批次并补一笔采购入库流水。 物品初始库存已包含本次入库数量,因此这里只写入流水,不再调用 {@code adjustStock}。zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\VehicleApplicationServiceImpl.java:185-185[新旧对比/历史因果叙述] 列表数据范围由角色 data_scope 决定(@DataPermission),不再硬编码仅本人zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\impl\VehicleApplicationServiceImpl.java:295-302[新旧对比/历史因果叙述] 节点3(车辆调度)完成:全量覆盖写入 dispatch 明细(先删后插)。本接口只负责保存 dispatch 明细 + 提供 schedule 查询, 不再写 drivers 流程变量。drivers(按 sys_user.user_id 对应)由前端 在节点3 completeTask 时随 …
zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\service\IVehicleApplicationService.java:67-76[新旧对比/历史因果叙述] 节点3(车辆调度)完成:全量覆盖保存 dispatch 明细(先删后插)。本接口只保存 dispatch 明细,不再写 drivers 流程变量。 drivers(按 sys_user.user_id 对应)由前端在节点3 completeTask 的 taskVariables 携带。
…zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\support\OaWorkflowNodes.java:62-66[新旧对比/历史因果叙述] 旧版收文定义的业务节点编码,旧实例仍在流转时返回这些编码; 与 zhgl-front 的 LEGACY_DOCUMENT_RECEIVING_NODE_CODE 一一对应。 确认不存在可继续办理的旧实例后方可移除。zhgl-modules\zhgl-oa\src\test\java\com\zhgl\oa\service\impl\DocumentReceivingServiceImplTest.java:223-223[新旧对比/历史因果叙述] ② 旧版部门承办入口:任务校验失败无写入。zhgl-modules\zhgl-workflow\src\test\java\com\zhgl\workflow\service\impl\WorkflowServiceImplTest.java:169-171[新旧对比/历史因果叙述] 任务节点不在集合内(如旧版节点码已收窄)→ 抛「与业务/节点不匹配」。
低危(疑似业务日期,判别后改写) — 17 处
script\sql\release\1.0.0\02_snailjob.sql:1-6[仅日期/版本(可能是业务生效日,需判别)] SnailJob Database Transfer Tool Source Server Type : MySQL Target Server Type : Oracle Date: 2025-06-21 23:33:11script\sql\release\1.0.0\04_document.sql:1-3[仅日期/版本(可能是业务生效日,需判别)] ZHGL 1.0.0 公文基础功能 本脚本依次初始化发文和收文。 本文件只用于新环境初始化,不得在已有业务库重复执行。script\sql\release\1.0.0\05_seal.sql:1-4[仅日期/版本(可能是业务生效日,需判别)] ZHGL 1.0.0 印章基础功能 本脚本依次初始化印章管理和用印申请。 字典 ID: seal_type=104, seal_status=105, data=1032-1039 本文件只用于新环境初始化,不得在已有业务库重复执行。script\sql\release\1.1.0\V1.1.0_005__document_seal.sql:15-15[仅日期/版本(可能是业务生效日,需判别)] A. 公文模块(1.0.0 原为 NUMBER(1) DEFAULT 0 NOT NULL)- 挂接: ALTER TABLE OA_DOCUMENT_SEND MODIFY (DEL_FLAG NUMBER(20) DEFAULT 0 NOT NULL);
script\sql\release\1.1.0\V1.1.0_005__document_seal.sql:22-22[仅日期/版本(可能是业务生效日,需判别)] B. 印章模块(1.0.0 原为 NUMBER(2) DEFAULT 0,可为 NULL)- 挂接: ALTER TABLE OA_SEAL_MANAGEMENT MODIFY (DEL_FLAG NUMBER(20) DEFAULT 0);
zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:43-45[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月可以表示为 "2023-07"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:68-70[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月可以表示为 "2023/07"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:88-90[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月可以表示为 "2023.07"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:108-110[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月可以表示为 "202307"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:113-115[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月22日可以表示为 "20230722"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:118-120[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月22日下午3点可以表示为 "2023072215"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:123-125[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月22日下午3点30分可以表示为 "202307221530"zhgl-common\zhgl-common-core\src\main\java\com\zhgl\common\core\enums\FormatsType.java:128-130[仅日期/版本(可能是业务生效日,需判别)] 例如,2023年7月22日下午3点30分45秒可以表示为 "20230722153045"zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\bo\ContractReviewBo.java:107-109[仅日期/版本(可能是业务生效日,需判别)] 外文版本:1是,0否- 挂接: @NotBlank(message = "外文版本不能为空", groups = {AddGroup.class, EditGroup.class})
zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\ContractReview.java:93-95[仅日期/版本(可能是业务生效日,需判别)] 外文版本:1是,0否zhgl-modules\zhgl-oa\src\main\java\com\zhgl\oa\domain\vo\ContractReviewVo.java:139-141[仅日期/版本(可能是业务生效日,需判别)] 外文版本:1是,0否- 挂接: @ExcelProperty(value = "外文版本", converter = ExcelDictConvert.class)
zhgl-modules\zhgl-system\src\main\java\com\zhgl\system\service\impl\SysSchemaHistoryServiceImpl.java:28-30[仅日期/版本(可能是业务生效日,需判别)] 1.1.0 服务端发布白名单。登记只证明人工确认,白名单用于防止脚本名或校验值被随意伪造。
Pattern Distribution
- old_new: 22
- version: 18
- date: 9
- separator_line: 8
- crud_verb: 7
- dangling_ref: 5
- version_since: 2
- process_verb: 1