java当同一id查出来的多条数据中,同为Y状态返回Y,同为N返回N,不同状态皆为N &列表如何去重

情景: 根据同一id查出来的多条数据中,同为Y状态返回Y,同为N返回N,不同状态皆为N,且要去重。
在这里插入图片描述

  public PageResult<PageListDTO> querySubmitList(PageListVO pageParam) {
        PageHelper.startPage(pageParam.getPage(),pageParam.getCount());
        List<PageListDTO> pageListDTOS = typeOutloadingHeadMapper.querySubmitList(pageParam);
        for (PageListDTO pageListDTO : pageListDTOS){
            //用headId查出表体列表数据  再进行循环比较状态 有一条为N则都返回N
            List<TypeOutloadingBodyDO> list =  typeOutloadingBodyMapper.selectByHeadId(pageListDTO.getHeadId());
            String state = OutloadingStatus.Y.name();
            for (TypeOutloadingBodyDO typeOutloadingBodyDO : list) {
                if (typeOutloadingBodyDO.getParcelStatus().equals(OutloadingStatus.N.name())) {
                    state = OutloadingStatus.N.name();
                    break;
                }
            }
            pageListDTO.setParcelStatus(state);
        }
        //通过distinct方法去掉重复的表头列表
        List<PageListDTO> pageListDTOS1 = new ArrayList<>();
        pageListDTOS1=  pageListDTOS.stream().distinct().collect(Collectors.toList());
        Long total = new Long(pageListDTOS1.size());
        BasePageRequest basePageRequest = new BillListParam();
        basePageRequest.setPage(pageParam.getPage());
        basePageRequest.setCount(pageParam.getCount());
        return PageResult.createSuccessResult(basePageRequest, total, pageListDTOS1);
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值