From 885092869d8a27a0b77d6e55d3dd3f00f29e8002 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期四, 04 十二月 2025 15:45:48 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 1 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index d3fd64a..10d932b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -6,6 +6,7 @@
 using SqlSugar;
 using System.Reflection;
 using System.Text;
+using System.Threading.Tasks;
 using WIDESEAWCS_BasicInfoRepository;
 using WIDESEAWCS_BasicInfoService;
 using WIDESEAWCS_Common;
@@ -28,6 +29,7 @@
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
+using WIDESEAWCS_Tasks.ElevatorJob;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
@@ -76,7 +78,82 @@
                 CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                 if (conveyorLine != null)
                 {
-                  
+                    ConveyorLineTaskCommand conmmand = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>("LK001");
+                    if (conmmand != null)
+                    {
+                        var structs = BitConverter.GetBytes(conmmand.InteractiveSignal).Reverse().ToArray().ToBoolArray();
+                        if (structs[0] )
+                        {
+                            var taskIn = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
+                            var taskOut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish);
+                            var taskPut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.AGV_InFinish);
+                            if (taskPut != null)
+                            {
+                                if (conmmand.ConveyorLineTaskNum == 0)
+                                {
+                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9990));
+                                    conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskPut.TaskNum));
+                                    _taskService.UpdateTaskStatusToNext(taskPut.TaskNum);
+                                }
+                            }
+                            if (taskIn != null)
+                            {
+                                if (structs[2] && structs[1])
+                                {
+                                    WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskIn.TaskNum);
+                                    WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
+                                }
+                            }
+                            if (taskOut != null)
+                            {
+                                if (conmmand.ConveyorLineTaskNum == 0)
+                                {
+                                    if (structs[2] && structs[1])
+                                    {
+                                        conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+                                        conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskOut.TaskNum));
+                                    }
+                                    WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskOut.TaskNum);
+                                    if (content.Status)
+                                    {
+                                        _taskService.SendAgvTask("LKQU", taskOut.TaskNum);
+                                    }
+                                    WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
+                                }
+                            }
+
+                            var taskSignal = _taskService.QueryRequestConveyorLineSignalTask();
+
+                            if (taskSignal != null && taskSignal.AGVSign == "RequestPickUp")
+                            {
+                                if (!structs[3])
+                                {
+                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+                                }
+                                if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
+                                {
+                                    await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
+                                    taskSignal.AGVSign = "";
+                                    taskSignal.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
+                                    _taskRepository.UpdateData(taskSignal);
+                                }
+                            }
+                            if (taskSignal != null && taskSignal.AGVSign == "RequestPut")
+                            {
+                                if (!structs[3])
+                                {
+                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
+                                }
+                                if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
+                                {
+                                    await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
+                                    taskSignal.AGVSign = "";
+                                    _taskRepository.UpdateData(taskSignal);
+                                }
+                            }
+
+                        }
+                    }
                 }
             }
             catch (Exception ex)

--
Gitblit v1.9.3