Browse Source

修改创建病例时分解任务时间

tall3
ma 4 years ago
parent
commit
d3a05b6622
  1. 32
      common/src/main/java/com/ccsens/common/service/ProjectService.java

32
common/src/main/java/com/ccsens/common/service/ProjectService.java

@ -160,9 +160,10 @@ public class ProjectService implements IProjectService{
labelBusinessDao.insertAllBusinessLabel(newLabelList); labelBusinessDao.insertAllBusinessLabel(newLabelList);
} }
//复制角色相关 //复制角色与任务相关
copyRole(oldProject.getId(),newProjectDetail.getId(),userId); Long timeDifference = currentTime - oldProject.getPlanStartTime();
//复制任务相关 copyRole(oldProject.getId(),newProjectDetail.getId(),userId,timeDifference);
copyProject.setId(newProjectDetail.getId()); copyProject.setId(newProjectDetail.getId());
return copyProject; return copyProject;
} }
@ -173,7 +174,7 @@ public class ProjectService implements IProjectService{
* @param newProjectId 新项目id * @param newProjectId 新项目id
* @param userId 用户id * @param userId 用户id
*/ */
private void copyRole(Long oldProjectId, Long newProjectId, Long userId) { private void copyRole(Long oldProjectId, Long newProjectId, Long userId,Long timeDifference) {
List<ProRole> oldRoleList = roleDao.findRoleByProjectId(oldProjectId); List<ProRole> oldRoleList = roleDao.findRoleByProjectId(oldProjectId);
Map<Long,Long> oldAndNewRoleId = new HashMap<>(); Map<Long,Long> oldAndNewRoleId = new HashMap<>();
if (CollectionUtil.isNotEmpty(oldRoleList)){ if (CollectionUtil.isNotEmpty(oldRoleList)){
@ -219,7 +220,7 @@ public class ProjectService implements IProjectService{
labelBusinessDao.insertAllBusinessLabel(newRoleLabelList); labelBusinessDao.insertAllBusinessLabel(newRoleLabelList);
} }
//复制任务相关 //复制任务相关
copyTask(oldProjectId, newProjectId, userId,oldAndNewRoleId); copyTask(oldProjectId, newProjectId, userId,oldAndNewRoleId,timeDifference);
} }
} }
@ -229,7 +230,7 @@ public class ProjectService implements IProjectService{
* @param userId 用户id * @param userId 用户id
* @param oldAndNewRoleId 旧角色id与新角色id * @param oldAndNewRoleId 旧角色id与新角色id
*/ */
private void copyTask(Long oldProjectId, Long newProjectId, Long userId, Map<Long, Long> oldAndNewRoleId) { private void copyTask(Long oldProjectId, Long newProjectId, Long userId, Map<Long, Long> oldAndNewRoleId,Long timeDifference) {
List<ProParentTask> newParentTaskList = new ArrayList<>(); List<ProParentTask> newParentTaskList = new ArrayList<>();
//查找项目下的一级任务 //查找项目下的一级任务
List<CTaskVo.TaskDetail> oldFirstTaskDetailList = parentTaskDao.findTaskByParentId(oldProjectId); List<CTaskVo.TaskDetail> oldFirstTaskDetailList = parentTaskDao.findTaskByParentId(oldProjectId);
@ -241,13 +242,13 @@ public class ProjectService implements IProjectService{
List<ProTaskSub> newTaskSubList = new ArrayList<>(); List<ProTaskSub> newTaskSubList = new ArrayList<>();
for (CTaskVo.TaskDetail oldFirstTaskDetail : oldFirstTaskDetailList) { for (CTaskVo.TaskDetail oldFirstTaskDetail : oldFirstTaskDetailList) {
//循环处理一级任务及一级任务的分解任务 //循环处理一级任务及一级任务的分解任务
taskLoop(newTaskDetailList,newTaskSubList,oldAndNewTaskDetailId,oldFirstTaskDetail,oldProjectId,newParentTaskList); taskLoop(newTaskDetailList,newTaskSubList,oldAndNewTaskDetailId,oldFirstTaskDetail,oldProjectId,newParentTaskList,timeDifference);
//查询二级任务 //查询二级任务
List<CTaskVo.TaskDetail> oldSecondTaskDetailList = parentTaskDao.findTaskByParentId(oldFirstTaskDetail.getDetailId()); List<CTaskVo.TaskDetail> oldSecondTaskDetailList = parentTaskDao.findTaskByParentId(oldFirstTaskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(oldSecondTaskDetailList)) { if (CollectionUtil.isNotEmpty(oldSecondTaskDetailList)) {
for (CTaskVo.TaskDetail oldSecondTaskDetail : oldSecondTaskDetailList) { for (CTaskVo.TaskDetail oldSecondTaskDetail : oldSecondTaskDetailList) {
//循环处理二级任务及二级任务的分级任务 //循环处理二级任务及二级任务的分级任务
taskLoop(newTaskDetailList,newTaskSubList,oldAndNewTaskDetailId,oldSecondTaskDetail,oldSecondTaskDetail.getParentTaskDetailId(),newParentTaskList); taskLoop(newTaskDetailList,newTaskSubList,oldAndNewTaskDetailId,oldSecondTaskDetail,oldSecondTaskDetail.getParentTaskDetailId(),newParentTaskList,timeDifference);
} }
} }
} }
@ -367,7 +368,7 @@ public class ProjectService implements IProjectService{
} }
private void taskLoop(List<ProTaskDetail> newTaskDetailList, List<ProTaskSub> newTaskSubList, Map<Long,Long> oldAndNewTaskDetailId private void taskLoop(List<ProTaskDetail> newTaskDetailList, List<ProTaskSub> newTaskSubList, Map<Long,Long> oldAndNewTaskDetailId
, CTaskVo.TaskDetail oldTaskDetail, Long parentTaskId, List<ProParentTask> newParentTaskList) { , CTaskVo.TaskDetail oldTaskDetail, Long parentTaskId, List<ProParentTask> newParentTaskList,Long timeDifference) {
ProTaskDetail newTaskDetail = new ProTaskDetail(); ProTaskDetail newTaskDetail = new ProTaskDetail();
newTaskDetail.setId(snowflake.nextId()); newTaskDetail.setId(snowflake.nextId());
newTaskDetail.setName(oldTaskDetail.getName()); newTaskDetail.setName(oldTaskDetail.getName());
@ -389,9 +390,18 @@ public class ProjectService implements IProjectService{
for (ProTaskSub oldTaskSub : oldTaskSubList) { for (ProTaskSub oldTaskSub : oldTaskSubList) {
ProTaskSub newTaskSub = new ProTaskSub(); ProTaskSub newTaskSub = new ProTaskSub();
newTaskSub.setId(snowflake.nextId()); newTaskSub.setId(snowflake.nextId());
newTaskSub.setPlanStartTime(System.currentTimeMillis());
newTaskSub.setPlanDuration(oldTaskSub.getPlanDuration()); newTaskSub.setPlanDuration(oldTaskSub.getPlanDuration());
newTaskSub.setPlanEndTime(System.currentTimeMillis()+oldTaskSub.getPlanDuration()); if (0 != oldTaskSub.getPlanStartTime()){
newTaskSub.setPlanStartTime(oldTaskSub.getPlanStartTime()+timeDifference);
}else{
newTaskSub.setPlanStartTime(oldTaskSub.getPlanStartTime());
}
if (0 != oldTaskSub.getPlanEndTime()) {
newTaskSub.setPlanEndTime(newTaskSub.getPlanStartTime()+oldTaskSub.getPlanDuration());
}else{
newTaskSub.setPlanEndTime(oldTaskSub.getPlanEndTime());
}
newTaskSub.setTaskDetailId(oldAndNewTaskDetailId.get(oldTaskSub.getTaskDetailId())); newTaskSub.setTaskDetailId(oldAndNewTaskDetailId.get(oldTaskSub.getTaskDetailId()));
//将任务详情的分解任务添加到分解任务集合中 //将任务详情的分解任务添加到分解任务集合中
newTaskSubList.add(newTaskSub); newTaskSubList.add(newTaskSub);

Loading…
Cancel
Save