diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java index 04fe6dca..48fd2614 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java @@ -227,6 +227,8 @@ public class TaskDto { private List taskRemindList; @ApiModelProperty("父任务id") private Long parentId; + @ApiModelProperty("所属项目id") + private Long projectId; } @Data @ApiModel("修改任务时修改交付物名称") 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 8e23ed73..b05f455b 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -30,6 +30,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -1332,9 +1333,10 @@ public class ProTaskDetailService implements IProTaskDetailService { if (ObjectUtil.isNotNull(taskSubTime)) { taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId()); } else { - taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); + taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情 } if (ObjectUtil.isNotNull(taskDetail)) { + SysProject project = sysProjectDao.selectByPrimaryKey(taskDetail.getProjectId()); if (ObjectUtil.isNotNull(project)) { //查找权限 @@ -1490,6 +1492,35 @@ 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); + } + } + //把这个任务当作父任务,如果原来任务下的父任务有值 设置为0,修改项目信息 + //taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情 + if(ObjectUtil.isNotNull(taskDetail.getParentId())){ + taskDetail.setParentId(0L); + taskDetailDao.updateByPrimaryKeySelective(taskDetail); + } + taskDetail.setId(updateTaskInfo.getId()); + taskDetail.setProjectId(updateTaskInfo.getProjectId()); + taskDetailDao.updateByPrimaryKeySelective(taskDetail); + } + } //修改数据 taskDetailDao.updateByPrimaryKeySelective(taskDetail); @@ -1516,6 +1547,7 @@ public class ProTaskDetailService implements IProTaskDetailService { //返回的任务详细信息 Long subTimeId = taskDeliverService.isTaskOrSubTime(taskDetail.getId()); normalTask = getTaskInfoByTaskId(currentUserId, project.getId(), subTimeId, null); + } else { throw new BaseException(CodeEnum.NOT_POWER); }