From bdd967acce69d2420d9866789dfcee42c7e77023 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 19 九月 2025 14:10:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
index 78be207..4440d2e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java
@@ -12,10 +12,26 @@
 import com.ruoyi.system.emums.ApprovalFlowNodeEnum;
 import com.ruoyi.system.emums.ApprovalTypeEnum;
 import com.ruoyi.system.model.*;
-import com.ruoyi.system.service.*;
+import com.ruoyi.system.model.OaApprovalApplications;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService;
+import com.ruoyi.system.service.OaApprovalApplicationAttendanceService;
+import com.ruoyi.system.service.OaApprovalApplicationContactService;
+import com.ruoyi.system.service.OaApprovalApplicationContractService;
+import com.ruoyi.system.service.OaApprovalApplicationMoneyService;
+import com.ruoyi.system.service.OaApprovalApplicationPaymentService;
+import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService;
+import com.ruoyi.system.service.OaApprovalApplicationReimbursementService;
+import com.ruoyi.system.service.OaApprovalApplicationsService;
+import com.ruoyi.system.service.OaApprovalFlowNodeService;
+import com.ruoyi.system.service.OaApprovalService;
+import com.ruoyi.system.service.OaApprovalTodoService;
+import com.ruoyi.system.service.TDeptService;
 import com.ruoyi.system.utils.UUIDUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,6 +47,8 @@
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
+import com.ruoyi.system.emums.ApprovalStatusEnum;
+import com.ruoyi.common.exception.ServiceException;
 
 /**
  * <p>
@@ -561,5 +579,23 @@
                 Integer.valueOf(sysUser.getDeptId()));
         return R.ok();
     }
+
+    @Log(title = "审批-撤回通用审批单", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "撤回审批单:仅更新状态为已撤回")
+    @PutMapping(value = "/withdraw/{id}")
+    public R withdraw(@PathVariable Integer id) {
+        OaApprovalApplications current = approvalApplicationsService.getById(id);
+        if (current == null) {
+            throw new ServiceException("审批单不存在");
+        }
+        if (!ApprovalStatusEnum.PENDING.getCode().equals(current.getApprovalStatus())) {
+            throw new ServiceException("仅待审批状态可撤回");
+        }
+        OaApprovalApplications update = new OaApprovalApplications();
+        update.setId(id);
+        update.setApprovalStatus(ApprovalStatusEnum.CANCELED.getCode());
+        approvalApplicationsService.updateById(update);
+        return R.ok();
+    }
 }
 

--
Gitblit v1.7.1