package cn.iocoder.yudao.module.project.service;

import cn.iocoder.yudao.module.project.entity.RepairWares;
import cn.iocoder.yudao.module.project.vo.RepairWaresPageReqVO;
import cn.iocoder.yudao.module.project.vo.RepairWaresRespVO;
import cn.iocoder.yudao.module.project.vo.RepairWaresSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 配件库 Service 接口
 *
 * @author pqz
 */
public interface RepairWaresService extends IService<RepairWares> {


    /**
     * 保存配件库
     *
     * @param saveReqVO RepairWaresSaveReqVO实体
     * @author PQZ
     * @date 9:33 2024/9/18
     **/
    RepairWares saveWares(RepairWaresSaveReqVO saveReqVO);

    /**
     * @param id 配件id
     * @author PQZ
     * @date 9:37 2024/9/18
     **/
    void deleteWares(String id);

    /**
     * 根据id获取配件信息
     *
     * @param id id
     * @return cn.iocoder.yudao.module.project.vo.RepairWaresRespVO
     * @author PQZ
     * @date 10:52 2024/9/18
     **/
    RepairWaresRespVO getWares(String id);

    /**
     * 分页获取配件库
     *
     * @param pageReqVO RepairWaresPageReqVO实体
     * @param page      分页信息
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.project.vo.RepairWaresRespVO>
     * @author PQZ
     * @date 10:53 2024/9/18
     **/
    IPage<RepairWaresRespVO> getWaresPage(RepairWaresPageReqVO pageReqVO, Page<RepairWaresRespVO> page);

    /**
     * 根据名称获取最新的数据
     *
     * @author 小李
     * @date 18:03 2024/9/25
     **/
    RepairWaresRespVO getWaresByName(String name);

    /**
     * 查询所有有配件的分配
     * @author vinjor-M
     * @date 10:53 2024/10/22
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.String>>
    **/
    List<Map<String,String>> getAllTypeList();

    /**
     * 通过id查询集合
     * @author PQZ
     * @date 14:56 2024/10/24
     * @param idList waresId集合
     * @return java.util.List<cn.iocoder.yudao.module.project.entity.RepairWares>
    **/
    List<RepairWares> listByIds(List<String> idList);
}