package com.hzs.system.config.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.config.BdBarCode;
import com.hzs.common.domain.system.config.ext.BdBarCodeExt;
import com.hzs.system.config.param.BdBarCodeParam;

import java.util.List;

/**
 * 条码配置 服务类
 *
 * @author hzs
 * @since 2022-10-17
 */
public interface IBdBarCodeService extends IService<BdBarCode> {

    /**
     * @description: 查询条形码配置表
     * @author: zhang jing
     * @date: 2022/10/18 15:40
     * @param: [barCode]
     * @return: java.util.List<com.hzs.common.domain.system.config.BdBarCode>
     **/
    List<BdBarCodeExt> queryBarCodeList(BdBarCodeExt barCodeExt);

    /**
     * @description: 查询单条条形码配置信息
     * @author: zhang jing
     * @date: 2022/10/18 17:37
     * @param: [barCode]
     * @return: com.hzs.common.domain.system.config.BdBarCode
     **/
    BdBarCode getOneBarCode(Long pkId);

    /**
     * @description: 定时初始化条形码配置
     * @author: zhang jing
     * @date: 2024/5/8 11:08
     * @param: []
     * @return: void
     **/
    Boolean updatWarehouseLog();

    /**
     * 更新条码使用数量
     *
     * @param idList    条码明细ID列表
     * @param type      变动类型（减少=-1，增加=1）
     * @param userId    用户ID
     * @param pkCountry 国家ID
     * @return
     */
    int updateUsedBarCode(List<Integer> idList, Integer type, Long userId, Integer pkCountry);

    /**
     * @description: 追溯码查询特殊产品
     * @author: zhang jing
     * @date: 2023/8/14 9:46
     * @param: [barCodeExt]
     * @return: com.hzs.common.domain.system.config.ext.BdBarCodeExt
     **/
    BdBarCodeExt querySpecialProduct(BdBarCode barCode);

}
