java8合并2个数据源统计出来的list累计数据

1.实体类

@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class CssReportDto implements Serializable {
    //渠道
    private String bdFrom;
    //类型
    private String channelType;
    //入口
    private String channelEntrance;
    //进线量
    private Long enterSessionVol;
    //机器人未转人工量
    private Long robotNoTransferVol;
    //机器转人工请求量
    private Long robotTransferVol;
    //机器转人工服务量
    private Long robotTransferServiceVol;
    //机器转人工接通率
    private Long robotTransferAcceptVol;
    //人工请求量
    private Long manualRequestVol;
    //人工接起量
    private Long manualAcceptVol;
    //有效会话量
    private Long validSessionVol;
    //无效会话量
    private Long inValidSessionVol;

lambda合并方法:

  ArrayList<CssReportDto> resultList = new ArrayList<>();
        //合并list中bdfrom channelType channelEntrance 相同的记录
        list.parallelStream().collect(Collectors.groupingBy(e -> (e.getBdFrom() + e.getChannelType() + e.getChannelEntrance()), Collectors.toList())).forEach((a, b) -> {
            b.stream().reduce((x, y) ->
                    new CssReportDto(x.getBdFrom(), x.getChannelType(), x.getChannelEntrance(),
                            x.getEnterSessionVol() + y.getEnterSessionVol(),
                            x.getRobotNoTransferVol()  + y.getRobotNoTransferVol() ,
                            x.getRobotTransferVol() + y.getRobotTransferVol() ,
                            +x.getRobotTransferServiceVol()  + y.getRobotTransferServiceVol() ,
                            x.getRobotTransferAcceptVol()  + y.getRobotTransferAcceptVol() ,
                            x.getManualRequestVol()  + y.getManualRequestVol() ,
                            x.getManualAcceptVol()  + y.getManualAcceptVol() ,
                            x.getValidSessionVol()  + y.getValidSessionVol() ,
                            x.getInValidSessionVol() + y.getInValidSessionVol())
            ).ifPresent(resultList::add);
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱童鞋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值