| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void submitReceiveBorrow(OaApprovalApplicationAssetReceiveDTO dto) { |
| | | if (CollUtil.isEmpty(dto.getAssetMainIds())) { |
| | | throw new ServiceException("资产ID列表不能为空"); |
| | | } |
| | | validateAssetStatus(dto.getAssetMainIds()); |
| | | //校验资产状态 |
| | | oaApprovalApplicationAssetItemService.validateAssetStatus(dto.getAssetMainIds()); |
| | | // 1. 构建并保存审批主表 |
| | | OaApprovalApplications applications = buildOaApprovalApplications(dto); |
| | | |
| | |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | oaApprovalApplicationAssetItemService.saveBatch(items); |
| | | } |
| | | |
| | | //TODO 是否需要限制只有未提交审批的资产才能提交 |
| | | private void validateAssetStatus(List<Integer> assetMainIds) { |
| | | |
| | | } |
| | | |
| | | private OaApprovalFlowNode getFirstFlowNode(Integer approvalId) { |
| | |
| | | if (app == null) { |
| | | throw new ServiceException("审批主记录不存在"); |
| | | } |
| | | OaApprovalApplicationAsset detail = this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, app.getId()).one(); |
| | | OaApprovalApplicationAsset detail = getOaApprovalApplicationAssetByApplicationId(app.getId()); |
| | | if (detail == null) { |
| | | throw new ServiceException("记录不存在"); |
| | | } |
| | |
| | | if (app == null) { |
| | | throw new ServiceException("审批主记录不存在"); |
| | | } |
| | | OaApprovalApplicationAsset detail = this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, app.getId()).one(); |
| | | OaApprovalApplicationAsset detail = getOaApprovalApplicationAssetByApplicationId(app.getId()); |
| | | if (detail == null) { |
| | | throw new ServiceException("记录不存在"); |
| | | } |
| | |
| | | vo.setAssetTypeId(detail.getAssetTypeId()); |
| | | vo.setOperateTime(detail.getOperateTime()); |
| | | vo.setExpectReturnDate(detail.getExpectReturnDate()); |
| | | vo.setReturnStatus(detail.getReturnStatus()); |
| | | vo.setItems(assetMainVOS); |
| | | return vo; |
| | | } |
| | |
| | | } |
| | | @Override |
| | | public void submitReturn(OaApprovalApplicationAssetReturnDTO dto) { |
| | | if (CollUtil.isEmpty(dto.getAssetMainIds())) { |
| | | throw new ServiceException("资产ID列表不能为空"); |
| | | } |
| | | //校验资产状态 |
| | | oaApprovalApplicationAssetItemService.validateAssetStatus(dto.getAssetMainIds()); |
| | | // 1. 构建并保存审批主表 |
| | | OaApprovalApplications applications = BeanUtil.copyProperties(dto, OaApprovalApplications.class); |
| | | applications.setApplicationCode(generateApplicationCode("GH")); |
| | | applications.setApprovalId(ApprovalTypeEnum.RETURN.getCode()); |
| | | applications.setApplicationDate(LocalDate.now()); |
| | | |
| | | // 2. 获取流程首节点,设置当前节点,并保存 |
| | | OaApprovalFlowNode firstFlowNode = getFirstFlowNode(ApprovalTypeEnum.RETURN.getCode()); |
| | |
| | | @Override |
| | | public IPage<OaApprovalApplicationAssetPageVO> getReturnNotifyPageList(OaApprovalApplicationAssetPageQuery pageQuery) { |
| | | Page<OaApprovalApplicationAssetPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); |
| | | pageQuery.setType(AssetOperateTypeEnum.RETURN.getCode()); |
| | | pageQuery.setType(AssetOperateTypeEnum.BORROW.getCode()); |
| | | pageQuery.setReturnNotify(1); |
| | | IPage<OaApprovalApplicationAssetPageVO> pageByType = this.baseMapper.getPageByType(page, pageQuery); |
| | | LocalDate toDay = LocalDate.now(); |
| | | pageByType.getRecords().forEach(item->{ |
| | | item.setDueDays(toDay.until(item.getExpectReturnDate()).getDays()); |
| | | if (Objects.nonNull(item.getExpectReturnDate())) { |
| | | item.setDueDays(toDay.until(item.getExpectReturnDate()).getDays()); |
| | | } |
| | | }); |
| | | return pageByType; |
| | | } |
| | |
| | | if (app == null) { |
| | | throw new ServiceException("审批主记录不存在"); |
| | | } |
| | | OaApprovalApplicationAsset detail = this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, app.getId()).one(); |
| | | OaApprovalApplicationAsset detail = getOaApprovalApplicationAssetByApplicationId(id); |
| | | if (detail == null) { |
| | | throw new ServiceException("记录不存在"); |
| | | } |
| | | oaApprovalApplicationsService.assembleApplicationDetail(app); |
| | | //查询借用申请单 |
| | | OaApprovalApplications borrowApprovalApplication = oaApprovalApplicationsService.getById(detail.getBorrowApplicationId()); |
| | | OaApprovalApplicationAsset borrowApprovalApplicationAsset = null; |
| | | if (Objects.nonNull(borrowApprovalApplication)) { |
| | | borrowApprovalApplicationAsset = getOaApprovalApplicationAssetByApplicationId(borrowApprovalApplication.getId()); |
| | | } |
| | | List<Integer> assetMainIds = oaApprovalApplicationAssetItemService.lambdaQuery() |
| | | .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId()) |
| | | .list().stream().map(OaApprovalApplicationAssetItem::getAssetMainId) |
| | |
| | | |
| | | List<AssetMainVO> assetMainVOS = assetMainIds.isEmpty() ? Collections.emptyList() : assetMainService.getListByIds(assetMainIds); |
| | | OaApprovalApplicationAssetDetailVO vo = BeanUtil.copyProperties(app, OaApprovalApplicationAssetDetailVO.class); |
| | | |
| | | vo.setTitle(detail.getTitle()); |
| | | vo.setAssetTypeId(detail.getAssetTypeId()); |
| | | vo.setOperateTime(detail.getOperateTime()); |
| | | vo.setBorrowDate(Objects.nonNull(borrowApprovalApplicationAsset) ? borrowApprovalApplicationAsset.getOperateTime() : null); |
| | | vo.setReturnStatus(detail.getReturnStatus()); |
| | | vo.setItems(assetMainVOS); |
| | | return vo; |
| | | } |
| | |
| | | oaApprovalApplicationAssetItemService.lambdaUpdate().eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationId).remove(); |
| | | oaApprovalApplicationsService.removeById(applicationId); |
| | | } |
| | | |
| | | @Override |
| | | public OaApprovalApplicationAsset getOaApprovalApplicationAssetByApplicationId(Integer applicationId) { |
| | | return this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, applicationId).one(); |
| | | } |
| | | } |