From bb5ce8ef60a63815f222716c40111bd045464689 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 30 九月 2025 18:32:10 +0800 Subject: [PATCH] 资产维修记录列表查询接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java | 78 ++++++++++++++++++++++++++++++--------- 1 files changed, 60 insertions(+), 18 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java index f3f7667..0232b33 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java @@ -65,10 +65,8 @@ @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); @@ -95,11 +93,6 @@ }) .collect(Collectors.toList()); oaApprovalApplicationAssetItemService.saveBatch(items); - } - - //TODO 是否需要限制只有未提交审批的资产才能提交 - private void validateAssetStatus(List<Integer> assetMainIds) { - } private OaApprovalFlowNode getFirstFlowNode(Integer approvalId) { @@ -133,7 +126,7 @@ 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; } @@ -166,7 +159,7 @@ 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("记录不存在"); } @@ -198,7 +191,7 @@ 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("记录不存在"); } @@ -227,6 +220,8 @@ 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; } @@ -258,13 +253,13 @@ } @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()); @@ -277,8 +272,12 @@ // 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. 保存关联的资产项 @@ -303,18 +302,61 @@ @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(); + } } -- Gitblit v1.7.1