|
|
@@ -247,7 +247,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
;
|
|
|
List<HeadTeaLookClassBookCategoryDetailVo> classList = wfTextbookClaimItemMapper.selectJoinList(HeadTeaLookClassBookCategoryDetailVo.class, classMPJLambdaWrapper);
|
|
|
|
|
|
- // 班级申领教材
|
|
|
+ // 个人申领教材
|
|
|
MPJLambdaWrapper<WfTextbookClaimItem> personalMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
personalMPJLambdaWrapper
|
|
|
.disableSubLogicDel()
|
|
|
@@ -274,9 +274,18 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
;
|
|
|
List<HeadTeaLookClassBookCategoryDetailVo> personalList = wfTextbookClaimItemMapper.selectJoinList(HeadTeaLookClassBookCategoryDetailVo.class, personalMPJLambdaWrapper);
|
|
|
|
|
|
- // 合并两个列表
|
|
|
+ // 合并两个列表,如果有个人领取记录,应该保留个人的,移除班级的
|
|
|
List<HeadTeaLookClassBookCategoryDetailVo> mergedList = Stream.concat(classList.stream(), personalList.stream())
|
|
|
- .collect(Collectors.toList());
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ // 使用唯一标识作为 key
|
|
|
+ HeadTeaLookClassBookCategoryDetailVo::getTextbookId,
|
|
|
+ // 如果有重复,保留后面的值(即优先保留 personalList 的记录)
|
|
|
+ vo -> vo,
|
|
|
+ (classVo, personalVo) -> personalVo // 解决冲突时,优先选择 personalList 的记录
|
|
|
+ ))
|
|
|
+ .values() // 获取去重后的值集合
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toList()); // 转换回 List
|
|
|
|
|
|
// 根据 textbookId 去重
|
|
|
List<HeadTeaLookClassBookCategoryDetailVo> distinctList = new ArrayList<>(mergedList.stream()
|