diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index b451322d..a177df26 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -70,7 +70,7 @@ public interface TaskDetailDao extends ProTaskDetailMapper { * @param userId 当前用户的userId * @return */ - List queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId); + List queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId,@Param("roleIds") List roleIds); /** * 通过任务详情id查询项目下的经理角色id diff --git a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java index bc9e5d46..8ad885c0 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java @@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @author 逗 @@ -33,6 +34,8 @@ public class LwbsService implements ILwbsService{ private TaskDetailDao taskDetailDao; @Resource public SysProjectDao sysProjectDao; + @Resource + public ProMemberService proMemberService; /** * 查询该用户的所有项目 @@ -125,8 +128,11 @@ public class LwbsService implements ILwbsService{ private TaskVo.ProTaskInfo queryLwbsByProjectId(Long projectId, Long startTime,Long endTime, Long userId){ TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); + //查找当前用户在项目中的角色 + List proRoles = proMemberService.selectRolesByUserIdAndProjectId(userId, projectId, null); + List roleIds = proRoles.stream().map(ProRole::getId).collect(Collectors.toList()); //查询当前项目下所有任务 - List normalTaskList = taskDetailDao.queryLwbsByProjectId(projectId,startTime,endTime,userId); + List normalTaskList = taskDetailDao.queryLwbsByProjectId(projectId,startTime,endTime,userId,roleIds); //分解为全局和普通 if(CollectionUtil.isNotEmpty(normalTaskList)) { TaskUtil.Task task = TaskUtil.splitTask(normalTaskList, startTime, endTime, 0); diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index f991ca6b..bb00af62 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -721,6 +721,13 @@ AND s.end_time >= #{startTime} AND d.Level = 2 + AND + + d.executor_role IN + + #{item} + + order by s.begin_time )t LEFT JOIN