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/OaApprovalApplicationAssetItemServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetItemServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetItemServiceImpl.java index bd70451..652a386 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetItemServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetItemServiceImpl.java @@ -1,10 +1,26 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.system.emums.ApprovalStatusEnum; import com.ruoyi.system.mapper.OaApprovalApplicationAssetItemMapper; +import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; +import com.ruoyi.system.model.OaApprovalApplications; +import com.ruoyi.system.query.ApprovalDetailQuery; +import com.ruoyi.system.service.AssetMainService; import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; +import com.ruoyi.system.service.OaApprovalApplicationsService; +import com.ruoyi.system.vo.GrabListVO; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * <p> @@ -15,6 +31,67 @@ * @since 2025-09-15 */ @Service +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class OaApprovalApplicationAssetItemServiceImpl extends ServiceImpl<OaApprovalApplicationAssetItemMapper, OaApprovalApplicationAssetItem> implements OaApprovalApplicationAssetItemService { + private final AssetMainService assetMainService; + private final OaApprovalApplicationsService oaApprovalApplicationsService; + @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; + } + + @Override + public void validateAssetStatus(List<Integer> assetMainIds) { + if (CollUtil.isEmpty(assetMainIds)) { + return; + } + + // 1. 根据资产ID列表查询资产关联表 + List<OaApprovalApplicationAssetItem> assetItems = this.lambdaQuery() + .in(OaApprovalApplicationAssetItem::getAssetMainId, assetMainIds) + .list(); + + if (CollUtil.isEmpty(assetItems)) { + return; + } + + // 2. 收集所有资产关联表中的审批申请ID + List<Integer> approvalApplicationIds = assetItems.stream() + .map(OaApprovalApplicationAssetItem::getApprovalApplicationId) + .distinct() + .collect(Collectors.toList()); + + // 3. 查询待审核状态的审批记录 + List<OaApprovalApplications> pendingApplications = oaApprovalApplicationsService.lambdaQuery() + .in(OaApprovalApplications::getId, approvalApplicationIds) + .eq(OaApprovalApplications::getApprovalStatus, ApprovalStatusEnum.PENDING.getCode()) + .list(); + + if (CollUtil.isNotEmpty(pendingApplications)) { + // 4. 如果存在待审批记录,获取涉及的资产ID + Set<Integer> pendingAssetIds = this.lambdaQuery() + .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, + pendingApplications.stream() + .map(OaApprovalApplications::getId) + .collect(Collectors.toList())) + .list() + .stream() + .map(OaApprovalApplicationAssetItem::getAssetMainId) + .distinct() + .collect(Collectors.toSet()); + //取交集 + pendingAssetIds.retainAll(assetMainIds); + // 获取资产信息用于错误提示 + List<AssetMain> pendingAssets = assetMainService.listByIds(pendingAssetIds); + String assetNames = pendingAssets.stream() + .map(AssetMain::getAssetName) + .collect(Collectors.joining("、")); + + throw new ServiceException("操作失败," + assetNames + "资产已存在待审批的记录"); + } + } } -- Gitblit v1.7.1