Browse Source

docs(academic): 把 `IF coursePaymentDetailid>1` 定名为「≥2 才短路」的阈值判据

你上轮说漏的那句已补进 payroll_service.go 文件头:
- 前置三档(763632/763638/763649)因缺 LEAVE,id=1 命中后会被后续更低优先级查询覆盖
  ⇒ 这条 ">1" 的实质是「**≥2 才短路**」的阈值判据,不是"有没有查到"的判据;
- Go 按 ">0" 实现 = 命中即短路,与之差别**恰好只有 id=1 一行**(id≥2 等价);
- 因此"真实数据 0 差异"只在**不含 id=1 命中**的前提下成立,割接前必须核对那行——
  不能把"0 差异"当无条件结论(这句是本次评审的关键区分,写进代码防止被后人简化掉)。

纯注释改动;go build / go vet / go test -short ./... 全绿。
Alex 14 hours ago
parent
commit
3d83e92bf3
1 changed files with 5 additions and 0 deletions
  1. 5 0
      internal/academic/service/payroll_service.go

+ 5 - 0
internal/academic/service/payroll_service.go

@@ -48,6 +48,11 @@
 // 该档查到 id=1 后不 LEAVE,控制流继续往下走,被后续**更低优先级**的查询覆盖
 // (后级无命中时覆盖成 NULL)→ 最终 `WHERE id=NULL`(763663)返回空 ⇒ "配了规则却试算不出课酬"。
 //
+// **口径定名(评审用一句话概括)**:这条 `> 1` 实际是「**≥ 2 才短路**」的阈值判据,
+// 而不是"有没有查到"的判据。Go 侧按 `> 0` 实现 = 「命中即短路」,与它的差别**恰好只有 id=1 一行**
+// (id ≥ 2 时两者等价);因此"真实数据 0 差异"只在**不含 id=1 命中**的前提下成立,
+// 割接前必须核对 id=1 那行(见下),不能把"0 差异"当成无条件结论。
+//
 // 这是 dump 的既有缺陷(错字级:`>1` 应为 `>0`),本次实现按 `>0`(即"找到即命中"),
 // 差异面**恰好只有 id=1 这一行**(id>=2 时 `>1` 与 `>0` 等价),登记为**有意差异(修正型)**:
 //   - 业务影响:仅影响历史第一条课酬规则;旧系统里它从未生效过,新系统会生效。