提交 f6f56043 authored 作者: 邓砥奕's avatar 邓砥奕

提供工作交接接口

上级 dc8dd0ed
......@@ -119,5 +119,10 @@ public interface TaskService {
*/
boolean TaskTreeIsOver(int rootId);
/**
* @param oldUserId 旧专管员id
* @param newUserId 新交接专管员id
* 工作交接替换跟踪和待办
*/
void workHandover(Integer oldUserId,Integer newUserId);
}
......@@ -418,6 +418,51 @@ public class TaskServiceImpl implements TaskService {
}
}
/**
* @param oldUserId 旧专管员id
* @param newUserId 新交接专管员id
*/
@Override
public void workHandover(Integer oldUserId, Integer newUserId) {
//筛选出未完结和未封存业务,映射成bto
List<TaskBto> taskBtos = taskDao.findAll().stream()
.filter(task -> (!task.getBillStatus().equals(StatusEnum.END.id))&&(!task.getBillStatus().equals(StatusEnum.ARCHIVE.id)))
.map(Task::parse2Bto)
.collect(Collectors.toList());
//查询待办
//当前指针对应userId是旧用户
List<TaskBto> taskBtoList = taskBtos.stream()
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().size() > 0;
boolean userConfirm = oldUserId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()));
return involveExists && userConfirm;
})
.collect(Collectors.toList());
//替换用户id
taskBtoList.forEach(taskBto -> {
List<Integer> ids = taskBto.getInvolveUserIdList();
ids.set(taskBto.getCurrentPoint(),newUserId);
taskBto.setInvolveUserIdList(ids);
update(taskBto);
});
//查询跟踪
//涉及人员包括旧用户且指针对应UserId不是旧用户
List<TaskBto> taskBtos1 = taskBtos.stream()
.filter(taskBto -> taskBto.getInvolveUserIdList().contains(oldUserId)&&!oldUserId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint())))
.collect(Collectors.toList());
//替换用户id
taskBtos1.forEach(taskBto -> {
List<Integer> ids = taskBto.getInvolveUserIdList();
for (int i =0;i<ids.size();i++){
if (ids.get(i).equals(oldUserId)){
ids.set(i,newUserId);
}
}
taskBto.setInvolveUserIdList(ids);
update(taskBto);
});
}
/**
* @param taskSelectVo 查询vo
* 查询跟踪和待办列表
......@@ -426,7 +471,7 @@ public class TaskServiceImpl implements TaskService {
private List<TaskUserVo> getTaskUserVoList(TaskSelectVo taskSelectVo) {
Integer userId = userUtils.getCurrentUserId();
Integer bussinessType = taskSelectVo.getBusinessType();
//筛选出未完结和封存业务,映射成bto
//筛选出未完结和封存业务,映射成bto
List<TaskBto> taskBtos = taskDao.findAll().stream()
.filter(task -> (!task.getBillStatus().equals(StatusEnum.END.id))&&(!task.getBillStatus().equals(StatusEnum.ARCHIVE.id)))
.map(Task::parse2Bto)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论