|
|
@ -14,6 +14,7 @@ import com.ccsens.util.WebConstant; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
@ -36,6 +37,8 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
@Autowired |
|
|
|
private IProMemberService proMemberService; |
|
|
|
@Autowired |
|
|
|
private IProShowService proShowService; |
|
|
|
@Autowired |
|
|
|
private TaskDetailDao taskDetailDao; |
|
|
|
@Autowired |
|
|
|
private TaskSubTimeDao taskSubTimeDao; |
|
|
@ -93,6 +96,8 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
* 查看任务 项目经理 |
|
|
|
*/ |
|
|
|
private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndPM(Long currentUserId, Long projectId, Long startTime, Long endTime, Integer process, Integer page, Integer pageSize) throws Exception { |
|
|
|
ProShow proShow = proShowService.selectByProjectId(projectId); |
|
|
|
|
|
|
|
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); |
|
|
|
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); |
|
|
|
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); |
|
|
@ -123,6 +128,14 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
task.setRealEndTime(subTimeMember.getRealFinishTime()); |
|
|
|
task.setProcess(subTimeMember.getComplatedStatus()); |
|
|
|
} |
|
|
|
if(ObjectUtil.isNotNull(proShow)){ |
|
|
|
task.setShowTimeFormat(proShow.getTimeShow()); |
|
|
|
if(proShow.getDuration() == 1){ |
|
|
|
task.setDuration(null); |
|
|
|
} |
|
|
|
}else { |
|
|
|
task.setShowTimeFormat("MM-dd HH:mm"); |
|
|
|
} |
|
|
|
} |
|
|
|
TaskUtil.Task task = TaskUtil.splitTask(secondNormalTaskList, startTime, endTime, process); |
|
|
|
if (CollectionUtil.isNotEmpty(task.getGlobalTask())) { |
|
|
@ -157,6 +170,8 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
* 查看任务 项目成员 |
|
|
|
*/ |
|
|
|
private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime, Integer process, Integer page, Integer pageSize) throws Exception { |
|
|
|
ProShow proShow = proShowService.selectByProjectId(projectId); |
|
|
|
|
|
|
|
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); |
|
|
|
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); |
|
|
|
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); |
|
|
@ -176,6 +191,14 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
normalTask.setProcess(subTimeMember.getComplatedStatus()); |
|
|
|
normalTask.setRealEndTime(subTimeMember.getRealFinishTime()); |
|
|
|
} |
|
|
|
if(ObjectUtil.isNotNull(proShow)){ |
|
|
|
normalTask.setShowTimeFormat(proShow.getTimeShow()); |
|
|
|
if(proShow.getDuration() == 1){ |
|
|
|
normalTask.setDuration(null); |
|
|
|
} |
|
|
|
}else { |
|
|
|
normalTask.setShowTimeFormat("MM-dd HH:mm"); |
|
|
|
} |
|
|
|
} |
|
|
|
TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList, startTime, endTime, process); |
|
|
|
if (CollectionUtil.isNotEmpty(task.getGlobalTask())) { |
|
|
@ -380,6 +403,8 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public TaskVo.NormalTask getTaskInfoByTaskId(Long currentUserId, Long projectId, Long taskId) throws Exception { |
|
|
|
ProShow proShow = proShowService.selectByProjectId(projectId); |
|
|
|
|
|
|
|
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(taskId); |
|
|
|
TaskVo.NormalTask taskDetail = null; |
|
|
|
if (ObjectUtil.isNotNull(subTime)) { |
|
|
@ -390,6 +415,15 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
taskDetail.setProcess(subTimeMember.getComplatedStatus()); |
|
|
|
taskDetail.setRealEndTime(subTimeMember.getRealFinishTime()); |
|
|
|
} |
|
|
|
//显示的日期格式和时长格式
|
|
|
|
if(ObjectUtil.isNotNull(proShow)){ |
|
|
|
taskDetail.setShowTimeFormat(proShow.getTimeShow()); |
|
|
|
if(proShow.getDuration() == 1){ |
|
|
|
taskDetail.setDuration(null); |
|
|
|
} |
|
|
|
}else { |
|
|
|
taskDetail.setShowTimeFormat("MM-dd HH:mm"); |
|
|
|
} |
|
|
|
//添加项目信息和插件信息
|
|
|
|
normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail); |
|
|
|
if (ObjectUtil.isNotNull(taskDetail)) { |
|
|
@ -403,6 +437,15 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
groupTask.setProcess(proSubTimeMember.getComplatedStatus()); |
|
|
|
groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime()); |
|
|
|
} |
|
|
|
//显示的日期格式和时长格式
|
|
|
|
if(ObjectUtil.isNotNull(proShow)){ |
|
|
|
groupTask.setShowTimeFormat(proShow.getTimeShow()); |
|
|
|
if(proShow.getDuration() == 1){ |
|
|
|
groupTask.setDuration(null); |
|
|
|
} |
|
|
|
}else { |
|
|
|
groupTask.setShowTimeFormat("MM-dd HH:mm"); |
|
|
|
} |
|
|
|
//添加项目信息和插件信息
|
|
|
|
normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask); |
|
|
|
//修改返回时子任务的名字(“任务名+(xx和XX)”)
|
|
|
@ -461,6 +504,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
return name; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 任务清单 |
|
|
|
*/ |
|
|
@ -773,7 +817,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
//本用户在项目中的角色
|
|
|
|
List<ProRole> proRoles = proRoleService.getProRoleByProjectIdAndUserId(taskDetail.getProjectId(), currentUserId); |
|
|
|
//用户在项目中的最高权限
|
|
|
|
int power = proRoleService.selectPowerByRoleName(proRoles); |
|
|
|
int power = proRoleService.selectPowerByRoleName(currentUserId,taskDetail.getProjectId()); |
|
|
|
if (power > 1) { |
|
|
|
if (ObjectUtil.isNotNull(taskDetail)) { |
|
|
|
deleteTaskByTaskId(taskDetail.getId()); |
|
|
@ -784,7 +828,18 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteTaskByTaskId(Long taskId) { |
|
|
|
public void deleteTaskByRoleId(Long roleId) { |
|
|
|
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample(); |
|
|
|
taskDetailExample.createCriteria().andExecutorRoleEqualTo(roleId); |
|
|
|
List<ProTaskDetail> detailList = taskDetailDao.selectByExample(taskDetailExample); |
|
|
|
if(CollectionUtil.isNotEmpty(detailList)){ |
|
|
|
for(ProTaskDetail taskDetail:detailList){ |
|
|
|
deleteTaskByTaskId(taskDetail.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void deleteTaskByTaskId(Long taskId) { |
|
|
|
//1、删除交付物相关信息
|
|
|
|
taskDeliverService.deleteDeliverByTaskId(taskId); |
|
|
|
//2、删除插件
|
|
|
|