package com.zbf.system.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper; //添加
import com.zbf.system.domain.TRkWareNotice;
import com.zbf.system.domain.TRkWareNoticeTab;

/**
 * 入库通知单Mapper接口
 *
 * @author tony
 * @date 2024-06-18
 */
public interface TRkWareNoticeMapper extends BaseMapper<TRkWareNotice> //修改
{
    /**
     * 查询入库通知单
     *
     * @param id 入库通知单主键
     * @return 入库通知单
     */
    public TRkWareNotice selectTRkWareNoticeById(String id);

    /**
     * 查询入库通知单
     *
     * @param id 入库通知单主键
     * @return 入库通知单
     */
    public TRkWareNotice selectTRkWareNoticeByNoticeId(String id);

     /**
     * 查询入库通知单
     *
     * @param id 入库通知单主键
     * @return 入库通知单
     */
    public TRkWareNotice selectTRkWareNoticeByDeliveryId(String id);

    /**
     * 查询入库通知单列表
     *
     * @param tRkWareNotice 入库通知单
     * @return 入库通知单集合
     */
    public List<TRkWareNotice> selectTRkWareNoticeList(TRkWareNotice tRkWareNotice);

    /**
     * 导出入库通知单列表
     *
     * @param tRkWareNotice 入库通知单
     * @return 入库通知单集合
     */
    public List<TRkWareNotice> exportTRkWareNoticeList(TRkWareNotice tRkWareNotice);

    /**
     * 新增入库通知单
     *
     * @param tRkWareNotice 入库通知单
     * @return 结果
     */
    public int insertTRkWareNotice(TRkWareNotice tRkWareNotice);

    /**
     * 修改入库通知单
     *
     * @param tRkWareNotice 入库通知单
     * @return 结果
     */
    public int updateTRkWareNotice(TRkWareNotice tRkWareNotice);

    /**
     * 删除入库通知单
     *
     * @param id 入库通知单主键
     * @return 结果
     */
    public int deleteTRkWareNoticeById(String id);

    /**
     * 删除入库通知单明细
     * @param ids
     * @return
     */
    public int deleteTRkWareNoticeTabByIds(String[] ids);

    /**
     * 根据ID查询入库通知单明细数据（判断是否存在部分收货的）
     * @param ids
     * @return
     */
    public int selectTRkWareNoticeTabByIds(String[] ids);

    /**
     * 根据ID查询入库通知单明细数据
     * @param id
     * @return
     */
    public TRkWareNoticeTab selectTRkWareNoticeTabById(String id);

    /**
     * 批量删除入库通知单
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTRkWareNoticeByIds(String[] ids);

    /**
     * 批量启用入库通知单
     *
     * @param ids 需要启用的数据主键集合
     * @return 结果
     */
    public int enableTRkWareNoticeByIds(String[] ids);

    /**
     * 批量禁用入库通知单
     *
     * @param ids 需要禁用的数据主键集合
     * @return 结果
     */
    public int disabledTRkWareNoticeByIds(String[] ids);


    /**
     * 批量删除入库通知单明细
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTRkWareNoticeTabByNoticeIds(String[] ids);

    /**
     * 批量新增入库通知单明细
     *
     * @param tRkWareNoticeTabList 入库通知单明细列表
     * @return 结果
     */
    public int batchTRkWareNoticeTab(List<TRkWareNoticeTab> tRkWareNoticeTabList);


    /**
     * 通过入库通知单主键删除入库通知单明细信息
     *
     * @param id 入库通知单ID
     * @return 结果
     */
    public int deleteTRkWareNoticeTabByNoticeId(String id);

    /**
     * 通过入库通知单ID删除
     * @param noticeId
     * @return
     */
    public int deleteNoticeTabByNoticeId(String noticeId);

    /**
     * 批量更新入库通知单明细
     * @param noticeTabs
     * @return
     */
    public int updateForeach(List<TRkWareNoticeTab> noticeTabs);

    int homeCount(TRkWareNotice tRkWareNotice);

    /**
     * 根据来源单号查询
     * @param deliveryId
     * @return
     */
    int selectTRkWareNoticeByOrginalId(String deliveryId);

}
