From f9e8a2d52fe52fb2389892a46c12d4d262ee9aaf Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期六, 29 十一月 2025 16:53:28 +0800
Subject: [PATCH] 增加提升机可进行一次进俩托物料出入库

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs |   69 ++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 20 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
index 3a713f6..bedaecb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs"
@@ -91,13 +91,31 @@
 
                 if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                 {
-                    if (task.Floor == "1F")
+                    if (task.DoubleTray != 1)
                     {
-                        elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                        if (task.Floor == "1F")
+                        {
+                            elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                        }
+                        else
+                        {
+                            elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                        }
                     }
                     else
                     {
-                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                        var taskDouble = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish && x.DoubleTray==1);
+                        if (taskDouble != null)
+                        {
+                            if (task.Floor == "1F")
+                            {
+                                elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                            }
+                            else
+                            {
+                                elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                            }
+                        }
                     }
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                     content.OK();
@@ -107,8 +125,12 @@
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                     content.OK();
                 }
-                
-                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                else if(task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
+                {
+                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                }
+
+                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.RelocationGroup)
                 {
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                 }
@@ -121,14 +143,8 @@
                 }
                 else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                 {
-                    commonConveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9990));
                     commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "LK001");
 
-                    Thread.Sleep(1000);
-                    commonConveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9990));
-                    commonConveyorLine.Communicator.WriteNoRead("DB100.4", Convert.ToInt16(task.TaskNum));
-                    task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
-                    _taskRepository.UpdateData(task);
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                     content.OK();
                 }
@@ -153,25 +169,40 @@
 
                 if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                 {
-                    if (task.Floor == "1F")
+                    if (task.DoubleTray != 1)
                     {
-                        elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
+                        if (task.Floor == "1F")
+                        {
+                            elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
+                        }
+                        else
+                        {
+                            elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
+                        }
                     }
                     else
                     {
-                        elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
+                        var taskDouble = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry && x.DoubleTray == 1 && x.PalletCode != task.PalletCode);
+                        if (taskDouble == null)
+                        {
+                            if (task.Floor == "1F")
+                            {
+                                elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                            }
+                            else
+                            {
+                                elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                            }
+                        }
                     }
-                    //task.TaskState = (int)TaskAcrossFloorStatusEnum.EndAddressExecuting;
-                    //_taskRepository.UpdateData(task);
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                    content.OK();
                 }
                 
 
                 if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                 {
                     commonConveyorLine.SetValue(ConveyorLineDBName.PickUpFinish, 1, "LK001");
-                    //task.TaskState = (int)TaskOutStatusEnum.AGV_OutExecuting;
-                    //_taskRepository.UpdateData(task);
                     _taskService.UpdateTaskStatusToNext(task.TaskNum);
                     content.OK();
                 }
@@ -230,8 +261,6 @@
                     if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
                     {
                         _taskService.ContinueAgvTask(task.AGVTaskNum);
-                        //task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
-                        //_taskRepository.UpdateData(task);
                         _taskService.UpdateTaskStatusToNext(task.TaskNum);
                         content.OK();
                     }

--
Gitblit v1.9.3