1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace WCS.PLC
- {
- public class EquRouteHelper
- {
-
- public static List<WCS_EQUIPMENTROUTE> QueryRoute(string startPos, string toPos)
- {
- var list = new List<WCS_EQUIPMENTROUTE>();
- var equRouteS = Current.EquRouteSet.Where(v => v.ROUTE_STARTPOS == startPos).OrderByDescending(v => v.ISEND).ToList();//查询下一个路由地址
- var endroute = equRouteS.Where(v => v.ROUTE_SONPOS == toPos || v.ROUTE_NEXTPOS == toPos);
- if (endroute.Count() > 0)
- {
- //查询到最后的目标地址
- foreach (var item in endroute)
- {
- if (list.Any(v => v.ROUTE_ID == item.ROUTE_ID) == false)
- {
- list.Add(item);
- }
- }
- }
- else
- {
- foreach (var equRoute in equRouteS)
- {
- //if (!string.IsNullOrWhiteSpace(outInType))
- //{
- // if (outInType == "in")
- // {
- // if (equRoute.ROUTE_INOUTTYPE == "out") continue;
- // }
- // else if (outInType == "out")
- // {
- // if (equRoute.ROUTE_INOUTTYPE == "in") continue;
- // }
- //}
- if (equRoute.ISEND && equRoute.ROUTE_NEXTPOS != toPos && equRoute.ROUTE_NEXTPOS != toPos && equRoute.ROUTE_NOTES != "1")
- {
- //该路由地址为终点出口,并且不是任务的终点位置,则忽略该路由轨迹
- continue;
- }
- var equRoutes = QueryRoute(equRoute.ROUTE_NEXTPOS, toPos);
- foreach (var item in equRoutes)
- {
- if (list.Any(v => v.ROUTE_ID == item.ROUTE_ID) == false)
- {
- list.Add(item);
- }
- if (list.Any(v => v.ROUTE_ID == equRoute.ROUTE_ID) == false)
- {
- list.Add(equRoute);
- }
- }
- }
- }
- return list;
- }
- }
- }
|