| | |
| | | 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> |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | } |
| | | |