package com.prolog.cs.biz.outbound.dao;

import com.prolog.cs.biz.outbound.model.entity.WaveStorageDO;
import com.prolog.cs.biz.outbound.model.vo.WaveStorageVO;
import com.prolog.entity.vo.OutBoundRequestItemVO;
import com.prolog.framework.dao.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface WaveStorageMapper extends BaseMapper<WaveStorageDO> {
    List<WaveStorageVO> findWaveStorage(@Param("warehouseId") String warehouseId,
                                        @Param("waveId") String waveId,
                                        @Param("billId") String billId,
                                        @Param("billDId") String billDId,
                                        @Param("itemCode") String itemCode,
                                        @Param("locatorId") String locatorId,
                                        @Param("billCode") String billCode);

    long updateRelationWithMoveTask(@Param("billId") String billId);

    List<WaveStorageDO> getStorageByPickTaskDId(@Param("pickTaskDId") String pickTaskDId);

    List<WaveStorageDO> getStorageByPickTaskDIds(@Param("pickTaskDIds") List<String> pickTaskDIds);

    List<WaveStorageDO> getStorageListByBarCode(@Param("barcode")String barcode);

    List<OutBoundRequestItemVO> getOutbound4EisByWaveId(@Param("waveId") String waveId);

    List<WaveStorageDO> getGiftItemByWaveId(@Param("waveId") String waveId);
}
