| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/oa-approval-flow-audit") |
| | | @Api(tags = "我审批的/我发起的/通用审批接口") |
| | | @Api(tags = "我审批的-我发起的-通用审批接口") |
| | | @Slf4j |
| | | public class OaApprovalFlowAuditController { |
| | | @Resource |
| | | private OaApprovalTodoService approvalTodoService; |
| | |
| | | } |
| | | SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue()); |
| | | if (sysUser!=null){ |
| | | approvalTodoVO.setApplyUserName(sysUser.getUserName()); |
| | | approvalTodoVO.setApplyUserName(sysUser.getNickName()); |
| | | TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId())); |
| | | if (tDept!=null){ |
| | | approvalTodoVO.setApplyDeptName(tDept.getDeptName()); |
| | |
| | | } |
| | | SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue()); |
| | | if (sysUser!=null){ |
| | | approvalTodoVO.setApplyUserName(sysUser.getUserName()); |
| | | approvalTodoVO.setApplyUserName(sysUser.getNickName()); |
| | | TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId())); |
| | | if (tDept!=null){ |
| | | approvalTodoVO.setApplyDeptName(tDept.getDeptName()); |
| | |
| | | res.setRecords(resList); |
| | | return R.ok(res); |
| | | } |
| | | OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId()); |
| | | if (approvalFlowAudit!=null){ |
| | | approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName()); |
| | | approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName()); |
| | | approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl()); |
| | | approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()); |
| | | }else{ |
| | | approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName()); |
| | | } |
| | | approvalFlowNodeListVOS.add(approvalFlowNodeVO); |
| | | } |
| | | return approvalFlowNodeListVOS; |
| | | } |
| | | |
| | | |
| | | |
| | | @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "通用审批接口") |
| | | @PostMapping(value = "/audit") |
| | | @Transactional |
| | | public R addLeave(@RequestBody AuditDTO dto) { |
| | | |
| | | OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId()); |
| | |
| | | approvalTodoService.updateById(approvalTodo); |
| | | |
| | | OaApproval approval = approvalService.getById(approvalApplications.getApprovalId()); |
| | | if (dto.getApprovalStatus()==0){ |
| | | if (dto.getApprovalStatus() == 0) { |
| | | // 中断审批流程 |
| | | approvalApplications.setApprovalStatus(3); |
| | | approvalApplicationsService.updateById(approvalApplications); |
| | | // 删除除当前审批人该申请单的未处理的所有待办 |
| | | approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>() |
| | | .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId()) |
| | | .eq(OaApprovalTodo::getStatus,0)); |
| | | .eq(OaApprovalTodo::getStatus, 0)); |
| | | } |
| | | OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId); |
| | | OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit(); |
| | |
| | | approvalFlowAudit.setReason(dto.getReason()); |
| | | approvalFlowAuditService.save(approvalFlowAudit); |
| | | List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId()) |
| | | .eq(OaApprovalFlowNode::getStatus,1) |
| | | .orderByAsc(OaApprovalFlowNode::getSortOrder).list(); |
| | | if (dto.getApprovalStatus()==1){ |
| | | if (dto.getApprovalStatus() == 1) { |
| | | // 判断当前是否处于最后一个节点 |
| | | if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){ |
| | | if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size() - 1).getId())) { |
| | | // 审批通过 审批流程结束 |
| | | approvalApplications.setApprovalStatus(2); |
| | | approvalApplicationsService.updateById(approvalApplications); |
| | | if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7 |
| | | ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){ |
| | | if (approval.getApprovalCategory() == 10 || approval.getApprovalCategory() == 7 |
| | | || approval.getApprovalCategory() == 8 || approval.getApprovalCategory() == 9) { |
| | | List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list(); |
| | | List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); |
| | | List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list(); |
| | | switch (approval.getApprovalCategory()){ |
| | | switch (approval.getApprovalCategory()) { |
| | | case 10: |
| | | assetMains.forEach(assetMain -> { |
| | | assetMain.setDisposed(1); |
| | |
| | | if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) { |
| | | assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); |
| | | } |
| | | }else{ |
| | | } else { |
| | | log.info("不为最后一个审批节点"); |
| | | // 生成下一个节点的待办事项 |
| | | for (int i = 0; i < approvalFlowNodes.size(); i++) { |
| | | if(approvalApplications.getCurrentFlowNodeId() |
| | | .equals(approvalFlowNodes.get(i).getId())){ |
| | | approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId()); |
| | | OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId()); |
| | | if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(i).getId())) { |
| | | log.info("匹配到审批流程,进入下一节点,当前节点id:{}", approvalFlowNodes.get(i)); |
| | | // 申请单审批流程修改为下一节点 |
| | | approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i + 1).getId()); |
| | | approvalApplicationsService.updateById(approvalApplications); |
| | | OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodes.get(i + 1); |
| | | approvalTodoService.createApprovalTodos(approvalApplications.getId(), |
| | | approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId()); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | return R.ok(); |
| | | |
| | | } |
| | | } |
| | | |