package com.sckw.fleet.api;

import com.sckw.fleet.api.model.vo.RDriverDetailVo;
import com.sckw.fleet.api.model.vo.RDriverVo;
import com.sckw.fleet.api.model.vo.RTruckVo;
import org.apache.ibatis.annotations.Param;

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

/**
 * @author zk
 * @desc 车队服务
 * @date 2023/7/18 0018
 */
public interface RemoteFleetService {

    /**
     * @param driverIds 司机档案主键id，多个已逗号隔开
     * @desc 查询司机信息
     * @author zk
     * @date 2023/7/18
     **/
    Map<Long, RDriverVo> findDriver(List<Long> driverIds);

    /**
     * @param driverId 司机档案主键id
     * @desc 查询司机信息
     * @author zk
     * @date 2023/8/3
     **/
    RDriverVo findDriver(Long driverId);

    /**
     * @param phone 司机档手机号
     * @desc 查询司机信息
     * @author zk
     * @date 2023/8/10
     **/
    RDriverDetailVo findDriverDetai(String phone);

    /**
     * @param params 司机档案信息
     * @desc 更新司机信息
     * @author zk
     * @date 2023/8/3
     **/
    int updateById(RDriverVo params);

    /**
     * @param truckNos 车牌号，多个已逗号隔开
     * @desc 查询车辆信息
     * @author zk
     * @date 2023/7/18
     **/
    Map<String, RTruckVo> findTruck(List<String> truckNos);

    /**
     * @param truckId 车辆档案主键id
     * @desc 查询车辆信息
     * @author zk
     * @date 2023/8/3
     **/
    RTruckVo findTruck(Long truckId);

    /**
     * @param params 车辆档案信息
     * @desc 更新车辆档案
     * @author zk
     * @date 2023/8/3
     **/
    int updateById(RTruckVo params);

    /**
     * @param entIds 企业ID
     * @desc 企业运力统计
     * @author zk
     * @date 2023/9/4
     **/
    List<Map<String, Object>> capacityStatistics(List<Long> entIds, Integer capacityAmountMin, Integer capacityAmountMax);
}
