qiangdanxitong/backend/src/main/java/com/designhub/controller/TaskApprovalController.java

95 lines
3.4 KiB
Java

package com.designhub.controller;
import com.designhub.common.Result;
import com.designhub.dto.TaskApprovalDTO;
import com.designhub.entity.Task;
import com.designhub.service.TaskApprovalService;
import com.designhub.util.JwtUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 任务审核控制器
*/
@Tag(name = "任务审核管理")
@RestController
@RequestMapping("/api/tasks")
@RequiredArgsConstructor
public class TaskApprovalController {
private final TaskApprovalService taskApprovalService;
private final JwtUtil jwtUtil;
@Operation(summary = "需求部门审核通过")
@PostMapping("/{id}/approve-demand")
public Result<Void> approveDemandLevel(
@PathVariable Long id,
@RequestBody TaskApprovalDTO dto,
@RequestHeader("Authorization") String authHeader
) {
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long approverId = jwtUtil.getUserIdFromToken(token);
taskApprovalService.approveDemandLevel(id, approverId, dto);
return Result.success();
}
@Operation(summary = "需求部门驳回")
@PostMapping("/{id}/reject-demand")
public Result<Void> rejectByDemandLeader(
@PathVariable Long id,
@RequestBody Map<String, String> params,
@RequestHeader("Authorization") String authHeader
) {
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long approverId = jwtUtil.getUserIdFromToken(token);
String reason = params.getOrDefault("reason", "");
taskApprovalService.rejectByDemandLeader(id, approverId, reason);
return Result.success();
}
@Operation(summary = "接单部门审核通过")
@PostMapping("/{id}/approve-receiving")
public Result<Void> approveReceivingLevel(
@PathVariable Long id,
@RequestBody TaskApprovalDTO dto,
@RequestHeader("Authorization") String authHeader
) {
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long approverId = jwtUtil.getUserIdFromToken(token);
// 从dto中获取指定的接收人ID
taskApprovalService.approveReceivingLevel(id, approverId, dto, dto.getAssignedReceiverId());
return Result.success();
}
@Operation(summary = "接单部门驳回")
@PostMapping("/{id}/reject-receiving")
public Result<Void> rejectByReceivingLeader(
@PathVariable Long id,
@RequestBody Map<String, String> params,
@RequestHeader("Authorization") String authHeader
) {
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long approverId = jwtUtil.getUserIdFromToken(token);
String reason = params.getOrDefault("reason", "");
taskApprovalService.rejectByReceivingLeader(id, approverId, reason);
return Result.success();
}
@Operation(summary = "获取待审核任务列表")
@GetMapping("/pending-approval")
public Result<List<Task>> getPendingApprovalTasks(
@RequestHeader("Authorization") String authHeader
) {
String token = jwtUtil.extractTokenFromHeader(authHeader);
Long userId = jwtUtil.getUserIdFromToken(token);
List<Task> tasks = taskApprovalService.getPendingApprovalTasks(userId);
return Result.success(tasks);
}
}