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
|
{
|
/// <summary>
|
/// 路由配置业务接口层
|
/// </summary>
|
public interface IRouterService : IService<Dt_Router>
|
{
|
/// <summary>
|
/// 根据起点/当前位置、终点获取下一个子节点。
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置。</param>
|
/// <param name="endPosi">终点。</param>
|
/// <returns>返回路由实体集合。</returns>
|
List<Dt_Router> QueryNextRoutes(string startPosi, string endPosi);
|
|
/// <summary>
|
/// 根据起点/当前位置、终点获取下一个子节点。
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置。</param>
|
/// <param name="endPosi">终点。</param>
|
/// <param name="routeType">路由类型。</param>
|
/// <returns>返回路由实体集合。</returns>
|
List<Dt_Router> QueryNextRoutes(string startPosi, string endPosi, int routeType);
|
|
/// <summary>
|
/// 根据起点/当前位置获取下一个单个子节点路由
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置</param>
|
/// <returns>返回下一个路由节点,如果没有则返回null</returns>
|
Dt_Router QueryNextRoute(string startPosi);
|
|
/// <summary>
|
/// 根据起点/当前位置和路由类型获取下一个单个子节点路由
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置</param>
|
/// <param name="routeType">路由类型</param>
|
/// <returns>返回下一个路由节点,如果没有则返回null</returns>
|
Dt_Router QueryNextRoute(string startPosi, int routeType);
|
|
/// <summary>
|
/// 根据起点/当前位置、终点方向和路由类型获取下一个单个子节点路由(智能选择朝向终点的路由)
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置</param>
|
/// <param name="endPosi">终点位置(用于方向判断)</param>
|
/// <param name="routeType">路由类型</param>
|
/// <returns>返回下一个路由节点,优先返回朝向终点的路由,如果没有则返回null</returns>
|
Dt_Router QueryNextRoute(string startPosi, string endPosi, int routeType);
|
|
/// <summary>
|
/// 根据起点/当前位置、终点方向和路由类型获取下一个单个子节点路由(智能选择朝向终点的路由)
|
/// </summary>
|
/// <param name="startPosi">起点/当前位置</param>
|
/// <param name="endPosi">终点位置(用于方向判断)</param>
|
/// <returns>返回下一个路由节点,优先返回朝向终点的路由,如果没有则返回null</returns>
|
Dt_Router QueryNextRoute(string startPosi, string endPosi);
|
|
/// <summary>
|
/// 获取从起点到终点的完整路径(按顺序返回每个子节点路由)
|
/// </summary>
|
/// <param name="startPosi">起点位置</param>
|
/// <param name="endPosi">终点位置</param>
|
/// <param name="routeType">路由类型</param>
|
/// <returns>返回有序的路由列表,如果找不到路径则返回空列表</returns>
|
List<Dt_Router> QueryRoutePath(string startPosi, string endPosi, int routeType);
|
|
/// <summary>
|
/// 根据设备编号获取对应的路由点位编号(输送线站台编号)信息
|
/// </summary>
|
/// <param name="deviceCode">设备编号</param>
|
/// <returns>返回路由点位编号(输送线站台编号)集合</returns>
|
List<string> QueryAllPositions(string deviceCode);
|
|
/// <summary>
|
/// 获取路由表中所有完整的路由信息(前端展示)
|
/// </summary>
|
/// <returns>匿名对象集合</returns>
|
List<object> GetAllWholeRouters();
|
|
/// <summary>
|
/// 添加路由
|
/// </summary>
|
/// <param name="routersAddDTOs">添加路由的DTO</param>
|
/// <param name="routerType">路由类型</param>
|
/// <returns></returns>
|
WebResponseContent AddRouters(List<RoutersAddDTO> routersAddDTOs, int routerType);
|
|
/// <summary>
|
/// 清除路由缓存
|
/// </summary>
|
void ClearRouterCache();
|
|
/// <summary>
|
/// 根据设备编号查询经过该设备的所有路由
|
/// </summary>
|
/// <param name="deviceCode">设备编号</param>
|
/// <returns>返回经过该设备的所有路由列表</returns>
|
List<Dt_Router> QueryRoutersByDeviceCode(string deviceCode);
|
|
/// <summary>
|
/// 判断两点之间是否存在路由(全类型)
|
/// </summary>
|
/// <param name="startPosi">起点位置</param>
|
/// <param name="endPosi">终点位置</param>
|
/// <returns>存在返回true,不存在返回false</returns>
|
bool ExistsRouter(string startPosi, string endPosi);
|
|
/// <summary>
|
/// 判断两点之间是否存在指定类型的路由
|
/// </summary>
|
/// <param name="startPosi">起点位置</param>
|
/// <param name="endPosi">终点位置</param>
|
/// <param name="routeType">路由类型</param>
|
/// <returns>存在返回true,不存在返回false</returns>
|
bool ExistsRouter(string startPosi, string endPosi, int routeType);
|
|
/// <summary>
|
/// 获取全量路由数量(入口+出口合计)
|
/// </summary>
|
/// <returns>返回全量路由数量</returns>
|
int GetRouterCount();
|
|
/// <summary>
|
/// 获取指定类型路由数量
|
/// </summary>
|
/// <param name="routeType">路由类型</param>
|
/// <returns>返回指定类型的路由数量</returns>
|
int GetRouterCount(int routeType);
|
|
/// <summary>
|
/// 批量删除路由
|
/// </summary>
|
/// <param name="routerIds">要删除的路由ID列表</param>
|
/// <returns>返回删除操作的结果</returns>
|
WebResponseContent DeleteRouters(List<long> routerIds);
|
}
|
}
|