hutongqing
2024-08-21 cb683bbc5db174d236fafd35e833993201a3bad2
WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -1,4 +1,5 @@
using Quartz;
using Microsoft.AspNetCore.Components.Routing;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -108,23 +109,23 @@
                    task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
                    if (task != null)
                    {
                        if (OutTaskStationIsOccupied(task) != null)
                        //if (OutTaskStationIsOccupied(task) != null)
                        {
                            return task;
                        }
                        else
                        {
                            List<string> otherOutStaionCodes = _routerService.QueryRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
                            List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
                            foreach (var item in tasks)
                            {
                                if (OutTaskStationIsOccupied(task) != null)
                                {
                                    return task;
                                }
                            }
                            task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                        }
                        //else
                        //{
                        //    List<string> otherOutStaionCodes = _routerService.QueryRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
                        //    List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
                        //    foreach (var item in tasks)
                        //    {
                        //        if (OutTaskStationIsOccupied(task) != null)
                        //        {
                        //            return task;
                        //        }
                        //    }
                        //    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                        //}
                    }
                }
            }
@@ -141,7 +142,7 @@
            Dt_Router? router = _routerService.QueryRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
            if (router != null)
            {
                IDevice? device = DevicesStorage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
                if (device != null)
                {
                    CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
@@ -176,12 +177,11 @@
            stackerCraneTaskCommand.TaskNum = task.TaskNum;
            stackerCraneTaskCommand.WorkType = 1;
            stackerCraneTaskCommand.TrayType = 0;
            if (Enum.TryParse(typeof(TaskInboundTypeEnum), task.TaskType.ToString(), out object? result))//判断是否是入库任务
            if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(task.TaskType.ToString()).ToString(), out int result))//判断是否是入库任务
            {
                List<Dt_Router> routers = _routerService.QueryRoutes(task.CurrentAddress, task.Roadway);
                if (routers.Count > 0)
                {
                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
@@ -196,7 +196,8 @@
                    else
                    {
                        //数据配置错误
                        throw new Exception();
                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"入库任务终点错误,起点:【{task.NextAddress}】");
                        return null;
                    }
                }
                else
@@ -205,7 +206,7 @@
                    return null;
                }
            }
            else if (Enum.TryParse(typeof(TaskOutboundTypeEnum), task.TaskType.ToString(), out result))
            else if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(task.TaskType.ToString()).ToString(), out result))
            {
                List<Dt_Router> routers = _routerService.QueryRoutes(task.Roadway, task.TargetAddress);
                if (routers.Count > 0)
@@ -224,7 +225,8 @@
                    else
                    {
                        //数据配置错误
                        throw new Exception();
                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"出库任务起点错误,起点:【{task.CurrentAddress}】");
                        return null;
                    }
                }
                else
@@ -233,7 +235,7 @@
                    return null;
                }
            }
            else if (Enum.TryParse(typeof(TaskRelocationTypeEnum), task.TaskType.ToString(), out result))
            else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result))
            {
                string[] targetCodes = task.NextAddress.Split("-");
                if (targetCodes.Length == 3)
@@ -245,7 +247,8 @@
                else
                {
                    //数据配置错误
                    throw new Exception();
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"移库任务终点错误,起点:【{task.NextAddress}】");
                    return null;
                }
                string[] sourceCodes = task.CurrentAddress.Split("-");
                if (sourceCodes.Length == 3)
@@ -257,10 +260,11 @@
                else
                {
                    //数据配置错误
                    throw new Exception();
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"移库任务起点错误,起点:【{task.CurrentAddress}】");
                    return null;
                }
            }
            else if (Enum.TryParse(typeof(TaskOtherTypeEnum), task.TaskType.ToString(), out result))
            else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result))
            {
            }