You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.5 KiB

3 weeks ago
# crm-base 通用批量结果骨架 BatchResult<F>
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<F>`,与 `Result` / `PageResult` 并列于 `domain/result`
- 字段:`int total`、`int successCount`、`int failCount`、`List<F> 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<F>`(`@Data`),字段 total/successCount/failCount/`List<F> failures`(初始空 `ArrayList`),方法 `addSuccess()`/`addFailure(F)`。无任何业务语义。
验收:无 BOM;`BatchResultTest` 4/4 绿(`mvn -pl crm-base test -Dtest=BatchResultTest` BUILD SUCCESS)。