From c758c4e55d74a34902dac5752ff4f160118b19bc Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 23 九月 2025 14:09:36 +0800 Subject: [PATCH] 资产借用接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 49 insertions(+), 9 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 0640ed2..d87033e 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 @@ -1,20 +1,26 @@ package com.ruoyi.system.service.impl; +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.exception.ServiceException; import com.ruoyi.system.dto.asset.OaApprovalApplicationAssetReceiveDTO; import com.ruoyi.system.emums.ApprovalStatusEnum; import com.ruoyi.system.emums.ApprovalTypeEnum; +import com.ruoyi.system.emums.AssetOperateTypeEnum; import com.ruoyi.system.mapper.OaApprovalApplicationAssetMapper; import com.ruoyi.system.model.OaApprovalApplicationAsset; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; import com.ruoyi.system.model.OaApprovalApplications; import com.ruoyi.system.model.OaApprovalFlowNode; +import com.ruoyi.system.query.OaApprovalApplicationAssetPageQuery; import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; import com.ruoyi.system.service.OaApprovalApplicationAssetService; import com.ruoyi.system.service.OaApprovalApplicationsService; import com.ruoyi.system.service.OaApprovalFlowNodeService; import com.ruoyi.system.service.OaApprovalTodoService; +import com.ruoyi.system.vo.asset.OaApprovalApplicationAssetPageVO; +import com.ruoyi.system.vo.asset.OaApprovalApplicationAssetDetailVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,32 +50,33 @@ @Override @Transactional(rollbackFor = Exception.class) - public void submitReceive(OaApprovalApplicationAssetReceiveDTO dto) { - if (CollectionUtils.isEmpty(dto.getAssetItems())) { - throw new ServiceException("领用资产列表不能为空"); + public void submitReceiveBorrow(OaApprovalApplicationAssetReceiveDTO dto) { + if (CollectionUtils.isEmpty(dto.getAssetMainIds())) { + throw new ServiceException("领用资产ID列表不能为空"); } // 1. 构建并保存审批主表 OaApprovalApplications applications = buildOaApprovalApplications(dto); // 2. 获取流程首节点,设置当前节点,并保存 - OaApprovalFlowNode firstFlowNode = getFirstFlowNode(ApprovalTypeEnum.GRAB.getCode()); + OaApprovalFlowNode firstFlowNode = getFirstFlowNode(dto.getType().equals(AssetOperateTypeEnum.RECEIVE.getCode()) ? + ApprovalTypeEnum.GRAB.getCode() : ApprovalTypeEnum.BORROW.getCode()); applications.setCurrentFlowNodeId(firstFlowNode.getId()); oaApprovalApplicationsService.save(applications); // 3. 创建待办 oaApprovalTodoService.createApprovalTodos(applications.getId(), applications.getApplicationCode(), firstFlowNode, dto.getDeptId()); - // 4. 保存领用明细 + // 4. 保存领用/借用明细 OaApprovalApplicationAsset detail = buildOaApprovalApplicationAsset(dto, applications.getId()); this.save(detail); // 5. 保存关联的资产项 - List<OaApprovalApplicationAssetItem> items = dto.getAssetItems().stream() + List<OaApprovalApplicationAssetItem> items = dto.getAssetMainIds().stream() .map(i -> { OaApprovalApplicationAssetItem item = new OaApprovalApplicationAssetItem(); item.setApprovalApplicationId(applications.getId()); - item.setAssetMainId(i.getAssetMainId()); + item.setAssetMainId(i); return item; }) .collect(Collectors.toList()); @@ -110,8 +117,7 @@ asset.setTitle(dto.getTitle()); asset.setAssetTypeId(dto.getAssetTypeId()); asset.setOperateTime(dto.getOperateTime()); - asset.setExpectReturnDate(dto.getExpectReturnDate()); - asset.setType(Boolean.FALSE); // 0-领用 + asset.setType(AssetOperateTypeEnum.RECEIVE.getCode()); return asset; } @@ -130,4 +136,38 @@ String sequenceStr = String.format("%03d", sequence); return prefix + sequenceStr; } + + @Override + public IPage<OaApprovalApplicationAssetPageVO> getReceivePageList(OaApprovalApplicationAssetPageQuery pageQuery) { + Page<OaApprovalApplicationAssetPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + pageQuery.setType(0);//领用 + return this.baseMapper.getPageByType(page, pageQuery); + } + + @Override + public OaApprovalApplicationAssetDetailVO getDetail(Integer id) { + OaApprovalApplications app = oaApprovalApplicationsService.getById(id); + if (app == null) { + throw new ServiceException("审批主记录不存在"); + } + OaApprovalApplicationAsset detail = this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, app.getId()).one(); + if (detail == null) { + throw new ServiceException("记录不存在"); + } + + List<OaApprovalApplicationAssetItem> items = oaApprovalApplicationAssetItemService.lambdaQuery() + .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId()) + .list(); + + OaApprovalApplicationAssetDetailVO vo = new OaApprovalApplicationAssetDetailVO(); + vo.setItems(items); + return vo; + } + + @Override + public IPage<OaApprovalApplicationAssetPageVO> getBorrowPageList(OaApprovalApplicationAssetPageQuery pageQuery) { + Page<OaApprovalApplicationAssetPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + pageQuery.setType(1); + return this.baseMapper.getPageByType(page, pageQuery); + } } -- Gitblit v1.7.1