编辑
2022-12-23
学习记录
00
请注意,本文编写于 832 天前,最后修改于 784 天前,其中某些信息可能已经过时。

目录

代码展示

需求前提

校验当前签收数量与本批送出数量是否一致,不一致给出缺少信息,关键词 两个list

代码展示

public List<RecMrIndexBySendOutBatchNoListResponse> saveBatchPaperRecevieByCheck(RecMrIndexReceiveRequest request) { List<RecMrIndexEntity> recMrIndexEntityList=request.getRecMrIndexEntities().stream() .filter(i->i.getSendOutBatchNo()!=null).collect(Collectors.toList()); List<RecMrIndexBySendOutBatchNoListResponse> checkResponseList=new ArrayList<>(); //去除重复的送出号,去除为null的 List<String> batchNoList = recMrIndexEntityList.stream().map(RecMrIndexEntity::getSendOutBatchNo).distinct().collect(Collectors.toList()); if (CollectionUtils.isEmpty(batchNoList)){ return checkResponseList; } for (int i = 0; i < batchNoList.size(); i++) { String batchNo =batchNoList.get(i); if (StrUtil.isNotBlank(batchNo)){ List<RecMrIndexEntity> list=recMrIndexEntityList.stream() .filter((recMrIndex)->recMrIndex.getSendOutBatchNo().equals(batchNo)) .collect(Collectors.toList()); List<RecMrIndexBySendOutBatchNoListResponse> selectResponseList =baseMapper.getListBySendOutBatchNo(batchNo); if(list.size()==selectResponseList.size()){ continue; }else{ RecMrIndexBySendOutBatchNoListResponse selectResponse; Iterator<RecMrIndexBySendOutBatchNoListResponse> iterator= selectResponseList.iterator(); while (iterator.hasNext()){ selectResponse= iterator.next(); for (RecMrIndexEntity oldEntity:list){ if (selectResponse.getPatientId().equals(oldEntity.getPatientId()) && selectResponse.getVisitNo().equals(oldEntity.getVisitNo())){ iterator.remove(); } } } //合并过滤后的数据 checkResponseList.addAll(selectResponseList); } } } //再去除一次重复数据 return checkResponseList.stream().distinct().collect(Collectors.toList());

这个代码块的主要是对于Steam流的一些简单使用,通过Stream流可以快速得到送出号的列表,并且去除重复元素和空元素,再采用迭代器去除和另一个List中相同的元素,得到新的列表

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!