package com.bailuntec.mapper;

import com.bailuntec.domain.entity.DcBaseStock;
import com.bailuntec.domain.example.DcBaseStockExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DcBaseStockMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    long countByExample(DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int deleteByExample(DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int insert(DcBaseStock record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int insertSelective(DcBaseStock record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    DcBaseStock selectOneByExample(DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    List<DcBaseStock> selectByExample(DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    DcBaseStock selectByPrimaryKey(Integer id);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int updateByExampleSelective(@Param("record") DcBaseStock record, @Param("example") DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int updateByExample(@Param("record") DcBaseStock record, @Param("example") DcBaseStockExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int updateByPrimaryKeySelective(DcBaseStock record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     */
    int updateByPrimaryKey(DcBaseStock record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    int upsert(DcBaseStock record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_stock
     *
     * @mbg.generated
     * @project https://github.com/itfsw/mybatis-generator-plugin
     */
    int upsertSelective(DcBaseStock record);

    void supplementOrderSku();

    void supplementTransitSku();

    void supplementPurchaseSku();

    void insertDailyStock();


    List<DcBaseStock> listStockById(@Param("v1") int v1, @Param("v2") int v2);

    List<DcBaseStock> listParameterStockById(@Param("jobParameter")String jobParameter,@Param("v1") int v1, @Param("v2") int v2);

    List<DcBaseStock> listWarehouseStockById(@Param("warehouseCode")String warehouseCode,@Param("v1") int v1, @Param("v2") int v2);

    List<DcBaseStock> listInStockNotInAutoTurnover();

    long countByParam(@Param("jobParameter") String jobParameter);

    long countByWarehouseCode(@Param("warehouseCode")String warehouseCode);
}