EiamBatchResult.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.malk.benteler.dto;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Builder;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. import java.util.List;
  7. /**
  8. * 宜搭可逐条回写的 EIAM 批量结果。
  9. */
  10. @Data
  11. @Builder
  12. @NoArgsConstructor
  13. @AllArgsConstructor
  14. public class EiamBatchResult {
  15. private EiamBatchOperation operation;
  16. private int total;
  17. private int successCount;
  18. private int failedCount;
  19. private List<EiamBatchItemResult> items;
  20. /**
  21. * 按明细列表生成批次统计。
  22. *
  23. * @param operation 操作类型
  24. * @param items 逐条结果
  25. * @return 批量结果
  26. */
  27. public static EiamBatchResult of(EiamBatchOperation operation,
  28. List<EiamBatchItemResult> items) {
  29. int successCount = (int) items.stream().filter(EiamBatchItemResult::isSuccess).count();
  30. return EiamBatchResult.builder()
  31. .operation(operation)
  32. .total(items.size())
  33. .successCount(successCount)
  34. .failedCount(items.size() - successCount)
  35. .items(items)
  36. .build();
  37. }
  38. }