hutongqing
2024-08-23 e98b07c84a2a496da895ef6b523b29ccc75e004d
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;
@@ -81,7 +82,11 @@
        /// <param name="e"></param>
        private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
        {
            _taskService.TaskCompleted(e.TaskNum);
            Console.Out.WriteLine("TaskCompleted" + e.TaskNum);
            _taskService.StackCraneTaskCompleted(e.TaskNum);
            CommonStackerCrane commonStackerCrane = sender as CommonStackerCrane;
            commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
        }
        /// <summary>
@@ -114,7 +119,7 @@
                        }
                        else
                        {
                            List<string> otherOutStaionCodes = _routerService.QueryRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
                            List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
                            List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
                            foreach (var item in tasks)
                            {
@@ -138,7 +143,7 @@
        /// <returns>如果未被占用,返回传入的任务信息,否则,返回null</returns>
        private Dt_Task? OutTaskStationIsOccupied(Dt_Task task)
        {
            Dt_Router? router = _routerService.QueryRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
            Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
            if (router != null)
            {
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
@@ -176,12 +181,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);
                List<Dt_Router> routers = _routerService.QueryNextRoutes(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 +200,8 @@
                    else
                    {
                        //数据配置错误
                        throw new Exception();
                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"入库任务终点错误,起点:【{task.NextAddress}】");
                        return null;
                    }
                }
                else
@@ -205,9 +210,9 @@
                    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);
                List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress);
                if (routers.Count > 0)
                {
                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
@@ -224,7 +229,8 @@
                    else
                    {
                        //数据配置错误
                        throw new Exception();
                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"出库任务起点错误,起点:【{task.CurrentAddress}】");
                        return null;
                    }
                }
                else
@@ -233,7 +239,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 +251,8 @@
                else
                {
                    //数据配置错误
                    throw new Exception();
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"移库任务终点错误,起点:【{task.NextAddress}】");
                    return null;
                }
                string[] sourceCodes = task.CurrentAddress.Split("-");
                if (sourceCodes.Length == 3)
@@ -257,10 +264,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))
            {
            }