package com.sckw.transport.api.dubbo;

import com.sckw.core.web.response.HttpResult;
import com.sckw.transport.api.model.dto.AddressResDTO;
import com.sckw.transport.api.model.param.LogisticsOrderParam;
import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
import com.sckw.transport.api.model.vo.LogisticsOrderVO;

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

/**
 * @author lfdc
 * @version 1.0
 * @className TransportDubboService
 * @description 物流订单dubbo
 * @company sckw
 * @date 2023-07-17 10:06:27
 */
public interface TransportDubboService {

    /**
     * 根据id 获取主表详情
     *
     * @param ids
     * @return
     */
    List<KwtLogisticsOrderVO> getAcceptCarriageOrderDetail(List<String> ids);

    /**
     * 根据id 对账页面需要的数据
     *
     * @param ids
     * @return
     */
    List<LogisticsOrderVO> getAcceptCarriageOrderList(List<String> ids);

    /**
     * 获取物流订单中地址信息
     *
     * @return
     */
    List<Integer> getLogisticsOrderAddressList();

    /**
     * 根据企业id获取物流订单地址信息
     *
     * @param entId 企业id
     * @return
     */
    List<AddressResDTO> getLogisticsOrderAddressListByEntId(Long entId);

    /**
     * 贸易订单验证物流订单是否已完成
     *
     * @param tOrderId 贸易订单id
     * @return
     */
    boolean checkLogisticsOrderByTradeOrderId(Long tOrderId);

    /**
     * 对账修改物流订单信息
     *
     * @param logisticsOrderParam 请求物流订单数据
     * @return
     */
    HttpResult checkLogisticsOrderStatusById(LogisticsOrderParam logisticsOrderParam);

    /**
     * 根据企业id获取物流订单地址信息
     *
     * @param entIds 企业id
     * @return
     */
    Map<Long, List<AddressResDTO>> getLogisticsOrderAddressListByEntId(List<Long> entIds);
}
