|
|
@ -170,7 +170,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
TaskVo.NormalTask normalTask; |
|
|
|
|
|
|
|
SysProject project = sysProjectDao.selectByPrimaryKey(projectId); |
|
|
|
if (ObjectUtil.isNull(project)){ |
|
|
|
if (ObjectUtil.isNull(project)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
if (endTime < project.getBeginTime() || startTime > project.getEndTime()) { |
|
|
@ -180,10 +180,10 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
ProShowExample proShowExample = new ProShowExample(); |
|
|
|
proShowExample.createCriteria().andProjectIdEqualTo(projectId); |
|
|
|
List<ProShow> proShowList = proShowDao.selectByExample(proShowExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proShowList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proShowList)) { |
|
|
|
ProShow proShow = proShowList.get(0); |
|
|
|
if(proShow.getSelectTaskType() == 4){ |
|
|
|
return getTaskAndType4ByPM(currentUserId,projectId,startTime,endTime,page,pageSize,roleId); |
|
|
|
if (proShow.getSelectTaskType() == 4) { |
|
|
|
return getTaskAndType4ByPM(currentUserId, projectId, startTime, endTime, page, pageSize, roleId); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -278,7 +278,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
|
|
|
|
//特殊任务分页查找项目经理下的任务(不处理时间)
|
|
|
|
private TaskVo.ProTaskInfo getTaskAndType4ByPM(Long currentUserId,Long projectId,Long startTime,Long endTime,int page,int pageSize,Long roleId) throws Exception { |
|
|
|
private TaskVo.ProTaskInfo getTaskAndType4ByPM(Long currentUserId, Long projectId, Long startTime, Long endTime, int page, int pageSize, Long roleId) throws Exception { |
|
|
|
List<TaskVo.NormalTask> normalTasks = new ArrayList<>(); |
|
|
|
//1、查找一级任务
|
|
|
|
PageHelper.startPage(page, pageSize); |
|
|
@ -290,7 +290,6 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
PageInfo pageInfo = new PageInfo<>(firstTaskDetailList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { |
|
|
|
int sequence = 1; |
|
|
|
for (ProTaskDetail firstTaskDetail : firstTaskDetailList) { |
|
|
@ -338,8 +337,8 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
return proTaskInfo; |
|
|
|
} |
|
|
|
|
|
|
|
private TaskVo.ProTaskInfo getTaskAndType4ByMember(Long currentUserId,Long projectId,Long startTime,Integer imitation, |
|
|
|
Long endTime,int page,int pageSize,Long roleId,Long allMemberId,Integer priority) throws Exception { |
|
|
|
private TaskVo.ProTaskInfo getTaskAndType4ByMember(Long currentUserId, Long projectId, Long startTime, Integer imitation, |
|
|
|
Long endTime, int page, int pageSize, Long roleId, Long allMemberId, Integer priority) throws Exception { |
|
|
|
|
|
|
|
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
|
|
|
|
PageHelper.startPage(page, pageSize); |
|
|
@ -353,12 +352,12 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
//通过角色id查找 负责人名称 检查人名称
|
|
|
|
Long executorRole = normalTask.getExecutorRole(); |
|
|
|
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole); |
|
|
|
if(ObjectUtil.isNotNull(executor)){ |
|
|
|
if (ObjectUtil.isNotNull(executor)) { |
|
|
|
normalTask.setExecutorRoleName(executor.getName()); |
|
|
|
} |
|
|
|
Long checkerRole = normalTask.getCheckerRole(); |
|
|
|
ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole); |
|
|
|
if(ObjectUtil.isNotNull(checker)){ |
|
|
|
if (ObjectUtil.isNotNull(checker)) { |
|
|
|
normalTask.setCheckerRoleName(checker.getName()); |
|
|
|
} |
|
|
|
|
|
|
@ -412,10 +411,10 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
ProShowExample proShowExample = new ProShowExample(); |
|
|
|
proShowExample.createCriteria().andProjectIdEqualTo(projectId); |
|
|
|
List<ProShow> proShowList = proShowDao.selectByExample(proShowExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proShowList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proShowList)) { |
|
|
|
ProShow proShow = proShowList.get(0); |
|
|
|
if(proShow.getSelectTaskType() == 4){ |
|
|
|
return getTaskAndType4ByMember(currentUserId,projectId,startTime,imitation,endTime,page,pageSize,roleId,allMemberId,priority); |
|
|
|
if (proShow.getSelectTaskType() == 4) { |
|
|
|
return getTaskAndType4ByMember(currentUserId, projectId, startTime, imitation, endTime, page, pageSize, roleId, allMemberId, priority); |
|
|
|
} |
|
|
|
} |
|
|
|
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
|
|
|
@ -435,16 +434,16 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
//通过角色id查找 负责人名称 检查人名称
|
|
|
|
Long executorRole = normalTask.getExecutorRole(); |
|
|
|
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole); |
|
|
|
if(ObjectUtil.isNotNull(executor)){ |
|
|
|
if (ObjectUtil.isNotNull(executor)) { |
|
|
|
normalTask.setExecutorRoleName(executor.getName()); |
|
|
|
} |
|
|
|
|
|
|
|
//设置默认检查人
|
|
|
|
Long checkerRole = normalTask.getCheckerRole(); |
|
|
|
ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole); |
|
|
|
if(ObjectUtil.isNotNull(checker)) { |
|
|
|
if (ObjectUtil.isNotNull(checker)) { |
|
|
|
normalTask.setCheckerRoleName(checker.getName()); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
//根据任务id查询项目下项目经理
|
|
|
|
Long pmId = taskDetailDao.selectPmByTaskId(normalTask.getDetailId()); |
|
|
|
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId); |
|
|
@ -648,7 +647,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
if (ObjectUtil.isNotNull(proPluginConfig)) { |
|
|
|
//如果是周会相关的插件,且入参为空。特殊查询
|
|
|
|
SysPlugin sysPlugin = sysPluginDao.selectByPrimaryKey(Long.parseLong(pluginIds[i])); |
|
|
|
if(ObjectUtil.isNotNull(sysPlugin) && sysPlugin.getScene() == 6 && StrUtil.isEmpty(proPluginConfig.getImportParam())){ |
|
|
|
if (ObjectUtil.isNotNull(sysPlugin) && sysPlugin.getScene() == 6 && StrUtil.isEmpty(proPluginConfig.getImportParam())) { |
|
|
|
PluginVo.PersonalTaskReport personalTaskReport = taskPluginService.getPersonalTaskReport(normalTask.getProjectId()); |
|
|
|
proPluginConfig.setImportParam(JacksonUtil.beanToJson(personalTaskReport)); |
|
|
|
} |
|
|
@ -755,7 +754,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
if (ObjectUtil.isNull(task)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_TASK); |
|
|
|
} |
|
|
|
if(ObjectUtil.isNull(taskSubTimeId)){ |
|
|
|
if (ObjectUtil.isNull(taskSubTimeId)) { |
|
|
|
taskSubTimeId = taskDeliverService.isTaskOrSubTime(taskId); |
|
|
|
} |
|
|
|
|
|
|
@ -821,20 +820,20 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
//查询此任务下的输入文档
|
|
|
|
List<InputDocVo.InputDocInfo> inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId()); |
|
|
|
if (CollectionUtil.isNotEmpty(inputDocInfos)){ |
|
|
|
if (CollectionUtil.isNotEmpty(inputDocInfos)) { |
|
|
|
taskDetail.setInputDoc(inputDocInfos); |
|
|
|
} |
|
|
|
//查询此任务下的输出文档
|
|
|
|
List<DeliverVo.OutputDocInfo> outputDocInfos = taskDeliverDao.selectOutputDocByTaskId(taskDetail.getDetailId()); |
|
|
|
if (CollectionUtil.isNotEmpty(outputDocInfos)){ |
|
|
|
if (CollectionUtil.isNotEmpty(outputDocInfos)) { |
|
|
|
taskDetail.setOutputDoc(outputDocInfos); |
|
|
|
} |
|
|
|
//设置检查人
|
|
|
|
ProRole checkRole = proRoleDao.selectByPrimaryKey(task.getCheckerRole()); |
|
|
|
if (ObjectUtil.isNotNull(checkRole)){ |
|
|
|
if (ObjectUtil.isNotNull(checkRole)) { |
|
|
|
taskDetail.setCheckerRole(checkRole.getId()); |
|
|
|
taskDetail.setCheckerRoleName(checkRole.getName()); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
//根据任务id查询项目下项目经理
|
|
|
|
Long pmId = taskDetailDao.selectPmByTaskId(task.getId()); |
|
|
|
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId); |
|
|
@ -1395,10 +1394,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
if (ObjectUtil.isNotNull(updateTaskInfo.getMilestone())) { |
|
|
|
taskDetail.setMilestone(updateTaskInfo.getMilestone()); |
|
|
|
} |
|
|
|
//父任务id
|
|
|
|
if(null != updateTaskInfo.getParentId()){ |
|
|
|
taskDetail.setParentId(updateTaskInfo.getParentId()); |
|
|
|
} |
|
|
|
|
|
|
|
//时间
|
|
|
|
if (ObjectUtil.isNotNull(updateTaskInfo.getBeginTime()) || |
|
|
|
ObjectUtil.isNotNull(updateTaskInfo.getEndTime()) || |
|
|
@ -1492,34 +1488,47 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
//修改项目信息 当前的项目
|
|
|
|
if(ObjectUtil.isNotNull(updateTaskInfo.getId())){ |
|
|
|
if(ObjectUtil.isNotNull(updateTaskInfo.getProjectId())){ |
|
|
|
if(ObjectUtil.isNotNull(updateTaskInfo.getParentId())){ |
|
|
|
//修改任务所属的项目
|
|
|
|
if (ObjectUtil.isNotNull(updateTaskInfo.getProjectId())) { |
|
|
|
if (ObjectUtil.isNotNull(updateTaskInfo.getParentId())) { |
|
|
|
//检查父任务在不在移动后的项目下,不在的话提示错误信息 该任务不在该项目下,在的话则修改项目信息
|
|
|
|
//B项目updateTaskInfo.getProjectId() 父任务updateTaskInfo.getParentId()
|
|
|
|
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); |
|
|
|
proTaskDetailExample.createCriteria().andIdEqualTo(updateTaskInfo.getParentId()).andProjectIdEqualTo(updateTaskInfo.getProjectId()); |
|
|
|
long l = taskDetailDao.countByExample(proTaskDetailExample); |
|
|
|
if(l > 0 ){ |
|
|
|
throw new BaseException(CodeEnum.NOT_TASK); |
|
|
|
}else { //在的话则修改项目信息
|
|
|
|
taskDetail.setId(updateTaskInfo.getId()); |
|
|
|
if (l > 0) { |
|
|
|
// throw new BaseException(CodeEnum.NOT_TASK);
|
|
|
|
taskDetail.setProjectId(updateTaskInfo.getProjectId()); |
|
|
|
taskDetail.setParentId(updateTaskInfo.getParentId()); |
|
|
|
} else { //在的话则修改项目信息
|
|
|
|
throw new BaseException(CodeEnum.PARENT_PROJECT_NOT_MATCHING); |
|
|
|
} |
|
|
|
} else { |
|
|
|
taskDetail.setParentId(0L); |
|
|
|
taskDetail.setProjectId(updateTaskInfo.getProjectId()); |
|
|
|
taskDetailDao.updateByPrimaryKeySelective(taskDetail); |
|
|
|
} |
|
|
|
//将此任务以前的子任务的父id改成0
|
|
|
|
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); |
|
|
|
proTaskDetailExample.createCriteria().andParentIdEqualTo(taskDetail.getId()); |
|
|
|
List<ProTaskDetail> proTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proTaskDetailList)){ |
|
|
|
proTaskDetailList.forEach(proTaskDetail -> { |
|
|
|
proTaskDetail.setParentId(0L); |
|
|
|
taskDetailDao.updateByPrimaryKeySelective(proTaskDetail); |
|
|
|
}); |
|
|
|
} |
|
|
|
//把这个任务当作父任务,如果原来任务下的父任务有值 设置为0,修改项目信息
|
|
|
|
//taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情
|
|
|
|
if(ObjectUtil.isNotNull(taskDetail.getParentId())){ |
|
|
|
taskDetail.setParentId(0L); |
|
|
|
taskDetailDao.updateByPrimaryKeySelective(taskDetail); |
|
|
|
} else { |
|
|
|
//父任务id
|
|
|
|
if (null != updateTaskInfo.getParentId()) { |
|
|
|
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); |
|
|
|
proTaskDetailExample.createCriteria().andIdEqualTo(updateTaskInfo.getParentId()).andProjectIdEqualTo(taskDetail.getProjectId()); |
|
|
|
long l = taskDetailDao.countByExample(proTaskDetailExample); |
|
|
|
if (l <= 0) { |
|
|
|
throw new BaseException(CodeEnum.PARENT_PROJECT_NOT_MATCHING); |
|
|
|
} |
|
|
|
taskDetail.setId(updateTaskInfo.getId()); |
|
|
|
taskDetail.setProjectId(updateTaskInfo.getProjectId()); |
|
|
|
taskDetailDao.updateByPrimaryKeySelective(taskDetail); |
|
|
|
taskDetail.setParentId(updateTaskInfo.getParentId()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//修改数据
|
|
|
@ -1741,7 +1750,7 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { |
|
|
|
firstTaskDetailList.forEach(firstTaskDetail -> { |
|
|
|
TaskVo.TaskListByProjectId firstTask = taskDetailDao.getTaskById(firstTaskDetail.getId()); |
|
|
|
List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), null,null,null); |
|
|
|
List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), null, null, null); |
|
|
|
if (CollectionUtil.isNotEmpty(secondTaskList)) { |
|
|
|
secondTaskList.forEach(secondTask -> secondTask.setParentName(firstTaskDetail.getName())); |
|
|
|
} |
|
|
@ -1752,48 +1761,50 @@ public class ProTaskDetailService implements IProTaskDetailService { |
|
|
|
return taskList; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 新增和修改交付物 |
|
|
|
* @param jiaoFuWu |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) { |
|
|
|
ProTaskDeliverExample proTaskDeliverExample=new ProTaskDeliverExample(); |
|
|
|
ProTaskDeliver proTaskDeliver=new ProTaskDeliver(); |
|
|
|
if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){ |
|
|
|
//修改
|
|
|
|
proTaskDeliver.setId(jiaoFuWu.getId()); |
|
|
|
proTaskDeliver.setName(jiaoFuWu.getNames()); |
|
|
|
proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0); |
|
|
|
proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample); |
|
|
|
}else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) { |
|
|
|
//新增
|
|
|
|
proTaskDeliver.setId(snowflake.nextId()); |
|
|
|
proTaskDeliver.setName(jiaoFuWu.getNames()); |
|
|
|
proTaskDeliverMapper.insertSelective(proTaskDeliver); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 新增和修改输入文档 |
|
|
|
* @param jiaoFuWu |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) { |
|
|
|
ProTaskInputDocExample proTaskDeliverExample=new ProTaskInputDocExample(); |
|
|
|
ProTaskInputDoc proTaskDeliver=new ProTaskInputDoc(); |
|
|
|
if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){ |
|
|
|
//修改
|
|
|
|
proTaskDeliver.setId(jiaoFuWu.getId()); |
|
|
|
proTaskDeliver.setName(jiaoFuWu.getNames()); |
|
|
|
proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0); |
|
|
|
proTaskInputDocDao.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample); |
|
|
|
}else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) { |
|
|
|
//新增
|
|
|
|
proTaskDeliver.setId(snowflake.nextId()); |
|
|
|
proTaskDeliver.setName(jiaoFuWu.getNames()); |
|
|
|
proTaskInputDocDao.insertSelective(proTaskDeliver); |
|
|
|
} |
|
|
|
} |
|
|
|
// /**
|
|
|
|
// * 新增和修改交付物
|
|
|
|
// *
|
|
|
|
// * @param jiaoFuWu
|
|
|
|
// */
|
|
|
|
// @Override
|
|
|
|
// public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) {
|
|
|
|
// ProTaskDeliverExample proTaskDeliverExample = new ProTaskDeliverExample();
|
|
|
|
// ProTaskDeliver proTaskDeliver = new ProTaskDeliver();
|
|
|
|
// if (jiaoFuWu.getId() != null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
|
|
|
|
// //修改
|
|
|
|
// proTaskDeliver.setId(jiaoFuWu.getId());
|
|
|
|
// proTaskDeliver.setName(jiaoFuWu.getNames());
|
|
|
|
// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
|
|
|
|
// proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver, proTaskDeliverExample);
|
|
|
|
// } else if (jiaoFuWu.getId() == null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
|
|
|
|
// //新增
|
|
|
|
// proTaskDeliver.setId(snowflake.nextId());
|
|
|
|
// proTaskDeliver.setName(jiaoFuWu.getNames());
|
|
|
|
// proTaskDeliverMapper.insertSelective(proTaskDeliver);
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// * 新增和修改输入文档
|
|
|
|
// *
|
|
|
|
// * @param jiaoFuWu
|
|
|
|
// */
|
|
|
|
// @Override
|
|
|
|
// public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) {
|
|
|
|
// ProTaskInputDocExample proTaskDeliverExample = new ProTaskInputDocExample();
|
|
|
|
// ProTaskInputDoc proTaskDeliver = new ProTaskInputDoc();
|
|
|
|
// if (jiaoFuWu.getId() != null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
|
|
|
|
// //修改
|
|
|
|
// proTaskDeliver.setId(jiaoFuWu.getId());
|
|
|
|
// proTaskDeliver.setName(jiaoFuWu.getNames());
|
|
|
|
// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
|
|
|
|
// proTaskInputDocDao.updateByExampleSelective(proTaskDeliver, proTaskDeliverExample);
|
|
|
|
// } else if (jiaoFuWu.getId() == null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
|
|
|
|
// //新增
|
|
|
|
// proTaskDeliver.setId(snowflake.nextId());
|
|
|
|
// proTaskDeliver.setName(jiaoFuWu.getNames());
|
|
|
|
// proTaskInputDocDao.insertSelective(proTaskDeliver);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
} |
|
|
|