|
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.ccsens.tall.bean.po.*; |
|
|
|
import com.ccsens.tall.bean.vo.ProjectVo; |
|
|
|
import com.ccsens.tall.bean.vo.TaskVo; |
|
|
|
import com.ccsens.tall.persist.dao.*; |
|
|
|
import com.ccsens.tall.util.TaskUtil; |
|
|
@ -183,7 +184,9 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
allMemberId = allMember.getId(); |
|
|
|
} |
|
|
|
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
|
|
|
|
List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId, startTime, endTime); |
|
|
|
List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, startTime, endTime); |
|
|
|
List<TaskVo.NormalTask> secondTaskVoList2 = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, allMemberId, startTime, endTime); |
|
|
|
secondTaskVoList.addAll(secondTaskVoList2); |
|
|
|
if (CollectionUtil.isNotEmpty(secondTaskVoList)) { |
|
|
|
for (TaskVo.NormalTask normalTask : secondTaskVoList) { |
|
|
|
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId()); |
|
|
@ -535,7 +538,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
case "创建者": |
|
|
|
for (SysProject project : projectList) { |
|
|
|
if (project.getCreatorId().longValue() == currentUserId.longValue()) { |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime); |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime,null); |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
normalTaskList.addAll(taskList); |
|
|
|
} |
|
|
@ -545,7 +548,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
case "参与者": |
|
|
|
for (SysProject project : projectList) { |
|
|
|
if (project.getCreatorId().longValue() != currentUserId.longValue()) { |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime); |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime,null); |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
normalTaskList.addAll(taskList); |
|
|
|
} |
|
|
@ -557,7 +560,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (SysProject project : projectList) { |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime); |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime,null); |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
normalTaskList.addAll(taskList); |
|
|
|
} |
|
|
@ -614,21 +617,25 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
|
|
|
|
private List<TaskVo.NormalTask> getTaskInfoByProjectIdAndUserId(SysProject project, Long userId, |
|
|
|
Long startTime, Long endTime) throws Exception { |
|
|
|
Long startTime, Long endTime,List<ProRole> roleList) throws Exception { |
|
|
|
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); |
|
|
|
//获取用户的角色
|
|
|
|
List<ProRole> roleList = proRoleService.getProRoleByProjectIdAndUserId(project.getId(), userId); |
|
|
|
if(CollectionUtil.isEmpty(roleList)){ |
|
|
|
//查询此用户在项目中的的所有角色的任务
|
|
|
|
roleList = proMemberService.selectRolesByUserIdAndProjectId(userId, project.getId()); |
|
|
|
} |
|
|
|
// List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(userId, project.getId());
|
|
|
|
|
|
|
|
//获取“全体成员”角色
|
|
|
|
ProRole allMember = proRoleService.getAllMember(project.getId()); |
|
|
|
Long allMemberId = null; |
|
|
|
if (ObjectUtil.isNotNull(allMember)) { |
|
|
|
allMemberId = allMember.getId(); |
|
|
|
roleList.add(allMember); |
|
|
|
} |
|
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
for (ProRole role : roleList) { |
|
|
|
SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId()); |
|
|
|
List<TaskVo.NormalTask> taskList = |
|
|
|
taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), allMemberId, startTime, endTime); |
|
|
|
taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), startTime, endTime); |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
for (TaskVo.NormalTask normalTask : taskList) { |
|
|
|
//修改任务的完成状态
|
|
|
@ -675,10 +682,27 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
timeMap = DateUtil.projectFormatDateTime(start); |
|
|
|
endMillisTime = timeMap.get("endMillisTime"); |
|
|
|
} |
|
|
|
//获取需查询的角色
|
|
|
|
List<ProRole> roleList = new ArrayList<>(); |
|
|
|
if(ObjectUtil.isNotNull(roleId)){ |
|
|
|
//获取指定的角色
|
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(roleId); |
|
|
|
roleList.add(role); |
|
|
|
}else { |
|
|
|
//查询项目下所有角色的任务
|
|
|
|
List<ProjectVo.RoleInfo> roleInfoList = proRoleService.getRealMemberRolesByProjectId(projectId); |
|
|
|
if(CollectionUtil.isNotEmpty(roleInfoList)) { |
|
|
|
for (ProjectVo.RoleInfo roleInfo : roleInfoList) { |
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(roleInfo.getId()); |
|
|
|
roleList.add(role); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//获取项目
|
|
|
|
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); |
|
|
|
if (ObjectUtil.isNotNull(sysProject)) { |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(sysProject, currentUserId, startMillisTime, endMillisTime); |
|
|
|
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(sysProject, currentUserId, startMillisTime, endMillisTime,roleList); |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
normalTaskList.addAll(taskList); |
|
|
|
} |
|
|
|