using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_QuartzJob.Models;
namespace WIDESEAWCS_QuartzJob.Service
{
///
/// 路由配置业务接口层
///
public interface IRouterService : IService
{
///
/// 根据起点/当前位置、终点获取下一个子节点。
///
/// 起点/当前位置。
/// 终点。
/// 返回路由实体集合。
List QueryNextRoutes(string startPosi, string endPosi);
///
/// 根据起点/当前位置、终点获取下一个子节点。
///
/// 起点/当前位置。
/// 终点。
/// 路由类型。
/// 返回路由实体集合。
List QueryNextRoutes(string startPosi, string endPosi, int routeType);
///
/// 根据起点/当前位置获取下一个单个子节点路由
///
/// 起点/当前位置
/// 返回下一个路由节点,如果没有则返回null
public Dt_Router QueryNextRoute(string startPosi);
///
/// 根据起点/当前位置和路由类型获取下一个单个子节点路由
///
/// 起点/当前位置
/// 路由类型
/// 返回下一个路由节点,如果没有则返回null
public Dt_Router QueryNextRoute(string startPosi, int routeType);
///
/// 根据起点/当前位置、终点方向和路由类型获取下一个单个子节点路由(智能选择朝向终点的路由)
///
/// 起点/当前位置
/// 终点位置(用于方向判断)
/// 路由类型
/// 返回下一个路由节点,优先返回朝向终点的路由,如果没有则返回null
public Dt_Router QueryNextRoute(string startPosi, string endPosi, int routeType);
///
/// 获取从起点到终点的完整路径(按顺序返回每个子节点路由)
///
/// 起点位置
/// 终点位置
/// 路由类型
/// 返回有序的路由列表,如果找不到路径则返回空列表
public List QueryRoutePath(string startPosi, string endPosi, int routeType);
///
/// 根据设备编号获取对应的路由点位编号(输送线站台编号)信息
///
/// 设备编号
/// 返回路由点位编号(输送线站台编号)集合
List QueryAllPositions(string deviceCode);
///
/// 获取路由表中所有完整的路由信息(前端展示)
///
/// 匿名对象集合
List