package com.sckw.transport.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sckw.transport.model.KwtWaybillOrderAddress;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @author zk
 * @desc 车辆运单地址
 * @date 2023/10/16
 */
@Mapper
public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrderAddress> {

    /**
     * 查询车辆运单装卸货地址信息
     * @param wOrderId 车辆订单id
     * @param addressType 地址类型（1装货地址、2卸货地址）
     * @desc 查询车辆运单装卸货地址信息
     * @author zk
     * @date 2023/7/20
     * @return 运单地址信息
     **/
    KwtWaybillOrderAddress findByAddress(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);

    /**
     * 查询运单地址信息
     * @param wOrderId 运单ID
     * @param addressType 地址类型
     * @return 地址信息集
     */
    List<KwtWaybillOrderAddress> findByAddresses(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);

    /**
     * 查询运单地址信息
     * @param wSubtaskId 运单子单ID
     * @param addressType 地址类型
     * @return 地址信息集
     */
    List<KwtWaybillOrderAddress> findBySubtaskId(@Param("wSubtaskId") Long wSubtaskId, @Param("addressType") Integer addressType);

    /**
     * 查询运单地址信息
     * @param lAddressIds 物流订单地址ID
     * @return 地址信息集
     */
    List<KwtWaybillOrderAddress> findByLAddressIds(@Param("wOrderId") Long wOrderId, @Param("lAddressIds") List<Long> lAddressIds);

    /**
     * 查询车辆运单装卸货地址CODE
     * @param entId 企业信息
     * @param addressType 地址类型（1装货地址、2卸货地址）
     * @desc 查询车辆运单装卸货地址CODE
     * @author zk
     * @date 2023/7/20
     * @return 运单地址code
     **/
    List<Integer> findAddressCodeList(@Param("entId") Long entId, @Param("addressType") Integer addressType);
}