diff --git a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java index 7d215b69..ea847987 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java @@ -56,14 +56,14 @@ public interface IProTaskDetailService { */ List queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectId) throws Exception; - /** - * 新增和修改交付物的方法 - * @param jiaoFuWu - */ - void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu); - /** - * 新增和修改交付物的方法 - * @param jiaoFuWu - */ - void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu); +// /** +// * 新增和修改交付物的方法 +// * @param jiaoFuWu +// */ +// void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu); +// /** +// * 新增和修改交付物的方法 +// * @param jiaoFuWu +// */ +// void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index b05f455b..e9b416e1 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -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 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 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 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 inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId()); - if (CollectionUtil.isNotEmpty(inputDocInfos)){ + if (CollectionUtil.isNotEmpty(inputDocInfos)) { taskDetail.setInputDoc(inputDocInfos); } //查询此任务下的输出文档 List 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())){ - //检查父任务在不在移动后的项目下,不在的话提示错误信息 该任务不在该项目下,在的话则修改项目信息 - //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()); - taskDetail.setParentId(updateTaskInfo.getParentId()); - taskDetail.setProjectId(updateTaskInfo.getProjectId()); - taskDetailDao.updateByPrimaryKeySelective(taskDetail); - } + //修改任务所属的项目 + 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); + taskDetail.setProjectId(updateTaskInfo.getProjectId()); + taskDetail.setParentId(updateTaskInfo.getParentId()); + } else { //在的话则修改项目信息 + throw new BaseException(CodeEnum.PARENT_PROJECT_NOT_MATCHING); } - //把这个任务当作父任务,如果原来任务下的父任务有值 设置为0,修改项目信息 - //taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情 - if(ObjectUtil.isNotNull(taskDetail.getParentId())){ - taskDetail.setParentId(0L); - taskDetailDao.updateByPrimaryKeySelective(taskDetail); - } - taskDetail.setId(updateTaskInfo.getId()); + } else { + taskDetail.setParentId(0L); taskDetail.setProjectId(updateTaskInfo.getProjectId()); - taskDetailDao.updateByPrimaryKeySelective(taskDetail); } + //将此任务以前的子任务的父id改成0 + ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); + proTaskDetailExample.createCriteria().andParentIdEqualTo(taskDetail.getId()); + List proTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); + if(CollectionUtil.isNotEmpty(proTaskDetailList)){ + proTaskDetailList.forEach(proTaskDetail -> { + proTaskDetail.setParentId(0L); + taskDetailDao.updateByPrimaryKeySelective(proTaskDetail); + }); + } + } 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.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 secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), null,null,null); + List 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); +// } +// } } diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java index 595e8273..232f13c3 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -1272,7 +1272,7 @@ public class TaskDeliverService implements ITaskDeliverService { proTaskDeliverExample.createCriteria().andTaskDetailIdEqualTo(taskDetailId).andNameEqualTo(param.getFileName()[i]); long l = taskDeliverDao.countByExample(proTaskDeliverExample); if(l>0){ - throw new BaseException(CodeEnum.Deliver_REPEAT); + throw new BaseException(CodeEnum.DELIVER_REPEAT); } //添加交付物 ProTaskDeliver proTaskDeliver = new ProTaskDeliver(); diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 176ec4b6..d54fa552 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -210,7 +210,8 @@ public enum CodeEnum { CANNOT_DELETE_PM(170,"无法删除项目经理",true), LABEL_TOO_LONG(171,"标签长度过长,请不要超过六个字",true), WBS_PROJECT_NAME_REPEAT(172,"项目名称不能重复",true), - Deliver_REPEAT(173,"交付物已存在",true), + DELIVER_REPEAT(173,"交付物已存在",true), + PARENT_PROJECT_NOT_MATCHING(174,"父任务与项目不匹配",true), ;