package com.bonus.material.purchase.mapper;

import java.util.List;
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;

/**
 * 新购验收任务Mapper接口
 *
 * @author xsheng
 * @date 2024-10-16
 */
public interface PurchaseCheckInfoMapper {
    /**
     * 查询新购验收任务
     *
     * @param id 新购验收任务主键
     * @return 新购验收任务
     */
    PurchaseCheckInfo selectPurchaseCheckInfoById(Long id);

    /**
     * 查询新购验收任务列表--单表基础查询
     *
     * @param purchaseCheckInfo 新购验收任务
     * @return 新购验收任务集合
     */
    List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseCheckInfo purchaseCheckInfo);

    /**
     * 查询新购验收任务列表--多表关联查询
     *
     * @param purchaseQueryDto 新购验收任务
     * @return 新购验收任务集合
     */
    List<PurchaseCheckInfo> selectPurchaseCheckInfoJoinList(PurchaseQueryDto purchaseQueryDto);

    /**
     * 根据任务id查询任务单外层信息
     * @param taskId 任务id
     */
    PurchaseCheckFormVo selectPurchaseCheckFormVoByTaskId(Long taskId);



    /**
     * 新增新购验收任务
     *
     * @param purchaseCheckInfo 新购验收任务
     * @return 结果
     */
    int insertPurchaseCheckInfo(PurchaseCheckInfo purchaseCheckInfo);

    /**
     * 修改新购验收任务
     *
     * @param purchaseCheckInfo 新购验收任务
     * @return 结果
     */
    int updatePurchaseCheckInfo(PurchaseCheckInfo purchaseCheckInfo);

    /**
     * 删除新购验收任务
     *
     * @param id 新购验收任务主键
     * @return 结果
     */
    int deletePurchaseCheckInfoById(Long id);

    /**
     * 批量删除新购验收任务
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deletePurchaseCheckInfoByIds(Long[] ids);

    List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto);
}
