| | |
| | | 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; |
| | |
| | | List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); |
| | | for (OaApprovalApplications approvalApplication : approvalApplications) { |
| | | ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); |
| | | approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); |
| | | approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); |
| | | approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); |
| | | switch (approvalTodoVO.getApprovalCategory()){ |
| | | case 1: |
| | |
| | | } |
| | | 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()); |
| | |
| | | case 5: |
| | | OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationPurchase!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle()); |
| | | |
| | | approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount()); |
| | | } |
| | | break; |
| | | case 6: |
| | | OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationStorage!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle()); |
| | | |
| | | approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType()); |
| | | } |
| | | break; |
| | | case 7: |
| | | StringBuilder temp = new StringBuilder(); |
| | | OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAsset!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle()); |
| | | } |
| | | List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetItems!=null){ |
| | | for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) { |
| | |
| | | case 8: |
| | | OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetOut!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle()); |
| | | |
| | | approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime()); |
| | | } |
| | | break; |
| | | case 9: |
| | | OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetBack!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle()); |
| | | |
| | | approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate()); |
| | | } |
| | | break; |
| | | case 10: |
| | | OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationDispose!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle()); |
| | | |
| | | approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType()); |
| | | } |
| | | break; |
| | | case 11: |
| | | OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationChange!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle()); |
| | | |
| | | Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId(); |
| | | TDept tDept = deptMap.get(ownershipDeptId); |
| | | if (tDept!=null){ |
| | |
| | | case 12: |
| | | OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationReimbursement!=null){ |
| | | approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount()); |
| | | } |
| | | break; |
| | | case 13: |
| | | OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationMoney!=null){ |
| | | approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount()); |
| | | approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription()); |
| | | |
| | |
| | | case 15: |
| | | OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationPayment!=null){ |
| | | // todo 当前阶段没有项目id 后续完善 |
| | | approvalTodoVO.setProjectName("项目名称"); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount()); |
| | | approvalTodoVO.setDescription(approvalApplication.getApplicationReason()); |
| | | |
| | |
| | | case 17: |
| | | OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAdvertisement!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); |
| | | } |
| | |
| | | List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); |
| | | for (OaApprovalApplications approvalApplication : approvalApplications) { |
| | | ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); |
| | | approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus()); |
| | | approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason()); |
| | | approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); |
| | | switch (approvalTodoVO.getApprovalCategory()){ |
| | | case 1: |
| | |
| | | } |
| | | 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()); |
| | |
| | | case 5: |
| | | OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationPurchase!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle()); |
| | | |
| | | approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount()); |
| | | } |
| | | break; |
| | | case 6: |
| | | OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationStorage!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle()); |
| | | |
| | | approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType()); |
| | | } |
| | | break; |
| | | case 7: |
| | | StringBuilder temp = new StringBuilder(); |
| | | OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAsset!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle()); |
| | | } |
| | | List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetItems!=null){ |
| | | for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) { |
| | |
| | | case 8: |
| | | OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetOut!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle()); |
| | | |
| | | approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime()); |
| | | } |
| | | break; |
| | | case 9: |
| | | OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAssetBack!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle()); |
| | | |
| | | approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate()); |
| | | } |
| | | break; |
| | | case 10: |
| | | OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationDispose!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle()); |
| | | |
| | | approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType()); |
| | | } |
| | | break; |
| | | case 11: |
| | | OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationChange!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle()); |
| | | |
| | | Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId(); |
| | | TDept tDept = deptMap.get(ownershipDeptId); |
| | | if (tDept!=null){ |
| | |
| | | case 12: |
| | | OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationReimbursement!=null){ |
| | | approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount()); |
| | | } |
| | | break; |
| | | case 13: |
| | | OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationMoney!=null){ |
| | | approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount()); |
| | | approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription()); |
| | | |
| | |
| | | case 15: |
| | | OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationPayment!=null){ |
| | | // todo 当前阶段没有项目id 后续完善 |
| | | approvalTodoVO.setProjectName("项目名称"); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount()); |
| | | approvalTodoVO.setDescription(approvalApplication.getApplicationReason()); |
| | | |
| | |
| | | case 17: |
| | | OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); |
| | | if (oaApprovalApplicationAdvertisement!=null){ |
| | | approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle()); |
| | | approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); |
| | | approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); |
| | | } |
| | |
| | | @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "通用审批接口") |
| | | @PostMapping(value = "/audit") |
| | | @Transactional |
| | | public R addLeave(@RequestBody AuditDTO dto) { |
| | | |
| | | OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId()); |
| | |
| | | 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) { |
| | | // 判断当前是否处于最后一个节点 |
| | |
| | | List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); |
| | | List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list(); |
| | | switch (approval.getApprovalCategory()) { |
| | | case 9: |
| | | // 借用归还资产条数 |
| | | List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()) |
| | | .list(); |
| | | // 借用资产条数 |
| | | OaApprovalApplicationAsset borrowApplications = approvalApplicationAssetService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) |
| | | .last("limit 1").one(); |
| | | List<OaApprovalApplicationAssetItem> borrow = approvalApplicationAssetItemService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, borrowApplications.getId()) |
| | | .list(); |
| | | if (back.size()==borrow.size()){ |
| | | borrowApplications.setReturnStatus(2); |
| | | }else if (!back.isEmpty()){ |
| | | borrowApplications.setReturnStatus(1); |
| | | }else{ |
| | | borrowApplications.setReturnStatus(0); |
| | | } |
| | | approvalApplicationAssetService.updateById(borrowApplications); |
| | | case 10: |
| | | assetMains.forEach(assetMain -> { |
| | | assetMain.setDisposed(1); |
| | |
| | | assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); |
| | | } |
| | | } else { |
| | | log.info("不为最后一个审批节点"); |
| | | // 生成下一个节点的待办事项 |
| | | for (int i = 0; i < approvalFlowNodes.size(); i++) { |
| | | if (approvalApplications.getCurrentFlowNodeId() |
| | | .equals(approvalFlowNodes.get(i).getId())) { |
| | | if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(i).getId())) { |
| | | log.info("匹配到审批流程,进入下一节点,当前节点id:{}", approvalFlowNodes.get(i)); |
| | | // 申请单审批流程修改为下一节点 |
| | | approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i + 1).getId()); |
| | | OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId()); |
| | | approvalApplicationsService.updateById(approvalApplications); |
| | | OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodes.get(i + 1); |
| | | approvalTodoService.createApprovalTodos(approvalApplications.getId(), |
| | | approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId()); |
| | | break; |
| | | } |
| | | } |
| | | } |