|
@@ -250,7 +250,10 @@ namespace WCS.Service.Works.Station
|
|
var tunnels = Device.Where(v => tunnelNo.Contains(v.CODE)).ToList();
|
|
var tunnels = Device.Where(v => tunnelNo.Contains(v.CODE)).ToList();
|
|
|
|
|
|
var tunnelInfos = new List<TunnelInfo>();
|
|
var tunnelInfos = new List<TunnelInfo>();
|
|
- code.infolog($"{res.WMSTaskGroupKey}第二次分配:WMS返回{JsonConvert.SerializeObject(tunnels)}。");
|
|
|
|
|
|
+ var setting = new JsonSerializerSettings();
|
|
|
|
+ setting.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
|
|
|
|
+ setting.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
|
|
|
|
+ code.infolog($"{res.WMSTaskGroupKey}第二次分配:WMS返回{JsonConvert.SerializeObject(tunnels, setting)}。");
|
|
foreach (var item in tunnels)
|
|
foreach (var item in tunnels)
|
|
{
|
|
{
|
|
//当前巷道的取货点
|
|
//当前巷道的取货点
|
|
@@ -258,16 +261,16 @@ namespace WCS.Service.Works.Station
|
|
.Where(v => v.ROUTES.Any(p => p.NEXT.CODE == item.CODE)) //下一个点为当前巷道的取货点
|
|
.Where(v => v.ROUTES.Any(p => p.NEXT.CODE == item.CODE)) //下一个点为当前巷道的取货点
|
|
.Select(v => v.CODE)
|
|
.Select(v => v.CODE)
|
|
.ToList();
|
|
.ToList();
|
|
- code.infolog($"allIn:{JsonConvert.SerializeObject(allIn)};item:{item.CODE}");
|
|
|
|
|
|
+ code.infolog($"allIn:{JsonConvert.SerializeObject(allIn, setting)};item:{item.CODE}");
|
|
//下一个目标地址包含取货点的设备,此时获得的数据是旋转台
|
|
//下一个目标地址包含取货点的设备,此时获得的数据是旋转台
|
|
var turntable = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && allIn.Contains(p.NEXT.CODE)))
|
|
var turntable = Device.Where(v => v.IsConv() && v.ROUTES.Any(p => p.NEXT != null && allIn.Contains(p.NEXT.CODE)))
|
|
.Where(v => stationDeviceGroup.Items.Any(p => p.Entity == v))// 筛选出包含在当前设备组的设备
|
|
.Where(v => stationDeviceGroup.Items.Any(p => p.Entity == v))// 筛选出包含在当前设备组的设备
|
|
.Distinct()
|
|
.Distinct()
|
|
.FirstOrDefault();//去一次重
|
|
.FirstOrDefault();//去一次重
|
|
- code.infolog($"turntable:{JsonConvert.SerializeObject(turntable)};item:{item.CODE}");
|
|
|
|
|
|
+ code.infolog($"turntable:{JsonConvert.SerializeObject(turntable, setting)};item:{item.CODE}");
|
|
if (turntable == null) continue;
|
|
if (turntable == null) continue;
|
|
var dev = Device.Where(p => p.CODE.StartsWith("G") && p.DEVICEGROUP.Any(d => allIn.Contains(d.MEMBER.CODE))).MinBy(p => p.CODE);
|
|
var dev = Device.Where(p => p.CODE.StartsWith("G") && p.DEVICEGROUP.Any(d => allIn.Contains(d.MEMBER.CODE))).MinBy(p => p.CODE);
|
|
- code.infolog($"dev:{JsonConvert.SerializeObject(dev)};item:{item.CODE}");
|
|
|
|
|
|
+ code.infolog($"dev:{JsonConvert.SerializeObject(dev, setting)};item:{item.CODE}");
|
|
tunnelInfos.Add(new TunnelInfo
|
|
tunnelInfos.Add(new TunnelInfo
|
|
{
|
|
{
|
|
Tunnel = item,
|
|
Tunnel = item,
|
|
@@ -285,7 +288,7 @@ namespace WCS.Service.Works.Station
|
|
}
|
|
}
|
|
catch { return false; }
|
|
catch { return false; }
|
|
}).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
|
|
}).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
|
|
- code.infolog($"tunnelNo:{JsonConvert.SerializeObject(tunnelNo)}。");
|
|
|
|
|
|
+ code.infolog($"tunnelNo:{JsonConvert.SerializeObject(tunnelNo, setting)}。");
|
|
if (tunnelInfo == null) throw new WarnException("无可用巷道");
|
|
if (tunnelInfo == null) throw new WarnException("无可用巷道");
|
|
code.infolog($"{res.WMSTaskGroupKey}第二次分配:WCS选择{tunnelInfo.Tunnel.CODE}。");
|
|
code.infolog($"{res.WMSTaskGroupKey}第二次分配:WCS选择{tunnelInfo.Tunnel.CODE}。");
|
|
|
|
|