完成了Task的一部分功能
parent
f7a420ca73
commit
43c1e5fa91
|
@ -3,6 +3,7 @@ package cn.edu.hfut.rmdjzz.projectmanagement.controller;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService;
|
import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList;
|
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseList;
|
||||||
|
import cn.edu.hfut.rmdjzz.projectmanagement.utils.http.ResponseMap;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -22,14 +23,28 @@ public class TaskController {
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@GetMapping("/{projectId}")
|
@GetMapping("/{projectId}")
|
||||||
public ResponseList getTaskList(@RequestHeader("Token") String token,@PathVariable Integer projectId){
|
public ResponseList getTaskList(@RequestHeader("Token") String token,@PathVariable Integer projectId){
|
||||||
List<Task> result = taskService.getTaskList(token,projectId,0);
|
List<Task> result = taskService.getTaskList(token,projectId,0L);
|
||||||
return ResponseList.ofSuccess("查询成功",result);
|
return ResponseList.ofSuccess("查询成功",result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@GetMapping("/getSubTask")
|
@GetMapping("/getSubTask")
|
||||||
public ResponseList getSubTaskList(@RequestHeader("Token") String token,@RequestParam("projectId") Integer projectId,@RequestParam("fatherId") Integer fatherId){
|
public ResponseList getSubTaskList(@RequestHeader("Token") String token,@RequestParam("projectId") Integer projectId,@RequestParam("fatherId") Long fatherId){
|
||||||
List<Task> result = taskService.getTaskList(token,projectId,fatherId);
|
List<Task> result = taskService.getTaskList(token,projectId,fatherId);
|
||||||
return ResponseList.ofSuccess("查询成功",result);
|
return ResponseList.ofSuccess("查询成功",result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
@GetMapping("/getMyTasks")
|
||||||
|
public ResponseList getMyTasks(@RequestHeader("Token") String token,@RequestParam("projectId") Integer projectId){
|
||||||
|
List<Task> result = taskService.getMyTaskList(token,projectId);
|
||||||
|
return ResponseList.ofSuccess("查询成功",result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
@PostMapping("/createTask")
|
||||||
|
public ResponseMap createTask(@RequestHeader("Token") String token, @RequestBody Task task){
|
||||||
|
task=taskService.insertTask(token,task);
|
||||||
|
return ResponseMap.ofSuccess("新建成功",task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,4 +30,12 @@ public class Task {
|
||||||
@TableField("is_deleted")
|
@TableField("is_deleted")
|
||||||
@TableLogic
|
@TableLogic
|
||||||
private Boolean deleted;
|
private Boolean deleted;
|
||||||
|
|
||||||
|
public Boolean checkInsert(){
|
||||||
|
if(this.getTaskName()==null||this.getTaskName().length()<=0||this.getTaskName().length()>=100)
|
||||||
|
return false;
|
||||||
|
if(this.getTaskEndTime().isBefore(this.getTaskStartTime()))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,10 @@ import java.util.List;
|
||||||
* created at 2022/7/4 14:49
|
* created at 2022/7/4 14:49
|
||||||
*/
|
*/
|
||||||
public interface ITaskService extends IService<Task> {
|
public interface ITaskService extends IService<Task> {
|
||||||
List<Task> getTaskList(String token,Integer projectId,Integer fatherId) throws BadRequestException;
|
List<Task> getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException;
|
||||||
Boolean checkHolder(Integer staffId,Integer taskId);
|
Boolean checkHolder(Integer staffId,Long taskId);
|
||||||
|
Boolean checkHolder(String token,Long taskId);
|
||||||
|
List<Task> getMyTaskList(String token,Integer projectId) throws BadRequestException;
|
||||||
|
Boolean canBeDone(Long taskId);
|
||||||
|
Task insertTask(String token,Task task) throws BadRequestException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,8 @@ public class ProjectGroupServiceImpl extends ServiceImpl<ProjectGroupMapper, Pro
|
||||||
ProjectGroup projectGroup=baseMapper.selectOne(Wrappers.<ProjectGroup>lambdaQuery().eq(ProjectGroup::getStaffId, staffId).eq(ProjectGroup::getProjectId, projectId));
|
ProjectGroup projectGroup=baseMapper.selectOne(Wrappers.<ProjectGroup>lambdaQuery().eq(ProjectGroup::getStaffId, staffId).eq(ProjectGroup::getProjectId, projectId));
|
||||||
if(projectGroup == null)
|
if(projectGroup == null)
|
||||||
return 0;
|
return 0;
|
||||||
|
else if(projectGroup.getProjectStaffPosition().equals("负责人"))
|
||||||
|
return 3;
|
||||||
else if(projectGroup.getProjectStaffPosition().length()>0)
|
else if(projectGroup.getProjectStaffPosition().length()>0)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
|
|
|
@ -4,15 +4,18 @@ import cn.edu.hfut.rmdjzz.projectmanagement.entity.ProjectGroup;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Staff;
|
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Staff;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
import cn.edu.hfut.rmdjzz.projectmanagement.entity.Task;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
import cn.edu.hfut.rmdjzz.projectmanagement.exception.BadRequestException;
|
||||||
|
import cn.edu.hfut.rmdjzz.projectmanagement.exception.TokenException;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.StaffMapper;
|
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.StaffMapper;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.TaskMapper;
|
import cn.edu.hfut.rmdjzz.projectmanagement.mapper.TaskMapper;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.IStaffService;
|
import cn.edu.hfut.rmdjzz.projectmanagement.service.IStaffService;
|
||||||
import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService;
|
import cn.edu.hfut.rmdjzz.projectmanagement.service.ITaskService;
|
||||||
|
import cn.edu.hfut.rmdjzz.projectmanagement.utils.TokenUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
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;
|
||||||
|
@ -24,17 +27,17 @@ import java.util.Objects;
|
||||||
@Service
|
@Service
|
||||||
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements ITaskService {
|
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements ITaskService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectGroupServiceImpl projectGroupServiceImpl;
|
private ProjectGroupServiceImpl projectGroupService;
|
||||||
@Override
|
@Override
|
||||||
public List<Task> getTaskList(String token,Integer projectId,Integer fatherId) throws BadRequestException {
|
public List<Task> getTaskList(String token,Integer projectId,Long fatherId) throws BadRequestException {
|
||||||
if(projectGroupServiceImpl.getUserLevelInGroup(token,projectId)==0||fatherId==null){
|
if(projectGroupService.getUserLevelInGroup(token,projectId)==0||fatherId==null){
|
||||||
throw new BadRequestException("错误的访问参数");
|
throw new BadRequestException("错误的访问参数");
|
||||||
}
|
}
|
||||||
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskProjectId,projectId).eq(Task::getTaskFatherId,fatherId).eq(Task::getDeleted,false));
|
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskProjectId,projectId).eq(Task::getTaskFatherId,fatherId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean checkHolder(Integer staffId,Integer taskId){
|
public Boolean checkHolder(Integer staffId,Long taskId){
|
||||||
try{
|
try{
|
||||||
Task task=baseMapper.selectOne(Wrappers.<Task>lambdaQuery().eq(Task::getTaskId,taskId));
|
Task task=baseMapper.selectOne(Wrappers.<Task>lambdaQuery().eq(Task::getTaskId,taskId));
|
||||||
if(task==null||staffId<=0)
|
if(task==null||staffId<=0)
|
||||||
|
@ -49,4 +52,77 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Boolean checkHolder(String token,Long taskId){
|
||||||
|
try{
|
||||||
|
Integer staffId=TokenUtils.getStaffId(token);
|
||||||
|
Task task=baseMapper.selectOne(Wrappers.<Task>lambdaQuery().eq(Task::getTaskId,taskId));
|
||||||
|
if(task==null||staffId==null||staffId<=0)
|
||||||
|
return false;
|
||||||
|
while(task.getTaskFatherId()!=0){
|
||||||
|
if(Objects.equals(task.getTaskHolderId(), staffId))
|
||||||
|
return true;
|
||||||
|
task=baseMapper.selectOne(Wrappers.<Task>lambdaQuery().eq(Task::getTaskId,task.getTaskFatherId()));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}catch(Exception e){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public List<Task> getMyTaskList(String token,Integer projectId) throws BadRequestException{
|
||||||
|
if(projectGroupService.getUserLevelInGroup(token,projectId)==0){
|
||||||
|
throw new BadRequestException("错误的访问参数");
|
||||||
|
}
|
||||||
|
Integer staffId = 0;
|
||||||
|
try{
|
||||||
|
staffId= TokenUtils.getStaffId(token);
|
||||||
|
}catch(TokenException e){
|
||||||
|
//impossible
|
||||||
|
}
|
||||||
|
return baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskHolderId,staffId).eq(Task::getTaskProjectId,projectId));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public Boolean canBeDone(Long taskId){
|
||||||
|
try{
|
||||||
|
Task task=baseMapper.selectOne(Wrappers.<Task>lambdaQuery().eq(Task::getTaskId,taskId));
|
||||||
|
if(task==null||!"打开".equals(task.getTaskType())||!"进行中".equals(task.getTaskType()))
|
||||||
|
return false;
|
||||||
|
List<Task> childTask=baseMapper.selectList(Wrappers.<Task>lambdaQuery().eq(Task::getTaskFatherId,task.getTaskId()));
|
||||||
|
if(childTask==null||childTask.isEmpty())
|
||||||
|
return true;
|
||||||
|
for(Task cTask:childTask){
|
||||||
|
if(cTask.getTaskType().equals("打开")||cTask.getTaskType().equals("进行中"))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}catch(Exception e){//需要调整
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public Task insertTask(String token,Task task) throws BadRequestException{
|
||||||
|
task.setTaskId(null);
|
||||||
|
Integer userLevel=projectGroupService.getUserLevelInGroup(token,task.getTaskProjectId());
|
||||||
|
if(userLevel==0||(userLevel==1&&task.getTaskFatherId()==0)){
|
||||||
|
throw new BadRequestException("错误的操作");
|
||||||
|
}
|
||||||
|
if(task.checkInsert()){
|
||||||
|
throw new BadRequestException("工作项参数错误");
|
||||||
|
}
|
||||||
|
if(checkHolder(token,task.getTaskFatherId())){
|
||||||
|
throw new BadRequestException("非法的父级参数");
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
task.setTaskBuiltTime(LocalDateTime.now());
|
||||||
|
task.setTaskType("打开");
|
||||||
|
task.setTaskCloseTime(null);
|
||||||
|
if(baseMapper.insert(task)==0){
|
||||||
|
throw new BadRequestException("新建失败");
|
||||||
|
}
|
||||||
|
}catch(Exception e){
|
||||||
|
throw new BadRequestException("新建失败");
|
||||||
|
}
|
||||||
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue