package com.boco.nbd.wios.flow.service;

import com.boco.nbd.wios.flow.entity.vo.StatisticsProvinceVo;

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

/**
 * @Description: TODO
 * @Author: ZQY
 * @Date: 2022/8/16
 **/
public interface IStatisticsService {


    /**
     * 提供大屏页面订单总数接口
     * @param oemId
     * @param startTime
     * @param endTime
     * @return
     */
    Map<String,String> getOrderQuantity(String oemId,String startTime,String endTime);

    /**
     * 提供大屏页面省份订单总数接口
     * @param orderQuantityType
     * @param oemId
     * @param startTime
     * @param endTime
     * @return
     */
    List<StatisticsProvinceVo> getProvinceOrderQuantity(String orderQuantityType, String oemId, String startTime, String endTime);


    /**
     * 提供大屏页面省份钻取地市订单总数接口
     * @param orderQuantityType
     * @param provinceId
     * @param oemId
     * @param startTime
     * @param endTime
     * @return
     */
    Map<String,String> getAreaOrderQuantity(String orderQuantityType,String provinceId,String oemId,String startTime,String endTime);


    /**
     * 获取每个月新增的订单总数同比接口
     * @param oemId
     * @return
     */
    List<Map<String, String>>  getMonthOrderQuantity(String oemId);

    /**
     * 获取每个月完成的订单总数接口
     * @param oemId
     * @return
     */
    Map<String,String> getFinishMonthOrderQuantity(String oemId);


    /**
     * 获取时效统计
     * @param nodeName1 开始节点名称
     * @param nodeName2 结束节点名称
     * @param nodeFlag 获取大于节点数据
     * @param workdayArr
     * @param naturalArr
     * @return
     */
    float getNodeFlagTime(String nodeName1,String nodeName2,Integer nodeFlag,String[] workdayArr,String[] naturalArr);

    /**
     * 根据服务商查询评分
     * @return
     */
    Map<String, Integer>  getScoreSupplierBySupplier();

    /**
     * 根据区域查询评分
     * @return
     */
    Map<String, Integer>  getScoreSupplierByRegion();


    /**
     * 区域完成占比
     * @param oemId
     * @param startTime
     * @param endTime
     * @return
     */
    Map<String, Integer> getOrderQuantityGroupArea(String oemId,String startTime,String endTime);


    /**
     * 获取满意度
     * @param time
     * @return
     */
    float getSatisfaction(String time);


}