|
|
@@ -94,6 +94,13 @@ namespace WCS.Service.Works.Station
|
|
|
}
|
|
|
else if (tasking.Status < tasking.AGVStatus)
|
|
|
{
|
|
|
+ if (Ltc.Do(tasking, v => v.AGVStatus == AGVTaskStatus.取消))
|
|
|
+ {
|
|
|
+ tasking.Status = tasking.AGVStatus;
|
|
|
+ tasking.UpdateTime = DateTime.Now;
|
|
|
+ db.Default.SaveChanges();
|
|
|
+ tasking.AGVStatusChange(tasking.AGVStatus, "取消任务");
|
|
|
+ }
|
|
|
if (tasking.Station != stationDeviceGroup.Entity.CODE)
|
|
|
{
|
|
|
InfoLog.INFO_INFO($"{stationDeviceGroup.Entity.CODE}不是当前站台的AGV任务");
|
|
|
@@ -424,7 +431,7 @@ namespace WCS.Service.Works.Station
|
|
|
}
|
|
|
//筛选出优先级最高的可用巷道
|
|
|
var tunnelInfo = tunnelInfos.Where(v => { try { return v.SRM.Data3.SCAlarm == 0 && v.SRM.Data2.SRMMode == SCMode.远程; } catch { return false; } })
|
|
|
- .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && p.STATUS < TaskStatus.堆垛机完成)).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
|
|
|
+ .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && (p.STATUS == TaskStatus.堆垛机执行))).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
|
|
|
if (tunnelInfo == null) throw new WarnException("无可用巷道");
|
|
|
|
|
|
//开始变更任务信息
|