package com.ruoyi.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageGeneralDTO;
import com.ruoyi.system.dto.asset.OaApprovalApplicationStoragePropertyDTO;
import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageVehicleDTO;
import com.ruoyi.system.model.OaApprovalApplicationStorage;
import com.ruoyi.system.query.ApprovalDetailQuery;
import com.ruoyi.system.query.OaApprovalApplicationStoragePageQuery;
import com.ruoyi.system.vo.StorageListVO;
import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO;
import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageGeneralDetailVO;
import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePropertyDetailVO;
import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageVehicleDetailVO;
/**
*
* 资产入库申请明细表 服务类
*
*
* @author WuGuanFengYue
* @since 2025-09-15
*/
public interface OaApprovalApplicationStorageService extends IService {
/**
* 提交通用资产入库申请
*
* @param dto 通用资产入库申请DTO
*/
void submitGeneralAssetStorage(OaApprovalApplicationStorageGeneralDTO dto);
/**
* 提交房产资产入库申请
*
* @param dto 房产资产入库申请DTO
*/
void submitPropertyAssetStorage(OaApprovalApplicationStoragePropertyDTO dto);
/**
* 提交车辆资产入库申请
*
* @param dto 车辆资产入库申请DTO
*/
void submitVehicleAssetStorage(OaApprovalApplicationStorageVehicleDTO dto);
/**
* 获取资产入库申请分页列表
* @param pageQuery 查询条件
* @return 分页数据
*/
IPage getPageList(OaApprovalApplicationStoragePageQuery pageQuery);
/**
* 获取通用资产入库申请详情
* @param approvalApplicationId 入库申请存储表ID
*/
OaApprovalApplicationStorageGeneralDetailVO getGeneralDetail(Integer approvalApplicationId);
/**
* 获取房产资产入库申请详情
* @param approvalApplicationId 入库申请存储表ID
*/
OaApprovalApplicationStoragePropertyDetailVO getPropertyDetail(Integer approvalApplicationId);
/**
* 获取车辆资产入库申请详情
* @param approvalApplicationId 入库申请存储表ID
*/
OaApprovalApplicationStorageVehicleDetailVO getVehicleDetail(Integer approvalApplicationId);
PageInfo pageList(ApprovalDetailQuery query);
/**
* 根据审批单ID删除入库申请
* @param id
*/
void removeByApplicationId(Integer id);
}