package com.shkj.wms.service;

import com.shkj.common.core.domain.Result;
import com.shkj.wms.domain.SysStockDetailQrcode;
import com.shkj.wms.vo.SysStockDetailQrcodeVo;
import com.shkj.wms.bo.SysStockDetailQrcodeQueryBo;
import com.shkj.wms.bo.SysStockDetailQrcodeAddBo;
import com.shkj.wms.bo.SysStockDetailQrcodeEditBo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 已建表-库存明细产品信息Service接口
 *
 * @author lch
 * @date 2023-05-07
 */
public interface ISysStockDetailQrcodeService extends IService<SysStockDetailQrcode> {
	/**
	 * 查询单个
	 *
     * @param id
     * @return
     */
	Result<SysStockDetailQrcodeVo> queryById(Long id);

	/**
     * 查询列表
     *
     * @param bo
     * @return
     */
	List<SysStockDetailQrcodeVo> queryList(SysStockDetailQrcodeQueryBo bo);

	/**
	 * 根据新增业务对象插入已建表-库存明细产品信息
	 * @param bo 已建表-库存明细产品信息新增业务对象
	 * @return
	 */
	Result<Boolean> insertByAddBo(SysStockDetailQrcodeAddBo bo);

	/**
	 * 根据编辑业务对象修改已建表-库存明细产品信息
	 * @param bo 已建表-库存明细产品信息编辑业务对象
	 * @return
	 */
	Result<Boolean> updateByEditBo(SysStockDetailQrcodeEditBo bo);

	/**
	 * 校验并删除数据
	 * @param ids 主键集合
	 * @param isValid 是否校验,true-删除前校验,false-不校验
	 * @return
	 */
	Result<Boolean> deleteWithValidById(List<Long> ids, Boolean isValid);


	/**
	 * 入库产品明细保存
	 *
	 * @param detailId  库存明细ID
	 * @param goods       入库产品信息
	 * @return
	 */
	Result<Boolean> depositGoods(Long detailId, Map<String, String> goods);

}
