From 4ac3f08f416685db0e218df55750d94556030330 Mon Sep 17 00:00:00 2001
From: HuBingJie <3146306518@qq.com>
Date: 星期四, 06 十一月 2025 20:25:17 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |   62 ++++++++++++++++++++-----------
 1 files changed, 40 insertions(+), 22 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 040e69b..fd7ff4b 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"
@@ -2,6 +2,7 @@
 using Quartz;
 using SqlSugar;
 using System.Threading.Tasks;
+using WIDESEA_Comm.Http;
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.Helper;
 using WIDESEAWCS_Common.TaskEnum;
@@ -56,11 +57,11 @@
                 {
                     foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
                     {
-                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); //璇诲彇
 
-                        DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                        DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_ConveyorLineDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); //鍐欏叆
 
-                        if (deviceProRead != null && deviceProWrite != null)
+                        if (deviceProRead != null && deviceProWrite != null) //璇诲彇鍐欏叆
                         {
                             R_ConveyorLineInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineInfo>(deviceProRead.DeviceProAddress);
 
@@ -83,11 +84,19 @@
                                 // 鍑哄簱
                                 if (conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//鍑哄簱
                                 {
-                                    if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//閲囪喘鍏ュ簱
+                                    if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))
                                     {
-                                        device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
-                                        device.SetValue(W_ConveyorLineDB.EndPos, 2011, item.StationCode);
-                                        device.SetValue(W_ConveyorLineDB.TaskNo, 1111, item.StationCode);
+
+                                        Dt_Task dt_Ta = _taskService.GetOutTaskInfo2(conveyorLineInfoRead.Barcode);
+                                        if (dt_Ta != null)
+                                        {
+                                            device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
+                                            device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode);
+                                            device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode);
+
+                                            //鍒犻櫎浠诲姟
+                                            _taskRepository.DeleteData(dt_Ta);
+                                        }
                                     }
                                 }
                                 else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && ACK)
@@ -101,21 +110,21 @@
                                 //鍏ュ簱鐢熸垚鍫嗗灈鏈哄叆搴撲换鍔�
                                 if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !ACK)
                                 {
-                                    if (conveyorLineInfoRead.TaskNo != 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//閲囪喘鍏ュ簱
+                                    if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//閲囪喘鍏ュ簱
                                     {
-                                        WebResponseContent contentweb = _taskService.UpdateTaskIninfo(conveyorLineInfoRead.Barcode, conveyorLineInfoRead.TaskNo);
+                                        WebResponseContent contentweb = _taskService.UpdateTaskIninfo(conveyorLineInfoRead.Barcode,item.StationCode);
                                         if (contentweb.Status)
                                         {
                                             device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
+                                            device.SetValue(W_ConveyorLineDB.TaskNo,1, item.StationCode);
                                         }
                                     }
-
                                 }
                                 else if (!conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && ACK)
                                 {
                                     device.SetValue(W_ConveyorLineDB.ACK, false, item.StationCode);
                                 }
-                                else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Free && !conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK && conveyorLineInfoRead.TaskNo == 0)//鍑哄簱
+                                /*else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Free && !conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK && conveyorLineInfoRead.TaskNo == 0)//鍑哄簱
                                 {
                                     Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StationDeviceCode && _taskService.TaskOutboundTypes.Contains(x.TaskType));
                                     if (task != null )
@@ -145,18 +154,25 @@
                                             }
                                         }
                                     }
-                                }
-                                else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK && conveyorLineInfoRead.TaskNo == 0)//鍑哄簱
+                                }*/
+                                else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//鍑哄簱
                                 {
-                                    Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.DeviceCode == item.StationDeviceCode && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt());
-                                    if (task != null)
-                                    {
-                                        //鍫嗗灈鏈轰换鍔″畬鎴愪笅涓�鍦板潃鏀规垚杈撻�佺嚎涓嬩竴鍦板潃锛岃澶囩紪鍙锋敼鎴愯緭閫佺嚎
-                                        _taskService.UpdateTask(task, TaskStatusEnum.Line_Executing);
-
-                                        device.SetValue(W_ConveyorLineDB.TaskNo, task.TaskNum, item.StationCode);
-                                        device.SetValue(W_ConveyorLineDB.EndPos, task.NextAddress, item.StationCode);
+                                    
+                                    Dt_Task dt_Ta = _taskService.GetOutTaskInfo(item.StationCode);
+                                    if (dt_Ta != null)
+                                    {.1111
+                                        device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode);
+                                        device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode);
                                         device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
+                                        //鍫嗗灈鏈轰换鍔″畬鎴愪笅涓�鍦板潃鏀规垚杈撻�佺嚎涓嬩竴鍦板潃锛岃澶囩紪鍙锋敼鎴愯緭閫佺嚎
+                                        _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum);
+
+                                        if (dt_Ta.TargetAddress !="2021" && dt_Ta.TargetAddress != "2020")
+                                        {
+                                            //鍒犻櫎浠诲姟
+                                            _taskRepository.DeleteData(dt_Ta);
+                                        }
+                                        
                                     }
 
                                 }
@@ -177,10 +193,12 @@
                                         Dt_Task dt_Ta = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode);
                                         if(dt_Ta != null)
                                         {
-                                            device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
+                                            
                                             device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.SourceAddress, item.StationCode);
                                             device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode);
+                                            device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                         }
+                                       
                                     }
 
 

--
Gitblit v1.9.3