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/OaApprovalFlowAuditController.java |  128 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
index 3b25cff..f3df0be 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
@@ -1,8 +1,26 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.dto.AddLeaveDTO;
+import com.ruoyi.system.dto.AuditDTO;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.service.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -14,7 +32,117 @@
  */
 @RestController
 @RequestMapping("/oa-approval-flow-audit")
+@Api(tags = "通用审批接口")
 public class OaApprovalFlowAuditController {
+    @Resource
+    private OaApprovalTodoService approvalTodoService;
+    @Resource
+    private OaApprovalFlowAuditService approvalFlowAuditService;
+    @Resource
+    private OaApprovalApplicationStorageService approvalApplicationStorageService;
+    @Resource
+    private OaApprovalApplicationPurchaseService approvalApplicationPurchaseService;
+    @Resource
+    private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private OaApprovalService approvalService;
 
+    @Resource
+    private OaApprovalApplicationsService approvalApplicationsService;
+    @Resource
+    private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService;
+    @Resource
+    private OaApprovalApplicationContactService approvalApplicationContactService;
+    @Resource
+    private OaApprovalApplicationPaymentService approvalApplicationPaymentService;
+    @Resource
+    private OaApprovalApplicationContractService approvalApplicationContractService;
+    @Resource
+    private OaApprovalApplicationMoneyService approvalApplicationMoneyService;
+    @Resource
+    private AssetMainService assetMainService;
+    @Resource
+    private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService;
+    @Resource
+    private OaApprovalApplicationReimbursementItemService approvalApplicationReimbursementItemService;
+    @Resource
+    private OaApprovalFlowNodeService approvalFlowNodeService;
+    @Resource
+    private OaApprovalApplicationAssetService approvalApplicationAssetService;
+    @Resource
+    private ISysUserService sysUserService;
+    @Resource
+    private OaApprovalApplicationDisposeService approvalApplicationDisposeService;
+    @Resource
+    private OaApprovalApplicationChangeService approvalApplicationChangeService;
+    @Resource
+    private OaApprovalApplicationAttendanceService approvalApplicationAttendanceService;
+    @Resource
+    private TDeptService deptService;
+    @Resource
+    private OaApprovalTodoService oaApprovalTodoService;
+    @Resource
+    private OaApprovalFlowService approvalFlowService;
+
+
+
+    @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "通用审批接口")
+    @PostMapping(value = "/audit")
+    public R addLeave(@RequestBody AuditDTO dto) {
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId());
+        Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId();
+        Long userId = tokenService.getLoginUser().getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+
+        OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId)
+                .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId)
+                .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+                .last("limit 1").one();
+        approvalTodo.setStatus(1);
+        approvalTodo.setHandleTime(LocalDateTime.now());
+        approvalTodoService.updateById(approvalTodo);
+
+        OaApproval approval = approvalService.getById(approvalApplications.getApprovalId());
+        if (dto.getApprovalStatus()==0){
+            // 中断审批流程
+            approvalApplications.setApprovalStatus(3);
+            approvalApplicationsService.updateById(approvalApplications);
+            // 删除除当前审批人该申请单的未处理的所有待办
+            approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
+                    .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+                    .eq(OaApprovalTodo::getStatus,0));
+        }
+        OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId);
+        OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit();
+        approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId());
+        approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId());
+        approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName());
+        approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder());
+        approvalFlowAudit.setUserId(userId.intValue());
+        approvalFlowAudit.setUserName(sysUser.getUserName());
+        approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0);
+        approvalFlowAudit.setApprovalTime(LocalDateTime.now());
+        approvalFlowAudit.setReason(dto.getReason());
+        approvalFlowAuditService.save(approvalFlowAudit);
+        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId())
+                .orderByDesc(OaApprovalFlowNode::getSortOrder).list();
+        if (dto.getApprovalStatus()==1){
+            for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
+                // 判断当前是否处于最后一个节点
+                if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNode.getId())){
+                    // 审批通过 审批流程结束
+                    approvalApplications.setApprovalStatus(2);
+                    approvalApplicationsService.updateById(approvalApplications);
+                    if (approval.getApprovalCategory()==1)
+                    break;
+                }
+            }
+        }
+
+        return R.ok();
+    }
 }
 

--
Gitblit v1.7.1