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(); ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
@@ -10,12 +10,11 @@ import com.ruoyi.framework.web.service.TokenService; 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.query.NotificationListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.ApprovalFlowNodeListVO; import com.ruoyi.system.vo.ApprovalTodoVO; import com.ruoyi.system.vo.ContractDetailVO; import com.ruoyi.system.vo.*; import com.ruoyi.system.vo.system.NotificationVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; @@ -50,6 +49,8 @@ private OaApprovalApplicationStorageService approvalApplicationStorageService; @Resource private OaApprovalApplicationPurchaseService approvalApplicationPurchaseService; @Resource private OaApprovalApplicationPurchaseItemService approvalApplicationPurchaseItemService; @Resource private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService; @Resource @@ -90,32 +91,12 @@ @Resource private TDeptService deptService; @Resource private AssetTypeService assetTypeService; @Resource private OaApprovalTodoService oaApprovalTodoService; @Resource private OaApprovalFlowService approvalFlowService; @ApiOperation("测试接口") @PostMapping("/test") public void test() { List<OaApproval> approvals = approvalService.list(); List<OaApprovalFlow> list = approvalFlowService.list(); List<OaApprovalFlowNode> oaApprovalFlowNodes = new ArrayList<>(); for (OaApproval approval : approvals) { int i = 1; for (OaApprovalFlow oaApprovalFlow : list) { OaApprovalFlowNode oaApprovalFlowNode = new OaApprovalFlowNode(); oaApprovalFlowNode.setApprovalId(approval.getId()); oaApprovalFlowNode.setApprovalFlowId(oaApprovalFlow.getId()); oaApprovalFlowNode.setFlowName(oaApprovalFlow.getFlowName()); oaApprovalFlowNode.setSortOrder(i); oaApprovalFlowNode.setApprovalType(0); oaApprovalFlowNode.setStatus(true); oaApprovalFlowNode.setSignFlag(true); i++; oaApprovalFlowNodes.add(oaApprovalFlowNode); } } approvalFlowNodeService.saveBatch(oaApprovalFlowNodes); } @ApiOperation("待办事项列表") @@ -304,7 +285,7 @@ @ApiOperation(value = "合同文件审批详情") @GetMapping(value = "/detailContract") public R<ContractDetailVO> detailContract(@ApiParam("待办列表id") Integer id) { public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) { OaApprovalTodo approvalTodo = approvalTodoService.getById(id); OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery() @@ -318,7 +299,15 @@ .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode()) .orderByAsc(OaApprovalFlowNode::getSortOrder) .eq(OaApprovalFlowNode::getStatus, 1).list(); List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(approvalApplications, res, approvalFlowAudits,approvalFlowNodes); 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()); @@ -328,43 +317,670 @@ } @ApiOperation(value = "进度款支付审批详情") @GetMapping(value = "/detailPayment") public R<ContractDetailVO> detailPayment(@ApiParam("待办列表id") Integer id) { public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) { OaApprovalTodo approvalTodo = approvalTodoService.getById(id); OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery() .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId()) 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(); ContractDetailVO res = new ContractDetailVO(); PaymentDetailVO res = new PaymentDetailVO(); List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode()) .orderByAsc(OaApprovalFlowNode::getSortOrder) .eq(OaApprovalFlowNode::getStatus, 1).list(); List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(approvalApplications, res, approvalFlowAudits,approvalFlowNodes); 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()); // todo 三阶段设计项目表之后完善 res.setProjectName("本期还未涉及到项目"); res.setApplyAmount(approvalApplicationPayment.getApplyAmount()); return R.ok(res); } private List<ApprovalFlowNodeListVO> getFlowNodeList(OaApprovalApplications approvalApplications, ContractDetailVO res, List<OaApprovalFlowAudit> approvalFlowAudits @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("发起"); SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); if (sysUser!=null){ approvalFlowNodeListVO.setUserName(sysUser.getUserName()); res.setUserName(sysUser.getUserName()); TDept dept = deptService.getById(sysUser.getDeptId()); if (dept!=null){ res.setDeptName(dept.getDeptName()); } } approvalFlowNodeListVOS.add(approvalFlowNodeListVO); for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) { @@ -379,15 +995,6 @@ }else{ approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName()); } approvalFlowNodeListVOS.add(approvalFlowNodeVO); } for (OaApprovalFlowAudit approvalFlowAudit : approvalFlowAudits) { ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO(); approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName()); approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName()); approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl()); approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()); approvalFlowNodeListVOS.add(approvalFlowNodeVO); } return approvalFlowNodeListVOS; ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -25,7 +25,9 @@ import com.ruoyi.system.service.*; import com.ruoyi.system.vo.system.SysUserVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -77,6 +79,18 @@ return AjaxResult.success(list); } /** * 获取用户列表 */ @ApiOperation(value = "根据部门id获取用户列表") @GetMapping("/listByDeptId") public AjaxResult<PageInfo<SysUserVO>> listByDeptId(@ApiParam(value = "部门id")Integer deptId, @ApiParam(value = "分页参数,当前页码") Integer pageNum, @ApiParam(value = "分页参数,每页数量,默认为10") Integer pageSize ) { PageInfo<SysUserVO> list = userService.listByDeptId(deptId,pageNum,pageSize); return AjaxResult.success(list); } @ApiOperation(value = "获取用户列表-不分页") @PostMapping("/listNotPage") ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAssetItemMapper.java
@@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.vo.GrabListVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,5 @@ */ public interface OaApprovalApplicationAssetItemMapper extends BaseMapper<OaApprovalApplicationAssetItem> { List<GrabListVO> pageList(@Param("query")ApprovalDetailQuery query, @Param("pageInfo")PageInfo<GrabListVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationPurchaseItemMapper.java
@@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.OaApprovalApplicationPurchaseItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.vo.PurchaseListVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,5 @@ */ public interface OaApprovalApplicationPurchaseItemMapper extends BaseMapper<OaApprovalApplicationPurchaseItem> { List<PurchaseListVO> pageList(@Param("query")ApprovalDetailQuery query, @Param("pageInfo")PageInfo<PurchaseListVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationStorageMapper.java
@@ -3,10 +3,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.OaApprovalApplicationStoragePageQuery; import com.ruoyi.system.vo.StorageListVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -25,4 +30,7 @@ * @return 分页数据 */ IPage<OaApprovalApplicationStoragePageVO> selectApplicationStoragePage(Page<?> page, @Param("query") OaApprovalApplicationStoragePageQuery query); List<StorageListVO> pageList(@Param("query")ApprovalDetailQuery query, @Param("pageInfo")PageInfo<StorageListVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalTodoMapper.java
@@ -20,4 +20,6 @@ List<OaApprovalTodo> pageList(@Param("query")ApprovalTodoListQuery query, @Param("pageInfo")PageInfo<OaApprovalTodo> pageInfo); List<OaApprovalTodo> pageListAudit(@Param("query")ApprovalTodoListQuery query, @Param("pageInfo")PageInfo<OaApprovalTodo> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -213,4 +213,7 @@ * @return */ List<SysUser> selectListByUserIds(@Param("userIds") List<Integer> userIds); List<SysUserVO> listByDeptId(@Param("deptId")Integer deptId,@Param("pageInfo") PageInfo<SysUserVO> pageInfo); } ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.system.query; import com.ruoyi.common.core.domain.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "审批详情通用query") public class ApprovalDetailQuery extends BasePage { @ApiModelProperty(value = "待办id") private Integer id; @ApiModelProperty(value = "申请单id 前端忽略") private Integer approvalApplicationId; } ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -304,4 +304,6 @@ * @return */ List<SysUser> selectListByUserIds(List<Integer> userIds); PageInfo<SysUserVO> listByDeptId(Integer deptId,Integer pageNum,Integer pageSize); } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAssetItemService.java
@@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.vo.GrabListVO; /** * <p> @@ -13,4 +16,5 @@ */ public interface OaApprovalApplicationAssetItemService extends IService<OaApprovalApplicationAssetItem> { PageInfo<GrabListVO> pageList(ApprovalDetailQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationPurchaseItemService.java
@@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.OaApprovalApplicationPurchaseItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.vo.PurchaseListVO; /** * <p> @@ -13,4 +16,5 @@ */ public interface OaApprovalApplicationPurchaseItemService extends IService<OaApprovalApplicationPurchaseItem> { PageInfo<PurchaseListVO> pageList(ApprovalDetailQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageService.java
@@ -2,11 +2,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageGeneralDTO; import com.ruoyi.system.dto.asset.OaApprovalApplicationStoragePropertyDTO; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageVehicleDTO; import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.OaApprovalApplicationStoragePageQuery; import com.ruoyi.system.vo.StorageListVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; /** @@ -46,4 +49,6 @@ * @return 分页数据 */ IPage<OaApprovalApplicationStoragePageVO> getPageList(OaApprovalApplicationStoragePageQuery pageQuery); PageInfo<StorageListVO> pageList(ApprovalDetailQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalTodoService.java
@@ -30,4 +30,6 @@ PageInfo<OaApprovalTodo> pageList(ApprovalTodoListQuery query); PageInfo<OaApprovalTodo> pageListAudit(ApprovalTodoListQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetItemServiceImpl.java
@@ -1,10 +1,16 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.OaApprovalApplicationAssetItemMapper; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; import com.ruoyi.system.vo.GrabListVO; import com.ruoyi.system.vo.PurchaseListVO; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -17,4 +23,11 @@ @Service public class OaApprovalApplicationAssetItemServiceImpl extends ServiceImpl<OaApprovalApplicationAssetItemMapper, OaApprovalApplicationAssetItem> implements OaApprovalApplicationAssetItemService { @Override public PageInfo<GrabListVO> pageList(ApprovalDetailQuery query) { PageInfo<GrabListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<GrabListVO> list = this.baseMapper.pageList(query,pageInfo); pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationPurchaseItemServiceImpl.java
@@ -1,10 +1,16 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.OaApprovalApplicationPurchaseItemMapper; import com.ruoyi.system.model.OaApprovalApplicationPurchaseItem; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService; import com.ruoyi.system.vo.PurchaseListVO; import com.ruoyi.system.vo.system.NotificationVO; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -17,4 +23,11 @@ @Service public class OaApprovalApplicationPurchaseItemServiceImpl extends ServiceImpl<OaApprovalApplicationPurchaseItemMapper, OaApprovalApplicationPurchaseItem> implements OaApprovalApplicationPurchaseItemService { @Override public PageInfo<PurchaseListVO> pageList(ApprovalDetailQuery query) { PageInfo<PurchaseListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<PurchaseListVO> list = this.baseMapper.pageList(query,pageInfo); pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageGeneralDTO; @@ -20,6 +21,7 @@ import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.model.OaApprovalApplications; import com.ruoyi.system.model.OaApprovalFlowNode; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.service.AssetGeneralExtService; import com.ruoyi.system.service.AssetMainService; import com.ruoyi.system.service.AssetPropertyExtService; @@ -33,6 +35,8 @@ import com.ruoyi.system.service.OaApprovalFlowNodeService; import com.ruoyi.system.service.OaApprovalTodoService; import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.vo.PurchaseListVO; import com.ruoyi.system.vo.StorageListVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -576,4 +580,12 @@ Page<OaApprovalApplicationStoragePageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); return this.baseMapper.selectApplicationStoragePage(page, pageQuery); } @Override public PageInfo<StorageListVO> pageList(ApprovalDetailQuery query) { PageInfo<StorageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<StorageListVO> list = this.baseMapper.pageList(query,pageInfo); pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalTodoServiceImpl.java
@@ -77,6 +77,14 @@ return pageInfo; } @Override public PageInfo<OaApprovalTodo> pageListAudit(ApprovalTodoListQuery query) { PageInfo<OaApprovalTodo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<OaApprovalTodo> list = this.baseMapper.pageListAudit(query,pageInfo); pageInfo.setRecords( list); return pageInfo; } /** * 创建上级部门审批待办 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -5,6 +5,7 @@ import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; @@ -13,11 +14,7 @@ import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.mapper.SysPostMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserPostMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.*; import com.ruoyi.system.query.SysUserQuery; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; @@ -32,6 +29,7 @@ import javax.validation.Validator; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -47,6 +45,8 @@ @Autowired private SysUserMapper userMapper; @Autowired private TDeptMapper deptMapper; @Autowired private SysRoleMapper roleMapper; @@ -643,6 +643,23 @@ if(CollectionUtils.isEmpty(list)){ return pageInfo; } Map<Integer, TDept> deptMap = deptMapper.selectList(null).stream() .collect(Collectors.toMap(TDept::getId, e->e)); for (SysUserVO sysUserVO : list) { StringBuilder deptName = new StringBuilder(); TDept tDept = deptMap.get(Integer.valueOf(sysUserVO.getDeptId())); if (tDept!=null){ deptName.append(tDept.getDeptName()); while (tDept.getParentId()!=0){ tDept = deptMap.get(tDept.getParentId()); if (tDept!=null){ deptName.append("-").append(tDept.getDeptName()); }else{ break; } } } } pageInfo.setRecords(list); return pageInfo; } @@ -706,4 +723,34 @@ public List<SysUser> selectListByUserIds(List<Integer> userIds) { return userMapper.selectListByUserIds(userIds); } @Override public PageInfo<SysUserVO> listByDeptId(Integer deptId, Integer pageNum, Integer pageSize) { PageInfo<SysUserVO> pageInfo = new PageInfo<>(pageNum, pageSize); List<SysUserVO> list = userMapper.listByDeptId(deptId,pageInfo); if(CollectionUtils.isEmpty(list)){ return pageInfo; } Map<Integer, TDept> deptMap = deptMapper.selectList(null).stream() .collect(Collectors.toMap(TDept::getId, e->e)); for (SysUserVO sysUserVO : list) { StringBuilder deptName = new StringBuilder(); TDept tDept = deptMap.get(Integer.valueOf(sysUserVO.getDeptId())); if (tDept!=null){ deptName.append(tDept.getDeptName()); while (tDept.getParentId()!=0){ tDept = deptMap.get(tDept.getParentId()); if (tDept!=null){ deptName.append("-").append(tDept.getDeptName()); }else{ break; } } } } pageInfo.setRecords(list); return pageInfo; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java
@@ -65,5 +65,7 @@ private String description; @ApiModelProperty(value = "内容(广告制作)") private String content; @ApiModelProperty(value = "审批状态 0-草稿,1-待审批,2-审批通过,3-审批拒绝 ,4-已撤回") private Integer approvalStatus; } ruoyi-system/src/main/java/com/ruoyi/system/vo/BackDetailVO.java
@@ -36,8 +36,7 @@ @ApiModelProperty(value = "借用单据号") private String applicationCode; @ApiModelProperty(value = "借用资产列表") private PageInfo<BackListVO> backListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/BorrowDetailVO.java
@@ -32,8 +32,7 @@ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDate expectReturnDate; @ApiModelProperty(value = "借用资产列表") private PageInfo<BorrowListVO> borrowListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/ChangeDetailVO.java
@@ -38,8 +38,7 @@ private String warehouseName; @ApiModelProperty(value = "地址") private String address; @ApiModelProperty(value = "领用资产列表") private PageInfo<ChangeListVO> grabListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/DisposeDetailVO.java
@@ -38,8 +38,7 @@ private Integer disposeType; @ApiModelProperty(value = "处置总金额(元)") private BigDecimal disposeTotalAmount; @ApiModelProperty(value = "处置资产列表") private PageInfo<GrabListVO> grabListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/GrabDetailVO.java
@@ -33,8 +33,7 @@ private String title; @ApiModelProperty(value = "资产类型名称") private String assetTypeName; @ApiModelProperty(value = "领用资产列表") private PageInfo<GrabListVO> grabListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/LeaveDestroyDetailVO.java
@@ -6,6 +6,7 @@ import lombok.Data; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -23,16 +24,22 @@ private String attachmentUrl; @ApiModelProperty(value = "审批申请记录ID") private Integer approvalApplicationId; @ApiModelProperty(value = "开始请假/外出/出差/销假时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "销假时间开始") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime startTime; @ApiModelProperty(value = "结束请假/外出/出差/销假时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "销假时间结束") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime endTime; @ApiModelProperty(value = "请假/外出/出差/销假时长(天)") @ApiModelProperty(value = "销假时长(天)") private Double duration; @ApiModelProperty(value = "关联请假开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime startTimeLeave; @ApiModelProperty(value = "关联请假结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime endTimeLeave; @ApiModelProperty(value = "关联请假请假时长(天)") private Double durationLeave; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/PurchaseDetailVO.java
@@ -34,8 +34,7 @@ private String title; @ApiModelProperty(value = "资产类型名称") private String assetTypeName; @ApiModelProperty(value = "采购物品清单") private PageInfo<PurchaseListVO> purchaseListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java
@@ -24,7 +24,7 @@ @ApiModelProperty(value = "标题") private String title; @ApiModelProperty(value = "入库类型 0-正常入库") private Integer storageType; private Boolean storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDate storageTime; @@ -32,7 +32,7 @@ private String remarks; @ApiModelProperty(value = "采购物品清单") private PageInfo<GrabListVO> grabListVOPageInfo; private PageInfo<StorageListVO> grabListVOPageInfo; @ApiModelProperty(value = "审批流程") private List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS; ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageListVO.java
@@ -31,7 +31,6 @@ @ApiModelProperty(value = "总价值(数量*单价)") private BigDecimal totalValue; @ApiModelProperty(value = "入账时间") @TableField("accounting_date") private LocalDate accountingDate; @ApiModelProperty(value = "会计凭证号") ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml
@@ -4,14 +4,38 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.system.model.OaApprovalApplicationAssetItem"> <id column="id" property="id" /> <result column="approval_application_id" property="approvalApplicationId" /> <result column="asset_main_id" property="assetMainId" /> <id column="id" property="id"/> <result column="approval_application_id" property="approvalApplicationId"/> <result column="asset_main_id" property="assetMainId"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, approval_application_id, asset_main_id id , approval_application_id, asset_main_id </sql> <select id="pageList" resultType="com.ruoyi.system.vo.GrabListVO"> select t1.*, t3.type_name as assetTypeName, t2.asset_name as assetName, t2.asset_code as assetCode, t4.dept_name as ownershipDeptName, t2.asset_status as assetStatus, t5.storage_time as storageTime, case when t2.use_dept_id is not null and t2.use_dept_id != '' then t6.dept_name when t2.address is not null and t2.address != '' then t2.address when t2.warehouse_name is not null and t2.warehouse_name != '' then t2.warehouse_name else null end as useName from oa_approval_application_asset_item t1 left join asset_main t2 on t2.id = t1.asset_main_id left join asset_type t3 on t3.id = t2.asset_type_id left join t_dept t4 on t4.id = t2.ownership_dept_id left join oa_approval_application_storage t5 on t5.approval_application_id = t1.approval_application_id left join t_dept t6 on t6.id = t2.use_dept_id where t1.approval_application_id = #{query.approvalApplicationId} order by t1.id desc </select> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationPurchaseItemMapper.xml
@@ -19,5 +19,12 @@ <sql id="Base_Column_List"> id, approval_application_id, asset_name, asset_type_id, spec, unit, quantity, price, total_amount </sql> <select id="pageList" resultType="com.ruoyi.system.vo.PurchaseListVO"> select t1.*,t2.type_name as assetTypeName from oa_approval_application_purchase_item t1 left join asset_type t2 on t2.id = t1.asset_type_id where t1.approval_application_id = #{query.approvalApplicationId} </select> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml
@@ -46,5 +46,23 @@ </where> ORDER BY oas.storage_time DESC, oas.id DESC </select> <select id="pageList" resultType="com.ruoyi.system.vo.StorageListVO"> select t1.*,t2.type_name as assetTypeName, case when t1.use_dept_id is not null and t1.use_dept_id != '' then t3.dept_name when t1.address is not null and t1.address != '' then t1.address when t1.warehouse_name is not null and t1.warehouse_name != '' then t1.warehouse_name else null end as useName from asset_main t1 left join asset_type t2 on t3.id = t1.asset_type_id left join t_dept t3 on t4.id = t3.ownership_dept_id where t1.approval_application_id = #{query.approvalApplicationId} order by t1.create_time desc </select> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalTodoMapper.xml
@@ -31,5 +31,15 @@ group by application_id order by create_time desc </select> <select id="pageListAudit" resultType="com.ruoyi.system.model.OaApprovalTodo"> select * from oa_approval_todo where 1=1 <if test="query.userId != null"> and user_id = #{query.userId} </if> and status = 1 group by application_id order by create_time desc </select> </mapper> ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -36,6 +36,7 @@ <result property="remark" column="remark" /> <result property="ifBlack" column="ifBlack" /> <result property="roleName" column="role_name" /> <result property="deptName" column="dept_name" /> <association property="dept" javaType="SysDept" resultMap="deptResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> </resultMap> @@ -61,18 +62,18 @@ <sql id="selectUserVo"> select u.*, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.id as deptId,d.dept_name , r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join t_dept d on u.dept_id = d.id left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id </sql> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,u.code from sys_user u left join sys_dept d on u.dept_id = d.dept_id u.create_by, u.create_time, u.remark, d.dept_name,u.code from sys_user u left join t_dept d on u.dept_id = d.id where u.del_flag = '0' <if test="userId != null and userId != 0"> AND u.user_id = #{userId} @@ -326,6 +327,20 @@ </if> </where> </select> <select id="listByDeptId" resultType="com.ruoyi.system.vo.system.SysUserVO"> select u.*, r.role_id AS roleId, r.role_name AS roleName, r.role_key AS roleKey, r.role_sort AS roleSort, r.data_scope AS dataScope, r.status as role_status ,t1.dept_name as deptName from sys_user u left join sys_user_role ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id LEFT JOIN t_dept t1 on t1.id = u.dept_id WHERE u.del_flag = 0 <if test="deptId != null and query.deptId != ''"> AND u.dept_id LIKE concat('%',#{query.deptId},'%') </if> ORDER BY u.create_time DESC </select> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> insert into sys_user( <if test="userId != null and userId != 0">user_id,</if>