完成任务和子任务的删除和关闭操作(待测试)
parent
43c1e5fa91
commit
d41a0eb83a
|
@ -13,6 +13,9 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface ITaskService extends IService<Task> {
|
public interface ITaskService extends IService<Task> {
|
||||||
List<Task> getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException;
|
List<Task> getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException;
|
||||||
|
List<List<Long>> getTaskAndSubTask(Long taskId);
|
||||||
|
Boolean deleteTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException;
|
||||||
|
Boolean closeTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException;
|
||||||
Boolean checkHolder(Integer staffId,Long taskId);
|
Boolean checkHolder(Integer staffId,Long taskId);
|
||||||
Boolean checkHolder(String token,Long taskId);
|
Boolean checkHolder(String token,Long taskId);
|
||||||
List<Task> getMyTaskList(String token,Integer projectId) throws BadRequestException;
|
List<Task> getMyTaskList(String token,Integer projectId) throws BadRequestException;
|
||||||
|
|
|
@ -19,6 +19,7 @@ import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 张韬
|
* @author 张韬
|
||||||
|
@ -36,6 +37,59 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
||||||
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskProjectId,projectId).eq(Task::getTaskFatherId,fatherId));
|
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskProjectId,projectId).eq(Task::getTaskFatherId,fatherId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<List<Long>> getTaskAndSubTask(Long taskId) {
|
||||||
|
List<List<Long>> resList = new ArrayList<>();
|
||||||
|
List<Long> res = new ArrayList<>();
|
||||||
|
res.add(taskId);
|
||||||
|
resList.add(res);
|
||||||
|
while(true) {
|
||||||
|
List<Task> list = baseMapper.selectList(Wrappers.<Task>lambdaQuery().in(Task::getTaskFatherId, res));
|
||||||
|
if(list == null || list.isEmpty()) break;
|
||||||
|
res = list.stream().map(Task::getTaskId).collect(Collectors.toList());
|
||||||
|
resList.add(res);
|
||||||
|
}
|
||||||
|
return resList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deleteTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException{
|
||||||
|
if(projectGroupService.getUserLevelInGroup(token,projectId)==0) {
|
||||||
|
throw new BadRequestException("错误参数");
|
||||||
|
}
|
||||||
|
if(!checkHolder(token, taskId)) {
|
||||||
|
throw new BadRequestException("错误父级参数");
|
||||||
|
}
|
||||||
|
List<List<Long>> resList = getTaskAndSubTask(taskId);
|
||||||
|
try {
|
||||||
|
for (List<Long> list: resList) {
|
||||||
|
baseMapper.delete(Wrappers.<Task>lambdaQuery().in(Task::getTaskId, list));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean closeTaskAndSubTask(String token, Integer projectId, Long taskId) throws BadRequestException{
|
||||||
|
if(projectGroupService.getUserLevelInGroup(token,projectId)==0) {
|
||||||
|
throw new BadRequestException("错误参数");
|
||||||
|
}
|
||||||
|
if(!checkHolder(token, taskId)) {
|
||||||
|
throw new BadRequestException("错误父级参数");
|
||||||
|
}
|
||||||
|
List<List<Long>> resList = getTaskAndSubTask(taskId);
|
||||||
|
try {
|
||||||
|
for (List<Long> list: resList) {
|
||||||
|
baseMapper.update(null, Wrappers.<Task>lambdaUpdate().in(Task::getTaskId, list).set(Task::getTaskType, "关闭"));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean checkHolder(Integer staffId,Long taskId){
|
public Boolean checkHolder(Integer staffId,Long taskId){
|
||||||
try{
|
try{
|
||||||
|
|
Loading…
Reference in New Issue