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

import cn.iocoder.yudao.module.stockOperate.entity.DlRepairSo;
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoReqVO;
import cn.iocoder.yudao.module.stockOperate.vo.DlRepairSoRespVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 针对表【dl_repair_so(采购单领料单)】的数据库操作Service
 *
 * @author 小李
 * @date 9:09 2024/9/13
 **/
public interface DlRepairSoService extends IService<DlRepairSo> {

    /**
     * 采购单/领料单 新增
     *
     * @param repairSoRespVO 采购单对象
     * @author 小李
     * @date 10:49 2024/9/14
     **/
    void createRepairSo(DlRepairSoRespVO repairSoRespVO);

    /**
     * 采购单/领料单新增分页
     *
     * @param repairSoReqVO 查询对象
     * @author 小李
     * @date 18:14 2024/9/14
     **/
    IPage<DlRepairSo> getRepairSoPage(DlRepairSoReqVO repairSoReqVO, Page<DlRepairSo> page);

    /**
     * 采购单/领料单 作废
     *
     * @param repairSoReqVO 作废对象
     * @author 小李
     * @date 11:12 2024/9/18
     **/
    void voidRepairSo(DlRepairSoReqVO repairSoReqVO);

    /**
     * 采购单/领料单 查看
     *
     * @param id 主键
     * @author 小李
     * @date 9:34 2024/9/22
     **/
    DlRepairSoRespVO getRepairSoById(String id);

    /**
     * 员工确认领料
     *
     * @param id 单据ID 领料单主表
     * @author 小李
     * @date 11:58 2024/10/21
     **/
    void confirmGet(String id);

    /**
     * 员工确认退料
     *
     * @param id 退料单主表ID
     * @author 小李
     * @date 19:41 2024/10/21
     **/
    void confirmBack(String id);

    /**
     * 采购入库
     *
     * @param reqVO （接参实体中需传入：采购单id，子表中商品id，子表中入库数量inCount）
     * @author PQZ
     * @date 14:32 2024/10/24
     **/
    void inWare(DlRepairSoReqVO reqVO);
}
