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

import cn.iocoder.yudao.module.tickets.entity.DlTicketWares;
import cn.iocoder.yudao.module.tickets.vo.DlTicketWaresReqVO;
import cn.iocoder.yudao.module.tickets.vo.DlTicketWaresRespVO;
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;

/**
 * 针对表【dl_ticket_wares(工单配件申请/退回表)】的数据库操作Service
 *
 * @author 小李
 * @date 11:56 2024/10/15
**/
public interface DlTicketWaresService extends IService<DlTicketWares> {

    /**
     * 分页查询
     *
     * @author 小李
     * @date 12:01 2024/10/15
     * @param reqVO 请求对象
     **/
    IPage<DlTicketWares> getPage(DlTicketWaresReqVO reqVO, Page<DlTicketWares> page);

    /**
     * 查询当前工单下的配件申请单
     * @author PQZ
     * @date 13:44 2024/10/19
     * @param reqVO DlTicketWaresReqVO
     * @return java.util.List<cn.iocoder.yudao.module.tickets.entity.DlTicketWares>
    **/
    List<DlTicketWares> listByTicket(DlTicketWaresReqVO reqVO);

    /**
     * 新增、修改
     *
     * @author 小李
     * @date 12:14 2024/10/15
     * @param respVO 请求对象
     **/
    void updateTicketWares(DlTicketWaresRespVO respVO);

    /**
     * 删除
     *
     * @author 小李
     * @date 12:21 2024/10/15
     * @param id id
     **/
    void removeTicketWares(String id);

    /**
     * 审核
     *
     * @author 小李
     * @date 21:15 2024/10/15
     * @param respVO 请求对象
     **/
    void auditTicketWares(DlTicketWaresRespVO respVO);

    /**
     * 仓库通知领料、退料
     *
     * @author 小李
     * @date 20:45 2024/10/16
     * @param respVO 请求对象
     **/
    void passTicketWares(DlTicketWaresRespVO respVO);

    /**
     * 员工确认领料
     *
     * @author 小李
     * @date 22:07 2024/10/16
     * @param respVO 请求对象
     **/
    void repairPassTicketWares(DlTicketWaresRespVO respVO);

    /**
     * 仓库确认退料
     *
     * @author 小李
     * @date 22:03 2024/10/17
     * @param respVO 请求对象
     **/
    void passBackTicketWares(DlTicketWaresRespVO respVO);

    /**
     * 创建配件申请单
     * @author vinjor-M
     * @date 14:48 2024/10/22
     * @param respVO 请求体
    **/
    void createApplyOrder(DlTicketWaresRespVO respVO);

    /**
     * 维修工的角度查提交的配件申请单 待处理数量
     * @author vinjor-M
     * @date 15:38 2024/10/22
    **/
    Map<String,Integer> getWorkerTodo();
}
