package net.lab1024.sa.admin.module.business.wms.receive.asnDetail.service;

import net.lab1024.sa.admin.module.business.wms.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.wms.receive.asnDetail.domain.form.AsnDetailQueryForm;
import net.lab1024.sa.admin.module.business.wms.receive.asnDetail.domain.vo.AsnDetailVO;
import net.lab1024.sa.base.common.domain.PageResult;


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

public interface AsnDetailQueryService {
    /**
     * 分页查询
     *
     * @param queryForm 查询条件
     * @return PageResult<AsnDetailVO>
     */
    PageResult<AsnDetailVO> queryPage(AsnDetailQueryForm queryForm);

    /**
     * 根据入库单id查询入库单详情
     *
     * @param asnId 入库单id
     * @return List<AsnDetailEntity>
     */
    List<AsnDetailEntity> queryAsnDetailByAsnId(Long asnId);

    /**
     * 根据入库单ids查询入库单详情
     *
     * @param asnIds 入库单id
     * @return List<AsnDetailEntity>
     */
    List<AsnDetailEntity> queryAsnDetailByAsnIds(List<Long> asnIds);

    /**
     * 根据ids查询入库明细
     *
     * @param idList 入库明细集合
     * @return List<AsnDetailEntity>
     */
    List<AsnDetailEntity> queryByAsnDetailIds(List<Long> idList);

    /**
     * 根据明细集合查询明细信息
     *
     * @param idList 明细集合
     * @return Map<String, AsnDetailEntity>
     */
    Map<Long, AsnDetailEntity> queryByAsnDetailIdsToMap(List<Long> idList);
}
