| | |
| | | private OaApprovalApplicationAsset buildOaApprovalApplicationAsset(OaApprovalApplicationAssetReceiveDTO dto, Integer applicationId) { |
| | | OaApprovalApplicationAsset asset = BeanUtil.copyProperties(dto, OaApprovalApplicationAsset.class); |
| | | asset.setApprovalApplicationId(applicationId); |
| | | asset.setType(AssetOperateTypeEnum.RECEIVE.getCode()); |
| | | asset.setType(dto.getType()); |
| | | return asset; |
| | | } |
| | | |
| | |
| | | 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.setTitle(detail.getTitle()); |
| | | vo.setAssetTypeId(detail.getAssetTypeId()); |
| | | vo.setOperateTime(detail.getOperateTime()); |
| | | vo.setExpectReturnDate(detail.getExpectReturnDate()); |
| | | vo.setReturnStatus(detail.getReturnStatus()); |
| | | vo.setItems(assetMainVOS); |
| | | return vo; |
| | | } |
| | |
| | | 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()); |
| | |
| | | // 4. 保存归还明细 |
| | | OaApprovalApplicationAsset detail = BeanUtil.copyProperties(dto, OaApprovalApplicationAsset.class); |
| | | detail.setApprovalApplicationId(applications.getId()); |
| | | detail.setBorrowApplicationId(dto.getApprovalApplicationId()); |
| | | detail.setType(AssetOperateTypeEnum.RETURN.getCode()); |
| | | |
| | | OaApprovalApplicationAsset asset = lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, dto.getApprovalApplicationId()).one(); |
| | | if (Objects.nonNull(asset)) { |
| | | detail.setAssetTypeId(asset.getAssetTypeId()); |
| | | } |
| | | this.save(detail); |
| | | |
| | | // 5. 保存关联的资产项 |
| | |
| | | @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; |
| | | } |
| | | |
| | | @Override |
| | | public OaApprovalApplicationAssetDetailVO getReturnDetail(Integer id) { |
| | | OaApprovalApplications app = oaApprovalApplicationsService.getById(id); |
| | | if (app == null) { |
| | | throw new ServiceException("审批主记录不存在"); |
| | | } |
| | | 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) |
| | | .distinct().collect(Collectors.toList()); |
| | | |
| | | 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; |
| | | } |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void deleteByApplicationId(Integer applicationId) { |
| | | this.lambdaUpdate().eq(OaApprovalApplicationAsset::getApprovalApplicationId, applicationId).remove(); |
| | | oaApprovalApplicationAssetItemService.lambdaUpdate().eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationId).remove(); |
| | | oaApprovalApplicationsService.removeById(applicationId); |
| | | } |
| | | |
| | | @Override |
| | | public OaApprovalApplicationAsset getOaApprovalApplicationAssetByApplicationId(Integer applicationId) { |
| | | return this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, applicationId).one(); |
| | | } |
| | | } |