From 0e6da184ed0a6d511a17e1ed86a470cda71c0f3b Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 22 九月 2025 16:51:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java | 977 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 963 insertions(+), 14 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 f3df0be..098995e 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 @@ -3,24 +3,33 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.entity.TDept; +import com.ruoyi.common.core.domain.model.LoginUser; 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.emums.ApprovalTypeEnum; import com.ruoyi.system.model.*; +import com.ruoyi.system.query.ApprovalDetailQuery; +import com.ruoyi.system.query.ApprovalTodoListQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.*; 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 io.swagger.annotations.ApiParam; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -42,6 +51,8 @@ private OaApprovalApplicationStorageService approvalApplicationStorageService; @Resource private OaApprovalApplicationPurchaseService approvalApplicationPurchaseService; + @Resource + private OaApprovalApplicationPurchaseItemService approvalApplicationPurchaseItemService; @Resource private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService; @Resource @@ -82,9 +93,913 @@ @Resource private TDeptService deptService; @Resource + private AssetTypeService assetTypeService; + @Resource private OaApprovalTodoService oaApprovalTodoService; @Resource - private OaApprovalFlowService approvalFlowService; + private OaApprovalFlowService approvalFlowService; + + + + @ApiOperation("我审批的") + @PostMapping("/pageList") + public R<PageInfo<ApprovalTodoVO>> pageList(@RequestBody ApprovalTodoListQuery query) { + List<ApprovalTodoVO> resList = new ArrayList<>(); + Long userId = tokenService.getLoginUser().getUserId(); + query.setUserId(userId); + PageInfo<ApprovalTodoVO> res = new PageInfo<>(query.getPageNum(), query.getPageSize()); + + PageInfo<OaApprovalTodo> pageInfo = approvalTodoService.pageListAudit(query); + List<OaApprovalTodo> list = pageInfo.getRecords(); + if (list.isEmpty()){ + return R.ok(new PageInfo<>()); + } + res.setTotal(pageInfo.getTotal()); + List<Integer> applicationIds = list.stream().map(OaApprovalTodo::getApplicationId).collect(Collectors.toList()); + Map<Integer, OaApprovalApplicationReimbursement> approvalApplicationReimbursementMap = approvalApplicationReimbursementService.lambdaQuery() + .in(OaApprovalApplicationReimbursement::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationReimbursement::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationMoney> oaApprovalApplicationMoneyMap = approvalApplicationMoneyService.lambdaQuery() + .in(OaApprovalApplicationMoney::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationMoney::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationPayment> approvalApplicationPaymentMap = approvalApplicationPaymentService.lambdaQuery() + .in(OaApprovalApplicationPayment::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationPayment::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationStorage> applicationStorageMap = approvalApplicationStorageService.lambdaQuery() + .in(OaApprovalApplicationStorage::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationStorage::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationAsset> approvalApplicationAssetMap = approvalApplicationAssetService.lambdaQuery() + .in(OaApprovalApplicationAsset::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationAsset::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationDispose> approvalApplicationDisposeMap = approvalApplicationDisposeService.lambdaQuery() + .in(OaApprovalApplicationDispose::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationDispose::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationChange> approvalApplicationChangeMap = approvalApplicationChangeService.lambdaQuery() + .in(OaApprovalApplicationChange::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationChange::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationPurchase> approvalApplicationPurchaseMap = approvalApplicationPurchaseService.lambdaQuery() + .in(OaApprovalApplicationPurchase::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationPurchase::getApprovalApplicationId, e -> e)); + Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery() + .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId)); + Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery() + .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e)); + Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery() + .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list() + .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e)); + + Map<Integer, AssetMain> assetMainMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, e -> e)); + Map<Integer, OaApprovalTodo> approvalTodoMap = list.stream().collect(Collectors.toMap(OaApprovalTodo::getApplicationId, e -> e)); + Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e)); + Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e)); + Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e)); + List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list(); + for (OaApprovalApplications approvalApplication : approvalApplications) { + ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO(); + approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory()); + switch (approvalTodoVO.getApprovalCategory()){ + case 1: + case 2: + case 3: + case 4: + default: + OaApprovalApplicationAttendance oaApprovalApplicationAttendance = applicationAttendanceMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAttendance!=null){ + approvalTodoVO.setStartTime(oaApprovalApplicationAttendance.getStartTime()); + approvalTodoVO.setEndTime(oaApprovalApplicationAttendance.getEndTime()); + approvalTodoVO.setDuration(oaApprovalApplicationAttendance.getDuration()); + } + break; + } + SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue()); + if (sysUser!=null){ + approvalTodoVO.setApplyUserName(sysUser.getUserName()); + TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId())); + if (tDept!=null){ + approvalTodoVO.setApplyDeptName(tDept.getDeptName()); + } + } + approvalTodoVO.setApplicationCode(approvalApplication.getApplicationCode()); + approvalTodoVO.setCreateTime(approvalApplication.getCreateTime()); + OaApprovalTodo oaApprovalTodo = approvalTodoMap.get(approvalApplication.getId()); + approvalTodoVO.setId(oaApprovalTodo.getId()); + approvalTodoVO.setApplicationId(approvalApplication.getId()); + + switch (approvalTodoVO.getApprovalCategory()){ + case 5: + OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId()); + if (oaApprovalApplicationPurchase!=null){ + approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount()); + } + break; + case 6: + OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId()); + if (oaApprovalApplicationStorage!=null){ + approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType()); + } + break; + case 7: + StringBuilder temp = new StringBuilder(); + List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAssetItems!=null){ + for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) { + AssetMain assetMain = assetMainMap.get(oaApprovalApplicationAssetItem.getAssetMainId()); + if (assetMain!=null){ + temp.append(assetMain.getAssetName()).append(","); + } + } + // 去除最后一位字符 + if (StringUtils.hasLength(temp.toString())){ + approvalTodoVO.setAssetName(temp.substring(0, temp.length() - 1)); + }else{ + approvalTodoVO.setAssetName(""); + } + } + break; + case 8: + OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAssetOut!=null){ + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime()); + } + break; + case 9: + OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAssetBack!=null){ + approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate()); + } + break; + case 10: + OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId()); + if (oaApprovalApplicationDispose!=null){ + approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType()); + } + break; + case 11: + OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId()); + if (oaApprovalApplicationChange!=null){ + Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId(); + TDept tDept = deptMap.get(ownershipDeptId); + if (tDept!=null){ + approvalTodoVO.setOwnershipDeptName(tDept.getDeptName()); + } + } + break; + case 12: + OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId()); + if (oaApprovalApplicationReimbursement!=null){ + approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount()); + } + break; + case 13: + OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId()); + if (oaApprovalApplicationMoney!=null){ + approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount()); + approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription()); + + } + break; + case 15: + OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId()); + if (oaApprovalApplicationPayment!=null){ + approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount()); + approvalTodoVO.setDescription(approvalApplication.getApplicationReason()); + + } + break; + case 17: + OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId()); + if (oaApprovalApplicationAdvertisement!=null){ + approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent()); + approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount()); + } + break; + } + + resList.add(approvalTodoVO); + } + res.setRecords(resList); + return R.ok(res); + } + + + @ApiOperation(value = "合同文件审批详情") + @GetMapping(value = "/detailContract") + public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery() + .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + ContractDetailVO res = new ContractDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList( sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setContractUrl(approvalApplicationContract.getContractUrl()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + return R.ok(res); + } + @ApiOperation(value = "进度款支付审批详情") + @GetMapping(value = "/detailPayment") + public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery() + .eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + PaymentDetailVO res = new PaymentDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + // todo 三阶段设计项目表之后完善 + res.setProjectName("本期还未涉及到项目"); + res.setApplyAmount(approvalApplicationPayment.getApplyAmount()); + return R.ok(res); + } + @ApiOperation(value = "请假申请审批详情") + @GetMapping(value = "/detailLeave") + public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() + .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + LeaveDetailVO res = new LeaveDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setStartTime(approvalApplicationAttendance.getStartTime()); + res.setEndTime(approvalApplicationAttendance.getEndTime()); + res.setDuration(approvalApplicationAttendance.getDuration()); + return R.ok(res); + } + @ApiOperation(value = "销假审批详情") + @GetMapping(value = "/detailLeaveDestroy") + public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() + .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + OaApprovalApplicationAttendance leaveApplication = approvalApplicationAttendanceService.getById(approvalApplicationAttendance.getLeaveApprovalApplicationId()); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + LeaveDestroyDetailVO res = new LeaveDestroyDetailVO(); + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE_DESTROY.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setStartTime(approvalApplicationAttendance.getStartTime()); + res.setEndTime(approvalApplicationAttendance.getEndTime()); + res.setStartTimeLeave(leaveApplication.getStartTime()); + res.setEndTimeLeave(leaveApplication.getEndTime()); + res.setDurationLeave(leaveApplication.getDuration()); + res.setDuration(approvalApplicationAttendance.getDuration()); + return R.ok(res); + } + @ApiOperation(value = "外出申请审批详情") + @GetMapping(value = "/detailOut") + public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() + .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + OutDetailVO res = new OutDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.OUT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setStartTime(approvalApplicationAttendance.getStartTime()); + res.setEndTime(approvalApplicationAttendance.getEndTime()); + res.setDuration(approvalApplicationAttendance.getDuration()); + return R.ok(res); + } + @ApiOperation(value = "出差审批详情") + @GetMapping(value = "/detailBusinessTrip") + public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() + .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + BusinessTripDetailVO res = new BusinessTripDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BUSINESS_TRIP.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setStartTime(approvalApplicationAttendance.getStartTime()); + res.setEndTime(approvalApplicationAttendance.getEndTime()); + res.setDuration(approvalApplicationAttendance.getDuration()); + res.setAddress(approvalApplicationAttendance.getAddress()); + res.setProjectName(approvalApplicationAttendance.getProjectName()); + return R.ok(res); + } + @ApiOperation(value = "采购审批详情-采购物品清单") + @PostMapping(value = "/detailPurchaseList") + public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "采购审批详情") + @GetMapping(value = "/detailPurchase") + public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery() + .eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + PurchaseDetailVO res = new PurchaseDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PURCHASE.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setCreateTime(approvalApplications.getCreateTime()); + res.setTotalAmount(approvalApplicationPurchase.getTotalAmount()); + res.setTitle(approvalApplicationPurchase.getTitle()); + AssetType assetType = assetTypeService.getById(approvalApplicationPurchase.getAssetTypeId()); + if (assetType!=null){ + res.setAssetTypeName(assetType.getTypeName()); + } + return R.ok(res); + } + @ApiOperation(value = "物品领用-领用资产列表") + @PostMapping(value = "/detailGrabList") + public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "物品领用审批详情") + @GetMapping(value = "/detailGrab") + public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery() + .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + GrabDetailVO res = new GrabDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.GRAB.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setOperateTime(approvalApplicationAsset.getOperateTime()); + res.setTitle(approvalApplicationAsset.getTitle()); + AssetType assetType = assetTypeService.getById(approvalApplicationAsset.getAssetTypeId()); + if (assetType!=null){ + res.setAssetTypeName(assetType.getTypeName()); + } + return R.ok(res); + } + @ApiOperation(value = "资产入库-入库资产列表") + @PostMapping(value = "/detailInStockList") + public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "资产入库审批详情") + @GetMapping(value = "/detailInStock") + public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery() + .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + StorageDetailVO res = new StorageDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.IN_STOCK.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setTitle(approvalApplicationStorage.getTitle()); + res.setStorageType(approvalApplicationStorage.getStorageType()); + res.setStorageTime(approvalApplicationStorage.getStorageTime()); + res.setRemarks(approvalApplicationStorage.getTitle()); + return R.ok(res); + } + @ApiOperation(value = "物品借用-借用资产列表") + @PostMapping(value = "/detailBurrowList") + public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "物品借用审批详情") + @GetMapping(value = "/detailBurrow") + public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery() + .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + BorrowDetailVO res = new BorrowDetailVO(); + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BURROW.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setOperateTime(approvalApplicationAsset.getOperateTime()); + res.setExpectReturnDate(approvalApplicationAsset.getExpectReturnDate()); + return R.ok(res); + } + @ApiOperation(value = "物品借用归还-归还资产列表") + @PostMapping(value = "/detailBackList") + public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "物品借用归还审批详情") + @GetMapping(value = "/detailBack") + public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery() + .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId()) + .last("limit 1").one(); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalApplicationAssetBack.getBorrowApplicationId()); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplicationsBack.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + BackDetailVO res = new BackDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.RETURN.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplicationsBack.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplicationsBack.getId()); + res.setApplicationReason(approvalApplicationsBack.getApplicationReason()); + res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl()); + res.setOperateTime(approvalApplicationAssetBack.getOperateTime()); + res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate()); + res.setTitle(approvalApplicationAssetBack.getTitle()); + res.setApplicationCode(approvalApplications.getApplicationCode()); + return R.ok(res); + } + @ApiOperation(value = "资产处置-处置资产列表") + @PostMapping(value = "/detailDisposeList") + public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "资产处置审批详情") + @GetMapping(value = "/detailDispose") + public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery() + .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + DisposeDetailVO res = new DisposeDetailVO(); + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_DISPOSE.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + + res.setDisposeTime(approvalApplicationDispose.getDisposeTime()); + res.setTitle(approvalApplicationDispose.getTitle()); + AssetType assetType = assetTypeService.getById(approvalApplicationDispose.getAssetTypeId()); + if (assetType!=null){ + res.setAssetTypeName(assetType.getTypeName()); + } + res.setDisposeType(approvalApplicationDispose.getDisposeType()); + res.setDisposeTotalAmount(approvalApplicationDispose.getDisposeTotalAmount()); + return R.ok(res); + } + + @ApiOperation(value = "资产变更-变更资产列表") + @PostMapping(value = "/detailChangeList") + public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + query.setId(approvalApplications.getId()); + PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); + return R.ok(items); + } + @ApiOperation(value = "资产变更审批详情") + @GetMapping(value = "/detailChange") + public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery() + .eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + ChangeDetailVO res = new ChangeDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_CHANGE.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + AssetType assetType = assetTypeService.getById(approvalApplicationChange.getAssetTypeId()); + if (assetType!=null){ + res.setAssetTypeName(assetType.getTypeName()); + } + res.setChangeTime(approvalApplicationChange.getChangeTime()); + res.setTitle(approvalApplicationChange.getTitle()); + TDept dept = deptService.getById(approvalApplicationChange.getOwnershipDeptId()); + if (dept!=null){ + res.setOwnershipDeptName(dept.getDeptName()); + } + // todo 三阶段完善 仓库名称 + res.setWarehouseName("三阶段完善"); + res.setAddress(approvalApplicationChange.getAddress()); + return R.ok(res); + } + @ApiOperation(value = "报销申请审批详情") + @GetMapping(value = "/detailReimbursement") + public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery() + .eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalApplicationReimbursementItem> oaApprovalApplicationReimbursementItems = approvalApplicationReimbursementItemService.lambdaQuery() + .eq(OaApprovalApplicationReimbursementItem::getApprovalApplicationId, approvalApplications.getId()) + .list(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + ReimbursementDetailVO res = new ReimbursementDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.REIMBURSEMENT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + + res.setType(approvalApplicationReimbursement.getType()); + res.setApprovalApplicationReimbursementItems(oaApprovalApplicationReimbursementItems); + return R.ok(res); + } + @ApiOperation(value = "款项申请审批详情") + @GetMapping(value = "/detailMoney") + public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery() + .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + MoneyDetailVO res = new MoneyDetailVO(); + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.MONEY.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setProjectName(approvalApplicationMoney.getProjectName()); + res.setApplyAmount(approvalApplicationMoney.getApplyAmount()); + res.setDescription(approvalApplicationMoney.getDescription()); + res.setPayer(approvalApplicationMoney.getPayer()); + res.setPayee(approvalApplicationMoney.getPayee()); + res.setPayeeContact(approvalApplicationMoney.getPayeeContact()); + res.setPayeeAccount(approvalApplicationMoney.getPayeeAccount()); + return R.ok(res); + } + @ApiOperation(value = "内部联系单审批详情") + @GetMapping(value = "/detailContact") + public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery() + .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + ContactDetailVO res = new ContactDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTACT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setDescription(approvalApplicationMoney.getDescription()); + return R.ok(res); + } + @ApiOperation(value = "广告制作审批详情") + @GetMapping(value = "/detailAdvertisement") + public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) { + OaApprovalTodo approvalTodo = approvalTodoService.getById(id); + OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); + OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery() + .eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId()) + .last("limit 1").one(); + + List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) + .orderByAsc(OaApprovalFlowAudit::getSortOrder) + .list(); + AdvertisementDetailVO res = new AdvertisementDetailVO(); + + + List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() + .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ADVERTISEMENT.getCode()) + .orderByAsc(OaApprovalFlowNode::getSortOrder) + .eq(OaApprovalFlowNode::getStatus, 1).list(); + SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); + if (sysUser!=null){ + res.setUserName(sysUser.getUserName()); + TDept dept = deptService.getById(sysUser.getDeptId()); + if (dept!=null){ + res.setDeptName(dept.getDeptName()); + } + } + List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); + res.setApprovalFlowNodeListVOS(flowNodeList); + res.setApprovalApplicationId(approvalApplications.getId()); + res.setApplicationReason(approvalApplications.getApplicationReason()); + res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); + res.setTitle(applicationAdvertisement.getTitle()); + res.setCreateTime(approvalApplications.getCreateTime()); + res.setContent(applicationAdvertisement.getContent()); + res.setNumber(applicationAdvertisement.getNumber()); + res.setTotalAmount(applicationAdvertisement.getTotalAmount()); + res.setSpec(applicationAdvertisement.getSpec()); + return R.ok(res); + } + private List<ApprovalFlowNodeListVO> getFlowNodeList(SysUser sysUser, List<OaApprovalFlowAudit> approvalFlowAudits + ,List<OaApprovalFlowNode> approvalFlowNodes) { + List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS = new ArrayList<>(); + Map<Integer, OaApprovalFlowAudit> approvalFlowAuditMap = approvalFlowAudits.stream().collect(Collectors.toMap(OaApprovalFlowAudit::getFlowNodeId, e -> e)); + + ApprovalFlowNodeListVO approvalFlowNodeListVO = new ApprovalFlowNodeListVO(); + approvalFlowNodeListVO.setFlowName("发起"); + if (sysUser!=null){ + approvalFlowNodeListVO.setUserName(sysUser.getUserName()); + } + approvalFlowNodeListVOS.add(approvalFlowNodeListVO); + for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) { + ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO(); + + 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; + } @@ -92,6 +1007,7 @@ @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(); @@ -128,18 +1044,51 @@ approvalFlowAudit.setReason(dto.getReason()); approvalFlowAuditService.save(approvalFlowAudit); List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId()) - .orderByDesc(OaApprovalFlowNode::getSortOrder).list(); + .orderByAsc(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; + // 判断当前是否处于最后一个节点 + 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){ + 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()){ + case 10: + assetMains.forEach(assetMain -> { + assetMain.setDisposed(1); + }); + break; + case 7: + assetMains.forEach(assetMain -> { + assetMain.setInUse(1); + }); + break; + default: + assetMains.forEach(assetMain -> { + assetMain.setBorrowed(1); + }); + break; + } + assetMainService.updateBatchById(assetMains); + } + }else{ + // 生成下一个节点的待办事项 + 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()); + approvalTodoService.createApprovalTodos(approvalApplications.getId(), + approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId()); + } } } + } return R.ok(); -- Gitblit v1.7.1