mitao
1 天以前 c758c4e55d74a34902dac5752ff4f160118b19bc
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java
@@ -7,6 +7,7 @@
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;
@@ -49,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());
@@ -115,8 +117,7 @@
        asset.setTitle(dto.getTitle());
        asset.setAssetTypeId(dto.getAssetTypeId());
        asset.setOperateTime(dto.getOperateTime());
        asset.setExpectReturnDate(dto.getExpectReturnDate());
        asset.setType(0); // 0-领用
        asset.setType(AssetOperateTypeEnum.RECEIVE.getCode());
        return asset;
    }
@@ -139,19 +140,21 @@
    @Override
    public IPage<OaApprovalApplicationAssetPageVO> getReceivePageList(OaApprovalApplicationAssetPageQuery pageQuery) {
        Page<OaApprovalApplicationAssetPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
        return this.baseMapper.selectReceivePage(page, pageQuery);
        pageQuery.setType(0);//领用
        return this.baseMapper.getPageByType(page, pageQuery);
    }
    @Override
    public OaApprovalApplicationAssetDetailVO getDetail(Integer id) {
        OaApprovalApplicationAsset detail = this.getById(id);
        if (detail == null) {
            throw new ServiceException("记录不存在");
        }
        OaApprovalApplications app = oaApprovalApplicationsService.getById(detail.getApprovalApplicationId());
        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();
@@ -160,4 +163,11 @@
        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);
    }
}