|
@@ -90,101 +90,117 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
|
|
|
Map<String, List<AlbumYelpApprove>> albumApproveMap = albumYelpApproveList.stream().
|
|
|
collect(Collectors.groupingBy(AlbumYelpApprove::getYelpId));
|
|
|
// 返回结果集
|
|
|
- List<AlbumYelpApproveListVo> albumApproveListVos = new ArrayList<>();
|
|
|
+ List<AlbumYelpApprove> albumYelpApproves = new ArrayList<>();
|
|
|
// 遍历每组的数据
|
|
|
Set<Map.Entry<String, List<AlbumYelpApprove>>> entries = albumApproveMap.entrySet();
|
|
|
for (Map.Entry<String, List<AlbumYelpApprove>> entry : entries) {
|
|
|
List<AlbumYelpApprove> value = entry.getValue();
|
|
|
for (int i = 0; i < value.size(); i++) {
|
|
|
- //给结果集赋值
|
|
|
- AlbumYelpApproveListVo albumApproveListVo = new AlbumYelpApproveListVo();
|
|
|
- albumApproveListVo.setPkId(value.get(i).getYelpId());
|
|
|
- albumApproveListVo.setContent(value.get(i).getAlbumYelp().getContent());
|
|
|
- albumApproveListVo.setAlbumName(value.get(i).getAlbumInfo().getName());
|
|
|
- String categoryId = value.get(i).getAlbumInfo().getCategoryId();
|
|
|
- AlbumCategory albumCategory = albumCategoryMapper.selectById(categoryId);
|
|
|
- if (albumCategory.getGrade() == 1) {
|
|
|
- albumApproveListVo.setCategoryName(albumCategory.getName());
|
|
|
- } else {
|
|
|
- AlbumCategory albumCategoryParent = albumCategoryMapper.
|
|
|
- selectOne(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getPkId, albumCategory.getParent()));
|
|
|
- albumApproveListVo.setCategoryName(albumCategoryParent.getName() + "|" + albumCategory.getName());
|
|
|
- }
|
|
|
- albumApproveListVo.setCreateName(userService.queryOsUserDto(value.get(i).getCreateBy()).getFullName());
|
|
|
- albumApproveListVo.setCreateTime(value.get(i).getCreateTime());
|
|
|
- albumApproveListVo.setApprovalStateName(AlbumVersionApproveEnum.getMessage(value.get(i).getAlbumYelp().getApprovalState()));
|
|
|
- //用于权限判断
|
|
|
- albumApproveListVo.setApproverId(value.get(i).getApproverId());
|
|
|
- albumApproveListVo.setApprovalState(value.get(i).getAlbumYelp().getApprovalState());
|
|
|
- //动作标记
|
|
|
- String userId = userService.queryLoginUser();
|
|
|
- String deptId = userService.queryLoginUserDeptId();
|
|
|
- Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApproveListVo.getApproverId());
|
|
|
- List<String> actionFlag = new ArrayList<>();
|
|
|
- if ((userId.equals(albumApproveListVo.getApproverId()) || count > 0)
|
|
|
- && (value.get(i).getAlbumYelp().getApprovalState() == 1 || value.get(i).getAlbumYelp().getApprovalState() == 2)) {
|
|
|
- actionFlag.add("approve");
|
|
|
- } else {
|
|
|
- actionFlag.add("view");
|
|
|
- }
|
|
|
- albumApproveListVo.setActionFlag(actionFlag);
|
|
|
// 如果是最终审核通过,直接放入记录
|
|
|
if (value.get(i).getAlbumYelp().getApprovalState() == 5 && value.get(i).getIsFinal() == 1) {
|
|
|
- albumApproveListVo.setApproverId(value.get(i).getApproverId());
|
|
|
- //实际审核人姓名和实际审核人审核时间
|
|
|
- albumApproveListVo.setPreviousApproverName(value.get(i).getActualApproverName());
|
|
|
- albumApproveListVo.setPreviousApproverTime(value.get(i).getApprovalTime());
|
|
|
- albumApproveListVos.add(albumApproveListVo);
|
|
|
+ albumYelpApproves.add(value.get(i));
|
|
|
break;
|
|
|
}
|
|
|
// 判断审批结果是否为null(如果审批结果没有null,证明审批已结束;如果等于0,证明审批没通过)
|
|
|
if (value.get(i).getResult() == null || value.get(i).getResult() == 0) {
|
|
|
- if (i != 0) {
|
|
|
- // 如果不是第一条数据,取前一条数据的实际审核人姓名
|
|
|
- String actualApproverName = value.get(i - 1).getActualApproverName();
|
|
|
- albumApproveListVo.setPreviousApproverName(actualApproverName);
|
|
|
- // 如果不是第一条数据,取前一条数据的审批时间
|
|
|
- Date approvalTime = value.get(i - 1).getApprovalTime();
|
|
|
- albumApproveListVo.setPreviousApproverTime(approvalTime);
|
|
|
- } else {
|
|
|
- String actualApproverName = value.get(i).getActualApproverName();
|
|
|
- albumApproveListVo.setPreviousApproverName(actualApproverName);
|
|
|
- Date approvalTime = value.get(i).getApprovalTime();
|
|
|
- albumApproveListVo.setPreviousApproverTime(approvalTime);
|
|
|
- }
|
|
|
// 把该记录加到结果集中
|
|
|
- albumApproveListVos.add(albumApproveListVo);
|
|
|
+ albumYelpApproves.add(value.get(i));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if ("1".equals(type)) {
|
|
|
- List<AlbumYelpApproveListVo> result = albumApproveListVos.stream().
|
|
|
+ List<AlbumYelpApprove> result = albumYelpApproves.stream().
|
|
|
sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
|
|
|
Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), result);
|
|
|
+ List<AlbumYelpApprove> records = pageResult.getRecords();
|
|
|
+ List<AlbumYelpApproveListVo> collect = records.stream().map(this::paramsPackage).collect(Collectors.toList());
|
|
|
+ pageResult.setRecords(collect);
|
|
|
return pageResult;
|
|
|
} else {
|
|
|
//获取当前登录人的userId和deptId
|
|
|
String userId = userService.queryLoginUser();
|
|
|
String deptId = userService.queryLoginUserDeptId();
|
|
|
|
|
|
- List<AlbumYelpApproveListVo> albumApproveListVoUser = new ArrayList<>();
|
|
|
+ List<AlbumYelpApprove> albumApproveListVoUser = new ArrayList<>();
|
|
|
//根据部门Id获取子部门信息
|
|
|
//过滤数据
|
|
|
- albumApproveListVos.forEach(albumApproveListVo -> {
|
|
|
- Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApproveListVo.getApproverId());
|
|
|
- if ((userId.equals(albumApproveListVo.getApproverId()) || count > 0) &&
|
|
|
- (albumApproveListVo.getApprovalState() == 1 || albumApproveListVo.getApprovalState() == 2)) {
|
|
|
- albumApproveListVoUser.add(albumApproveListVo);
|
|
|
+ albumYelpApproves.forEach(albumYelpApprove -> {
|
|
|
+ Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumYelpApprove.getApproverId());
|
|
|
+ if ((userId.equals(albumYelpApprove.getApproverId()) || count > 0) &&
|
|
|
+ (albumYelpApprove.getAlbumYelp().getApprovalState() == 1 || albumYelpApprove.getAlbumYelp().getApprovalState() == 2)) {
|
|
|
+ albumApproveListVoUser.add(albumYelpApprove);
|
|
|
}
|
|
|
});
|
|
|
- List<AlbumYelpApproveListVo> result = albumApproveListVoUser.stream().
|
|
|
+ List<AlbumYelpApprove> result = albumApproveListVoUser.stream().
|
|
|
sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
|
|
|
Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), result);
|
|
|
+ List<AlbumYelpApprove> records = pageResult.getRecords();
|
|
|
+ List<AlbumYelpApproveListVo> collect = records.stream().map(this::paramsPackage).collect(Collectors.toList());
|
|
|
+ pageResult.setRecords(collect);
|
|
|
return pageResult;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private AlbumYelpApproveListVo paramsPackage(AlbumYelpApprove albumYelpApprove){
|
|
|
+ AlbumYelpApproveListVo albumApproveListVo = new AlbumYelpApproveListVo();
|
|
|
+ albumApproveListVo.setPkId(albumYelpApprove.getYelpId());
|
|
|
+ albumApproveListVo.setContent(albumYelpApprove.getAlbumYelp().getContent());
|
|
|
+ albumApproveListVo.setAlbumName(albumYelpApprove.getAlbumInfo().getName());
|
|
|
+ String categoryId = albumYelpApprove.getAlbumInfo().getCategoryId();
|
|
|
+ AlbumCategory albumCategory = albumCategoryMapper.selectById(categoryId);
|
|
|
+ if (albumCategory.getGrade() == 1) {
|
|
|
+ albumApproveListVo.setCategoryName(albumCategory.getName());
|
|
|
+ } else {
|
|
|
+ AlbumCategory albumCategoryParent = albumCategoryMapper.
|
|
|
+ selectOne(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getPkId, albumCategory.getParent()));
|
|
|
+ albumApproveListVo.setCategoryName(albumCategoryParent.getName() + "|" + albumCategory.getName());
|
|
|
+ }
|
|
|
+ albumApproveListVo.setCreateName(userService.queryOsUserDto(albumYelpApprove.getCreateBy()).getFullName());
|
|
|
+ albumApproveListVo.setCreateTime(albumYelpApprove.getCreateTime());
|
|
|
+ albumApproveListVo.setApprovalStateName(AlbumVersionApproveEnum.getMessage(albumYelpApprove.getAlbumYelp().getApprovalState()));
|
|
|
+ //用于权限判断
|
|
|
+ albumApproveListVo.setApproverId(albumYelpApprove.getApproverId());
|
|
|
+ albumApproveListVo.setApprovalState(albumYelpApprove.getAlbumYelp().getApprovalState());
|
|
|
+ //动作标记
|
|
|
+ String userId = userService.queryLoginUser();
|
|
|
+ String deptId = userService.queryLoginUserDeptId();
|
|
|
+ Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApproveListVo.getApproverId());
|
|
|
+ List<String> actionFlag = new ArrayList<>();
|
|
|
+ if ((userId.equals(albumApproveListVo.getApproverId()) || count > 0)
|
|
|
+ && (albumYelpApprove.getAlbumYelp().getApprovalState() == 1 || albumYelpApprove.getAlbumYelp().getApprovalState() == 2)) {
|
|
|
+ actionFlag.add("approve");
|
|
|
+ } else {
|
|
|
+ actionFlag.add("view");
|
|
|
+ }
|
|
|
+ albumApproveListVo.setActionFlag(actionFlag);
|
|
|
+ // 如果是最终审核通过(赋值实际审核人和审核时间)
|
|
|
+ if (albumYelpApprove.getAlbumYelp().getApprovalState() == 5 || albumYelpApprove.getAlbumYelp().getApprovalState() == 4
|
|
|
+ || albumYelpApprove.getAlbumYelp().getApprovalState() == 3) {
|
|
|
+ String actualApproverName = albumYelpApprove.getActualApproverName();
|
|
|
+ albumApproveListVo.setPreviousApproverName(actualApproverName);
|
|
|
+ Date approvalTime = albumYelpApprove.getApprovalTime();
|
|
|
+ albumApproveListVo.setPreviousApproverTime(approvalTime);
|
|
|
+ } else {
|
|
|
+ //取前一条记录实际审核人和审核时间
|
|
|
+ QueryWrapper<AlbumYelpApprove> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("YELP_ID",albumYelpApprove.getYelpId());
|
|
|
+ queryWrapper.eq("ALBUM_ID",albumYelpApprove.getAlbumId());
|
|
|
+ queryWrapper.eq("SORT",albumYelpApprove.getSort() - 1);
|
|
|
+ queryWrapper.orderByAsc("SORT");
|
|
|
+ AlbumYelpApprove albumYelpApproveBySort = albumYelpApproveMapper.selectOne(queryWrapper);
|
|
|
+ if (albumYelpApproveBySort != null){
|
|
|
+ String actualApproverName = albumYelpApproveBySort.getActualApproverName();
|
|
|
+ albumApproveListVo.setPreviousApproverName(actualApproverName);
|
|
|
+ Date approvalTime = albumYelpApproveBySort.getApprovalTime();
|
|
|
+ albumApproveListVo.setPreviousApproverTime(approvalTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return albumApproveListVo;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 对知识专辑点评进行审核(快速审核和批量审核)
|
|
|
*
|