wanshenmean
6 天以前 fe2a1e74780259605cd230e6f9c629c3dd7fdf15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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);
    }
}