|
@ -8,13 +8,17 @@ import com.ccsens.tall.bean.po.ProRole; |
|
|
import com.ccsens.tall.bean.po.ProShow; |
|
|
import com.ccsens.tall.bean.po.ProShow; |
|
|
import com.ccsens.tall.bean.po.ProShowExample; |
|
|
import com.ccsens.tall.bean.po.ProShowExample; |
|
|
import com.ccsens.tall.bean.po.ProSubTimeMember; |
|
|
import com.ccsens.tall.bean.po.ProSubTimeMember; |
|
|
|
|
|
import com.ccsens.tall.bean.vo.LwbsVo; |
|
|
import com.ccsens.tall.bean.vo.TaskVo; |
|
|
import com.ccsens.tall.bean.vo.TaskVo; |
|
|
|
|
|
import com.ccsens.tall.persist.dao.SysProjectDao; |
|
|
|
|
|
import com.ccsens.tall.persist.dao.TaskDetailDao; |
|
|
import com.ccsens.tall.util.TaskUtil; |
|
|
import com.ccsens.tall.util.TaskUtil; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
|
|
|
|
|
@ -25,78 +29,111 @@ import java.util.List; |
|
|
@Service |
|
|
@Service |
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
public class LwbsService implements ILwbsService{ |
|
|
public class LwbsService implements ILwbsService{ |
|
|
|
|
|
@Resource |
|
|
|
|
|
private TaskDetailDao taskDetailDao; |
|
|
|
|
|
@Resource |
|
|
|
|
|
public SysProjectDao sysProjectDao; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 查询该用户的所有项目 |
|
|
|
|
|
* @param param 开始结束时间 |
|
|
|
|
|
* @param userId userId |
|
|
|
|
|
* @return 返回项目信息 |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public List<LwbsVo.SelByUserIdToComProjectVo> queryProjectByUserId(LwbsDto.SelByUserIdToComProject param, Long userId){ |
|
|
|
|
|
List<LwbsVo.SelByUserIdToComProjectVo> projectVoList = new ArrayList<>(); |
|
|
|
|
|
//"我的"
|
|
|
|
|
|
LwbsVo.SelByUserIdToComProjectVo mine =new LwbsVo.SelByUserIdToComProjectVo(); |
|
|
|
|
|
mine.setName("我的"); |
|
|
|
|
|
mine.setType(0); |
|
|
|
|
|
mine.setId(userId); |
|
|
|
|
|
projectVoList.add(mine); |
|
|
|
|
|
//查询普通项目
|
|
|
|
|
|
List<LwbsVo.SelByUserIdToComProjectVo> projectList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId); |
|
|
|
|
|
projectVoList.addAll(projectList); |
|
|
|
|
|
//"其他"
|
|
|
|
|
|
LwbsVo.SelByUserIdToComProjectVo other =new LwbsVo.SelByUserIdToComProjectVo(); |
|
|
|
|
|
other.setName("其他"); |
|
|
|
|
|
other.setType(2); |
|
|
|
|
|
projectVoList.add(other); |
|
|
|
|
|
return projectVoList; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public TaskVo.ProTaskInfo queryLwbs(LwbsDto.SelByProjectIdToTaskDto param, Long userId) { |
|
|
|
|
|
|
|
|
|
|
|
if(ObjectUtil.isNotNull(param.getId())){ |
|
|
|
|
|
//如果项目id为空。则查询所有
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public TaskVo.ProTaskInfo queryLwbs(LwbsDto.SelByProjectIdToTaskDto param, Long userId) { |
|
|
|
|
|
TaskVo.ProTaskInfo proTaskInfo; |
|
|
|
|
|
if (param.getQueryType() == 0){ |
|
|
|
|
|
//“我的”查询所有项目的任务
|
|
|
|
|
|
proTaskInfo = new TaskVo.ProTaskInfo(); |
|
|
|
|
|
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>(); |
|
|
|
|
|
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); |
|
|
|
|
|
//查询我的所有项目
|
|
|
|
|
|
List<LwbsVo.SelByUserIdToComProjectVo> projectList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId); |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(projectList)){ |
|
|
|
|
|
projectList.forEach(project -> { |
|
|
|
|
|
//查找项目下的任务
|
|
|
|
|
|
TaskVo.ProTaskInfo projectTask = queryLwbsByProjectId(project.getId(),param.getStartTime(),param.getEndTime(),userId); |
|
|
|
|
|
//将项目信息当做任务的上级信息
|
|
|
|
|
|
if(ObjectUtil.isNotNull(projectTask)){ |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(projectTask.getGlobalTaskList())){ |
|
|
|
|
|
//全局
|
|
|
|
|
|
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); |
|
|
|
|
|
globalTask.setId(project.getId()); |
|
|
|
|
|
globalTask.setName(project.getName()); |
|
|
|
|
|
globalTask.setProjectId(project.getId()); |
|
|
|
|
|
globalTask.setName(project.getName()); |
|
|
|
|
|
globalTask.setBeginTime(project.getBeginTime()); |
|
|
|
|
|
globalTask.setEndTime(project.getEndTime()); |
|
|
|
|
|
globalTask.setNormalTaskList(projectTask.getGlobalTaskList()); |
|
|
|
|
|
globalTaskList.add(globalTask); |
|
|
|
|
|
} |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(projectTask.getNormalTaskList())){ |
|
|
|
|
|
//普通
|
|
|
|
|
|
TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); |
|
|
|
|
|
normalTask.setId(project.getId()); |
|
|
|
|
|
normalTask.setName(project.getName()); |
|
|
|
|
|
normalTask.setProjectId(project.getId()); |
|
|
|
|
|
normalTask.setName(project.getName()); |
|
|
|
|
|
normalTask.setBeginTime(project.getBeginTime()); |
|
|
|
|
|
normalTask.setEndTime(project.getEndTime()); |
|
|
|
|
|
normalTask.setSecondTasks(projectTask.getNormalTaskList()); |
|
|
|
|
|
normalTaskList.add(normalTask); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
proTaskInfo.setGlobalTaskList(globalTaskList); |
|
|
|
|
|
proTaskInfo.setNormalTaskList(normalTaskList); |
|
|
|
|
|
}else if(param.getQueryType() == 1){ |
|
|
|
|
|
//查询普通的项目
|
|
|
|
|
|
proTaskInfo = queryLwbsByProjectId(param.getId(),param.getStartTime(),param.getEndTime(),userId); |
|
|
}else { |
|
|
}else { |
|
|
//项目id不为空。查询单个项目
|
|
|
//查询其他项目
|
|
|
|
|
|
proTaskInfo = new TaskVo.ProTaskInfo(); |
|
|
|
|
|
List<TaskVo.NormalTask> taskList = taskDetailDao.selectOtherTask(userId); |
|
|
|
|
|
//区分全局任务和普通任务
|
|
|
|
|
|
if(CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
|
|
TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); |
|
|
|
|
|
proTaskInfo.setGlobalTaskList(task.getGlobal()); |
|
|
|
|
|
proTaskInfo.setNormalTaskList(task.getCommonTask()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return proTaskInfo; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndRoleId(Long currentUserId, Long projectId, Long startTime,
|
|
|
private TaskVo.ProTaskInfo queryLwbsByProjectId(Long projectId, Long startTime,Long endTime, Long userId){ |
|
|
// Long endTime, Integer process, Integer priority) throws Exception {
|
|
|
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); |
|
|
// TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
|
|
|
//查询当前项目下所有任务
|
|
|
//
|
|
|
List<TaskVo.NormalTask> normalTaskList = taskDetailDao.queryLwbsByProjectId(projectId,startTime,endTime,userId); |
|
|
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
|
|
|
//分解为全局和普通
|
|
|
// List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
|
|
|
if(CollectionUtil.isNotEmpty(normalTaskList)) { |
|
|
// TaskVo.GlobalTask globalTask;
|
|
|
TaskUtil.Task task = TaskUtil.splitTask(normalTaskList, startTime, endTime, 0); |
|
|
// //获取“全体成员”角色
|
|
|
proTaskInfo.setGlobalTaskList(task.getGlobal()); |
|
|
// ProRole allMember = proRoleService.getAllMember(projectId);
|
|
|
proTaskInfo.setNormalTaskList(task.getCommonTask()); |
|
|
// Long allMemberId = null;
|
|
|
} |
|
|
// if (ObjectUtil.isNotNull(allMember)) {
|
|
|
return proTaskInfo; |
|
|
// allMemberId = allMember.getId();
|
|
|
} |
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// //查找该项目下该用户的的所有的任务
|
|
|
|
|
|
// List<TaskVo.NormalTask> secondTaskVoList =
|
|
|
|
|
|
// List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId,
|
|
|
|
|
|
// allMemberId, startTime, endTime, priority);
|
|
|
|
|
|
//
|
|
|
|
|
|
// if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
|
|
|
|
|
|
// for (TaskVo.NormalTask normalTask : secondTaskVoList) {
|
|
|
|
|
|
//
|
|
|
|
|
|
// //任务完成状态
|
|
|
|
|
|
// if (normalTask.getProcess() != 2) {
|
|
|
|
|
|
// ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
|
|
|
|
|
|
// if (ObjectUtil.isNotNull(subTimeMember)) {
|
|
|
|
|
|
// normalTask.setProcess(subTimeMember.getComplatedStatus());
|
|
|
|
|
|
// normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
|
|
|
|
|
|
// } else if (normalTask.getProcess() > 2) {
|
|
|
|
|
|
// normalTask.setRealEndTime((long) 0);
|
|
|
|
|
|
// normalTask.setProcess(0);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList, startTime, endTime, process);
|
|
|
|
|
|
//
|
|
|
|
|
|
// if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
|
|
|
|
|
|
// for (TaskVo.NormalTask global : task.getGlobalTask()) {
|
|
|
|
|
|
// globalTask = new TaskVo.GlobalTask();
|
|
|
|
|
|
// BeanUtil.copyProperties(global, globalTask);
|
|
|
|
|
|
// globalTaskList.add(globalTask);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
|
|
|
|
|
|
// if (priority == 0) {
|
|
|
|
|
|
// normalTaskList = sortTaskTime(task.getCommonTask());
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// normalTaskList = task.getCommonTask();
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// proTaskInfo.setGlobalTaskList(globalTaskList);
|
|
|
|
|
|
// proTaskInfo.setNormalTaskList(normalTaskList);
|
|
|
|
|
|
//
|
|
|
|
|
|
// return proTaskInfo;
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|