package com.webmanage.controller;
|
|
import com.webmanage.common.Result;
|
import com.webmanage.dto.ApprovalActionDTO;
|
import com.webmanage.dto.ApprovalQueryDTO;
|
import com.webmanage.entity.ApprovalRecord;
|
import com.webmanage.service.ApprovalRecordService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.validation.Valid;
|
import javax.validation.constraints.NotNull;
|
import java.util.List;
|
|
/**
|
* 审批管理Controller
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/api/approval")
|
@Api(tags = "审批管理")
|
@Validated
|
public class ApprovalController {
|
|
@Resource
|
private ApprovalRecordService approvalRecordService;
|
|
@PostMapping("/page")
|
@ApiOperation("分页查询审批记录")
|
public Result<Object> getApprovalRecordPage(@Valid @RequestBody ApprovalQueryDTO queryDTO) {
|
try {
|
return Result.success(approvalRecordService.getApprovalRecordPage(queryDTO));
|
} catch (Exception e) {
|
log.error("查询审批记录失败", e);
|
return Result.error("查询审批记录失败:" + e.getMessage());
|
}
|
}
|
|
@PostMapping("/pending/page")
|
@ApiOperation("分页查询待审批订单")
|
public Result<Object> getPendingApprovalPage(@Valid @RequestBody ApprovalQueryDTO queryDTO) {
|
try {
|
return Result.success(approvalRecordService.getPendingApprovalPage(queryDTO));
|
} catch (Exception e) {
|
log.error("查询待审批订单失败", e);
|
return Result.error("查询待审批订单失败:" + e.getMessage());
|
}
|
}
|
|
@GetMapping("/order/{orderId}")
|
@ApiOperation("根据订单ID查询审批记录")
|
public Result<Object> getApprovalRecordsByOrderId(@ApiParam("订单ID") @PathVariable String orderId) {
|
try {
|
List<ApprovalRecord> records = approvalRecordService.getApprovalRecordsByOrderId(orderId);
|
return Result.success(records);
|
} catch (Exception e) {
|
log.error("查询订单审批记录失败", e);
|
return Result.error("查询订单审批记录失败:" + e.getMessage());
|
}
|
}
|
|
@PostMapping("/approve")
|
@ApiOperation("审批订单")
|
public Result<Object> approveOrder(@Valid @RequestBody ApprovalActionDTO actionDTO) {
|
try {
|
boolean result = approvalRecordService.approveOrder(actionDTO);
|
if (result) {
|
return Result.success("审批成功");
|
} else {
|
return Result.error("审批失败");
|
}
|
} catch (Exception e) {
|
log.error("审批订单失败", e);
|
return Result.error("审批订单失败:" + e.getMessage());
|
}
|
}
|
|
@PostMapping("/authorize/{approvalId}")
|
@ApiOperation("授权审批")
|
public Result<Object> authorizeApproval(@ApiParam("审批记录ID") @PathVariable Long approvalId,
|
@ApiParam("授权人ID") @RequestParam @NotNull Long authorizerId,
|
@ApiParam("授权人姓名") @RequestParam @NotNull String authorizerName,
|
@ApiParam("授权意见") @RequestParam String authorizationOpinion) {
|
try {
|
boolean result = approvalRecordService.authorizeApproval(approvalId, authorizerId, authorizerName, authorizationOpinion);
|
if (result) {
|
return Result.success("授权成功");
|
} else {
|
return Result.error("授权失败");
|
}
|
} catch (Exception e) {
|
log.error("授权审批失败", e);
|
return Result.error("授权审批失败:" + e.getMessage());
|
}
|
}
|
|
@GetMapping("/status/{orderId}")
|
@ApiOperation("获取订单当前审批状态")
|
public Result<Object> getOrderCurrentApprovalStatus(@ApiParam("订单ID") @PathVariable String orderId) {
|
try {
|
String status = approvalRecordService.getOrderCurrentApprovalStatus(orderId);
|
return Result.success(status);
|
} catch (Exception e) {
|
log.error("获取订单审批状态失败", e);
|
return Result.error("获取订单审批状态失败:" + e.getMessage());
|
}
|
}
|
}
|