Steam常见用法

 // 查询身份证号
    private Map<String, String> queryCustomIdNoByCustIds(List<PdmWithholdCollectionInfoDto> mergeWithholdCollections) {
        List<String> custIds = mergeWithholdCollections.stream()
                .map(PdmWithholdCollectionInfoDto::getCustId)
                .distinct()
                .collect(Collectors.toList());

        List<IdAndNameViewDto> custInfoList = crmCustExternalBusinessHandlerImpl.getCustInfoByCustId(IdsDto.build(custIds));
        return custInfoList.stream()
                .collect(Collectors.toMap(IdAndNameViewDto::getId,
                        IdAndNameViewDto::getIdCode, (x1, x2) -> x2));
    }
private List<PdmWithholdCollectionInfoDto> mergeWithholdCollectionInfo(List<PdmWithholdCollectionInfoDto> withholdCollectionDtos) {

        List<PdmWithholdCollectionInfoDto> originalCollections = withholdCollectionDtos.stream()
                .filter(dto -> Objects.equals(dto.getCollectionType(), BusinessConstants.COLLECTION_RENT)
                        || Objects.equals(dto.getCollectionType(), BusinessConstants.COLLECTION_RECOVER_ADVANCE))
                .collect(Collectors.toList());

        Map<String, List<PdmWithholdCollectionInfoDto>> subCollectionMap = withholdCollectionDtos.stream()
                .filter(dto -> Objects.equals(dto.getCollectionType(), BusinessConstants.COLLECTION_BREACH_CONTRACT))
                .collect(Collectors.groupingBy(PdmWithholdCollectionInfoDto::getOriginalCollectionId));

        Map<String, String> originalCollectionIdMap = originalCollections.parallelStream()
                .filter(dto -> Objects.equals(dto.getCollectionType(), BusinessConstants.COLLECTION_RENT)
                        || Objects.equals(dto.getCollectionType(), BusinessConstants.COLLECTION_RECOVER_ADVANCE))
                .collect(Collectors.toMap(PdmWithholdCollectionInfoDto::getCollectionId,
                        PdmWithholdCollectionInfoDto::getCollectionId,
                        (v1, v2) -> v1));

        originalCollections.forEach(originalCollection -> {
            originalCollection.setOriginalCollectionId(originalCollection.getCollectionId());
            List<PdmWithholdCollectionInfoDto> subCollectionDtos = subCollectionMap.get(originalCollection.getCollectionId());
            if (!CollectionUtils.isEmpty(subCollectionDtos)) {
                subCollectionDtos.forEach(subCollectionDto -> originalCollection.setPenalCollectionId(subCollectionDto.getCollectionId())
                        .setPenalCollectionCheckState(subCollectionDto.getCheckState())
                        .setPenalCollectionLockState(subCollectionDto.getLockState())
                        .setAmtCollection(originalCollection.getAmtCollection().add(subCollectionDto.getAmtCollection()))
                        .setAmtCheck(originalCollection.getAmtCheck().add(subCollectionDto.getAmtCheck())));
            }
        });

        subCollectionMap.forEach((originalCollectionId, dtoList) -> {
            if (originalCollectionIdMap.get(originalCollectionId) == null) {
                dtoList.forEach(dto -> {
                    dto.setPenalCollectionId(dto.getCollectionId());
                    dto.setCollectionType(dto.getPenalOriginalCollectionType());
                });
                originalCollections.addAll(dtoList);
            }
        });

        // 按照实际应收日期排序
        return originalCollections.stream()
                .sorted(Comparator.comparing(PdmWithholdCollectionInfoDto::getDateCollectionActual))
                .collect(Collectors.toList());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值