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

import com.boco.nbd.wios.flow.entity.bo.VisualManagementTowNumBO;
import com.boco.nbd.wios.flow.entity.vo.VisualManagementNodeFlagCountVO;


import java.util.List;

/**
 * @Description: 目视化管理接口
 * @Author: ZQY
 * @Date: 2022/10/26
 **/
public interface IVisualManagementService {

    /**
     * 根据区域统计各个节点数量
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getNodeFlagByArea(String startTime,String endTime,String userId);


    /**
     * 根据服务商统计各个节点数量
     * @param startTime
     * @param endTime
     * @param areaId
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getNodeFlagByInstallSupplierl(String startTime,  String endTime, String areaId,String userId);



    /**
     * 根据区域统计订单各个节点超时数量
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getOvertimeNodeFlagByAreaCount(String startTime,String endTime,String userId);

    /**
     * 根据服务商统计订单各个节点超时数量
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getOvertimeNodeFlagByInstallSupplierl(String startTime, String endTime,String userId);

    /**
     * 根据区域统计订单各个节点即将超时数量
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getAboutOvertimeNodeFlagByAreaCount(String startTime, String endTime,String userId);

    /**
     * 根据服务商统计订单各个节点即将超时数量
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementNodeFlagCountVO> getAboutOvertimeNodeFlagByInstallSupplierl(String startTime, String endTime,String userId);


    /**
     * 客户首联情况
     * @param startTime
     * @param endTime
     * @return
     */
    List<VisualManagementTowNumBO>  getCustomerNode101ByArea(String startTime, String endTime,String userId);


    /**
     * 服务商接单情况
     * @param startTime
     * @param endTime
     * @param id
     * @return
     */
    List<VisualManagementTowNumBO> getOrderReceivingBySupplierl(String startTime, String endTime,String id,String userId);


    /**
     * 根据服务商ID查询区域接单情况
     * @param startTime
     * @param endTime
     * @param installSupplierId
     * @return
     */
    List<VisualManagementTowNumBO> getOrderReceivingByAreaAndSupplierlId(String startTime, String endTime,String installSupplierId,String userId);


    /**
     * 服务商结算情况
     * @param startTime
     * @param endTime
     * @param id
     * @return
     */
    List<VisualManagementTowNumBO> getOrderSettlementBySupplierl(String startTime, String endTime,String id,String userId);


    /**
     * 根据服务商ID查询区域结算情况
     * @param startTime
     * @param endTime
     * @param installSupplierId
     * @return
     */
    List<VisualManagementTowNumBO> getOrderSettlementByAreaAndSupplierlId(String startTime, String endTime,String installSupplierId,String userId);

}