From 586af9fe0d66df50a2d84c5ae51fc991c1f4a058 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 28 Apr 2021 19:59:46 +0800 Subject: [PATCH] 20210428v1.9 --- .../tall/service/ProTaskDetailService.java | 72 +++++++++++-------- 1 file changed, 42 insertions(+), 30 deletions(-) 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 c62cb755..768c21ed 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -1397,10 +1397,10 @@ public class ProTaskDetailService implements IProTaskDetailService { if (ObjectUtil.isNotNull(updateTaskInfo.getMilestone())) { taskDetail.setMilestone(updateTaskInfo.getMilestone()); } - //父任务id - if(null != updateTaskInfo.getParentId()){ - taskDetail.setParentId(updateTaskInfo.getParentId()); - } +// //父任务id +// if(null != updateTaskInfo.getParentId()){ +// taskDetail.setParentId(updateTaskInfo.getParentId()); +// } //时间 if (ObjectUtil.isNotNull(updateTaskInfo.getBeginTime()) || ObjectUtil.isNotNull(updateTaskInfo.getEndTime()) || @@ -1494,36 +1494,48 @@ 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()); + } + } //修改数据 taskDetailDao.updateByPrimaryKeySelective(taskDetail); //修改提醒信息