# crm-base 通用批量结果骨架 BatchResult Type: task Status: resolved Depends on: — ADR: docs/adr/0023-lead-batch-operations-and-view-stats.md (D2) ## Question(实现目标) 在 crm-base 提供业务无关的批量结果泛型骨架,供各业务域批量接口复用。 ## 交付物 - `crm-base/src/main/java/com/crm/base/domain/result/BatchResult.java` - 泛型 `BatchResult`,与 `Result` / `PageResult` 并列于 `domain/result`。 - 字段:`int total`、`int successCount`、`int failCount`、`List failures`。 - 方法:`addSuccess()`(total++、successCount++)、`addFailure(F item)`(total++、failCount++、failures.add)。 - `failures` 初始化为空 `ArrayList`,避免 NPE。 - **不得出现任何业务语义**(不引用 lead/pool/任何域枚举)——crm-base 纯净性约束(AGENTS.md / CONTEXT-MAP)。 ## 验收 - 编译通过:`mvn -q -pl crm-base -am compile`。 - 全 `*.java` 无 BOM(AGENTS.md 编码规范)。 - 单元测试:`addSuccess`/`addFailure` 计数正确,`failures` 收集正确(可放 crm-base test)。 ## Comments ## Answer 已交付。`crm-base/src/main/java/com/crm/base/domain/result/BatchResult.java`:泛型 `BatchResult`(`@Data`),字段 total/successCount/failCount/`List failures`(初始空 `ArrayList`),方法 `addSuccess()`/`addFailure(F)`。无任何业务语义。 验收:无 BOM;`BatchResultTest` 4/4 绿(`mvn -pl crm-base test -Dtest=BatchResultTest` BUILD SUCCESS)。