huanghongfeng
2024-12-11 dfea94129c7d203aaaab8d0f6514aee74258e6a1
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -143,21 +143,46 @@
                if (targetCodes[4] == "02")
                {
                    task = OutTaskMovelibrary(task);
                    if (task != null)
                    Dt_Task taskst = OutTaskMovelibrary(task);
                    if (taskst != null)
                    {
                        if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation)
                        {
                            return taskst;
                        }
                        else
                        {
                            if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02")
                            {
                                return taskst;
                            }
                            else
                            {
                                if (OutTaskStationIsOccupied(taskst) != null)
                                {
                                    return taskst;
                                }
                            }
                        }
                    }
                    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                }
                else
                {
                    if (task.TargetAddress == "R02-001-021-001-02" || task.TargetAddress == "R02-001-022-001-02")
                    {
                        return task;
                    }
                    else
                    {
                        if (OutTaskStationIsOccupied(task) != null)
                        {
                            return task;
                        }
                    }
                }
                else
                {
                    if (OutTaskStationIsOccupied(task) != null)
                    {
                        return task;
                    }
                    task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
                }
@@ -233,7 +258,7 @@
                }
                targetCodes[4] = "01";
                string SourceAddress = string.Join("-", targetCodes); //组装浅库位地址
                Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault();
                Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //找浅库位是否有任务
                if (tasks != null)
                {
                    return tasks;
@@ -261,7 +286,7 @@
            if (Applyrelease(commonStackerCrane)) //读取堆垛机放货申请
            {
                Dt_Task task = _taskService.IngStackerCraneTask2(commonStackerCrane.DeviceCode);
                if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && (task.TargetAddress != "R02-001-021-001-02" && task.TargetAddress != "R02-001-022-001-02"))
                {
                    IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceProDTOs.Exists(x => x.DeviceChildCode == task.TargetAddress));
                    if (device != null)
@@ -301,7 +326,7 @@
            else
            {
                Dt_Task task = _taskService.IngStackerCraneTask2(commonStackerCrane.DeviceCode);
                if (task !=null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                if (task !=null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound &&(task.TargetAddress != "R02-001-021-001-02" && task.TargetAddress != "R02-001-022-001-02"))
                {
                    if (Completesignal(commonStackerCrane, task.TargetAddress))        //读取到放货完成信号
                    {
@@ -602,7 +627,14 @@
                    {
                        return true;
                    }
                }
                DeviceProDTO? deviceProDTO6 = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryRequest_A2in");  //空托出入库
                if (deviceProDTO6 != null)
                {
                    if (GetStacker(commonStackerCrane, deviceProDTO6.DeviceProAddress).Status)
                    {
                        return true;
                    }
                }
            }
            return false;
@@ -652,6 +684,15 @@
                if (deviceProDTO != null)
                {
                   if(SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; }
                }
            }
            if (Destinationaddress == "R01-002-043-001-01")
            {
                DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryPermission_A2in");
                if (deviceProDTO != null)
                {
                    if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; }
                }
            }
@@ -719,7 +760,17 @@
                    }
                }
            }
            if (Destinationaddress == "R01-002-043-001-01")
            {
                DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompleted_A2in");
                if (deviceProDTO != null)
                {
                    if (GetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress).Status)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
@@ -768,7 +819,14 @@
                    if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; }
                }
            }
            if (Destinationaddress == "R01-002-043-001-01")
            {
                DeviceProDTO? deviceProDTO = GetDeviceProDTO2(commonStackerCrane, commonStackerCrane.DeviceCode, "DeliveryCompletion_A2in");
                if (deviceProDTO != null)
                {
                    if (SetStacker(commonStackerCrane, deviceProDTO.DeviceProAddress, SCcrane).Status) { return true; }
                }
            }
            return false;
        }