package com.steerinfo.dil.mapper;

import org.mapstruct.Mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 通用接口
 * @ author    :TXF
 * @ time      :2021/10/19 18:03
 */

@Mapper
public interface UniversalMapper {
     int updateLineSqe(Map<String, Object> map);

    //通过运输订单号查询订单信息
    Map<String, Object> getTiHuoDan(String orderNumber);

    //通过运输订单号查找订单子表物资信息
    List<Map<String, Object>> getOOMMes(String orderNumber);

    //模糊查询所有物资
    List<Map<String, Object>> queryAPOMaterialByLike(Map<String, Object> map);

    //模糊查询发货单位
    List<Map<String, Object>> querySupplierByLike(Map<String, Object> map);

    //模糊查询承运商的运力信息
    List<Map<String, Object>> getAllCapacityByCarrierLike(Map<String, Object> map);

    //通过运输订单ID查询物资子表(针对多拼)
    List<Map<String, Object>> getMaterialMesByOrderId(Map<String, Object> map);

    //通过订单ID查询订单下所有物资
    List<Map<String, Object>> getOrderMaterialMesByOrderId(BigDecimal orderId);

    //通过物资ID查询该物资的发货单位信息
    List<Map<String, Object>> getSupplierMesByMaterialId(Map<String, Object> map);

    //模糊查询所有的卸货点信息
    List<Map<String, Object>> getUnloadingMesByLike(Map<String, Object> map);

    //模糊查询所有物资
    List<Map<String, Object>> queryMaterialByLike(Map<String, Object> map);

    //查询所有的批次及其关联的采购订单号
    List<Map<String, Object>> getBatchAndOrderMes(Map<String, Object> map);

    //承运商边输边查
    List<Map<String, Object>> getCarrierMesByLike(String index);

    //边输边查发货单位
    List<Map<String, Object>> getSupplierMesByLike(String index);

    //边输边查收货单位
    List<Map<String,Object>> getConsigneeByLike(String index);

    // 收货单位
    List<Map<String, Object>> queryConsigneeByLike(Map<String, Object> mapValue);

    // 所有物资
    List<Map<String, Object>> selectAllMaterialName(Map<String, Object> mapValue);

    // 所有承运商
    List<Map<String, Object>> getCarrierListByLike(Map<String, Object> mapValue);

    //查卸货点
    List<Map<String, Object>> selectUnloadingPoint();

    // 查询所有门岗
    List<Map<String, Object>> getAllGatepost();

    //获取承运商下拉框
    List<Map<String,Object>> getAllCarrierIdForSso();

    //根据承运商id获取userId
    String getUserIdbyCarrierId(Integer carrierId);

    // 模糊查询收货单位
    List<Map<String, Object>> getConsigneeListByLike(Map<String, Object> mapValue);

    //模糊查询所有发货单位
    List<Map<String, Object>> queryAllSupplierByLike(Map<String, Object> mapValue);

    // 通过ssoId查询承运商id
    BigDecimal getCarrierIdBySSO(String carrierSsoId);

    Integer getSaleOrderStatus(BigDecimal orderId);

    //通过运输订单号查询订单类型和ID
        Map<String, Object> getOrderMesByOrderNumber(String orderNumber);

    //查询所有的门岗(下拉框)
    List<Map<String, Object>> getAllCalculateMes();

    //查询所有的焦炭子类
    List<Map<String, Object>> getAllMaterialCoke();


    //边输边查发货单位
    List<Map<String, Object>> getCapacityByLike(String index);

    //模糊查询批次品名
    List<Map<String, Object>> getBatchByLike(String index);

    // 根据运力id查询所有承运商
    List<Map<String, Object>> getCarrierByCapacityId(BigDecimal capacityId);

    // 根据收货客户查询承运商
    Map<String, Object> getCarrierByConsignee(String consigneeName);

    // 确认车牌号与承运商关系是否存在
    BigDecimal isInCapacityCarrier(Map<String, Object> mapValue);

    BigDecimal isInCapacity(Map<String, Object> mapValue);

    List<Map<String, Object>> getOilFormula(Map<String, Object> mapValue);

    //边输边查用车单位
    List<Map<String, Object>> getRequireUnitName(String index);

    //获得港口下拉框
    List<Map<String, Object>> getPortId();

    //根据车牌号查询正在运输的订单号
    Map<String, Object> getOrderNumber(String num);

    //查询车牌号
    List<Map<String, Object>> getCapacityNumber(String num);

    //根据订单Id查询物资
    List<Map<String, Object>> getMaterialIdByOrderId(Integer orderId);

    //边输边查物资
    List<Map<String, Object>> getMaterialByLike(String index);

    Map<String, Object> getRmsCarrierByCarrierSsoId(String carrierSsoId);

    //边输边查物资
    List<Map<String, Object>> getSteelMaterial(Map<String, Object> mapValue);

    // 得到所有省份
    List<Map<String, Object>> getAllProvince();

    // 通过省份得到省份下面的市
    List<Map<String, Object>> getDistrictByProvince(String addressProvince);

    // 通过市得到市下面的区和县
    List<Map<String, Object>> getTownByDistrict(String addressDistrict);

    // 通过省市县得到具体地址
    List<Map<String, Object>> getPlaceByAllAddress(Map<String, Object> mapValue);

    // 得到销售员下拉
    List<Map<String, Object>> getSalerList();

    // 获得销售组
    String getSaleArea(BigDecimal receiveId);

    List<Map<String,Object>> getWarranty(String orderNumber);

    List<Map<String, Object>> getCapacityType(Map<String, Object> mapValue);

    Integer getPlanCount();

    List<Map<String, Object>> getTransRange();


    BigDecimal getResultMaterialId(String orderNumber);

    Map<String, Object> selectNum(String orderNumber);

    List<Map<String, Object>> selectOutbound(String orderNumber);

    List<Map<String,Object>> getNoListCarrier();
    //通过车牌号查询未接收的订单数量(用于APP显示未接收小红点)
    Integer getNotReceiveOrderQuantity(String capacityNumber);
}