package com.shkj.wms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shkj.common.core.domain.Result;
import com.shkj.wms.bo.*;
import com.shkj.wms.domain.BaseBarcodesIn;
import com.shkj.wms.domain.BaseBarcodesOut;
import com.shkj.wms.domain.BusinBillhead;
import com.shkj.wms.vo.BusinBillHeadPlanOutVo;
import com.shkj.wms.vo.BusinBillHeadVo;
import com.shkj.wms.vo.BusinBillHeadbodyInVo;

import java.util.Date;
import java.util.List;

/**
 * 出入库单汇总Service接口
 *
 * @author zjx
 * @date 2023-04-07
 */
public interface IBusinBillheadService  extends IService<BusinBillhead>
{

    /**
     * 新增出入库单汇总
     *
     * @param bo bo
     * @return 结果
     */
    public Boolean insertBusinBillhead(BusinBillHeadAddBo bo);

    /**
     * 新增出入库单汇总
     *
     * @param billhead bo
     * @return 结果
     */
    public Boolean insertBusinBillhead(BusinBillhead billhead);


    /**
     * 查询出库汇总及明细
     *
     * @param bo bo
     * @return 结果
     */
    public BusinBillHeadVo queryBillHeadAndBody(BusinBillHeadBodyQueryBo bo);

    /**
     * 获取过点时间出库单
     *
     * @param traverseDate
     * @return 结果
     */
    public BusinBillhead getBusinBillHeadByTraverseDate(Date traverseDate);

    /**
     * 新增入库单，扫描的条码信息，治具信息
     *
     * @param billTaskAddbo
     * @return 结果
     */
    public Result<Boolean> saveBillTaskIn(BillTaskAddbo billTaskAddbo);

    /**
     * 出库计划管理
     *
     * @param
     * @return 结果
     */
    public List<BusinBillHeadPlanOutVo> getBillHeadBodyPlanOut(BaseBarcodesOutQueryBo bo);


    /**
     * 根据任务单号查询出入库明细
     *
     * @param bo 任务单号
     * @return 结果
     */
    public List<BusinBillHeadbodyInVo> getBillHeadBodyInOutData(BusinBillHeadBodyQueryBo bo);


    /**
     * 紧急出库，确认按钮
     *
     * @param
     * @return 结果
     */
    public Result<Boolean> saveBillHeadBodyOut(List<BaseBarcodesOutAddBo> bos) ;



}
