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