From cb25acc46bf41863e068b6f968f1592b7a14d1c9 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期六, 13 九月 2025 08:12:14 +0800
Subject: [PATCH] 功能更新优化

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/辅料仓/ConveyorLineJob_FL.cs |   47 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 41 insertions(+), 6 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\350\276\205\346\226\231\344\273\223/ConveyorLineJob_FL.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\350\276\205\346\226\231\344\273\223/ConveyorLineJob_FL.cs"
index 4e0c629..fd1917e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\350\276\205\346\226\231\344\273\223/ConveyorLineJob_FL.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\350\276\205\346\226\231\344\273\223/ConveyorLineJob_FL.cs"
@@ -1,10 +1,12 @@
-锘縰sing Microsoft.AspNetCore.Components.Routing;
+锘縰sing HslCommunication.WebSocket;
+using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using Quartz;
 using SqlSugar.Extensions;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Common;
@@ -19,6 +21,7 @@
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
+using WIDESEAWCS_Tasks.杈呮枡浠�;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
@@ -30,13 +33,15 @@
         private readonly ITaskService _taskService;
         private readonly ITaskExecuteDetailService _taskExecuteDetailService;
         private readonly ITaskRepository _taskRepository;
+        public static FLReadData fLReadData = new FLReadData();
         private readonly IStationMangerRepository _stationMangerRepository;
         private readonly IRouterRepository _routerRepository;
         private readonly IRouterService _routerService;
         private readonly IRouterExtension _routerExtension;
         private readonly List<Dt_WarehouseDevice> warehouseDevices;
+        private WebSocketServer _webSocketServer;
 
-        public ConveyorLineJob_FL(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
+        public ConveyorLineJob_FL(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension,WebSocketServer webSocketServer)
         {
             _cacheService = cacheService;
             _taskService = taskService;
@@ -46,6 +51,7 @@
             _routerRepository = routerRepository;
             _routerService = routerService;
             _routerExtension = routerExtension;
+            _webSocketServer = webSocketServer;
 
             string? warehouseDevicesStr = _cacheService.Get<string>(nameof(Dt_WarehouseDevice));
             if (!string.IsNullOrEmpty(warehouseDevicesStr))
@@ -75,16 +81,45 @@
                         {
                             R_ConveyorLineFLInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineFLInfo>(deviceProRead.DeviceProAddress);
                             bool conveyArrivaled = device.GetValue<R_ConveyorLineFLDB, bool>(R_ConveyorLineFLDB.ConveyArrivaled, item.StationCode);
-                            if (conveyArrivaled)
+                            //杈撻�佺嚎鍙栨枡鍙e埌浣嶆洿鏂颁换鍔$姸鎬�
+                            if (conveyorLineInfoRead!=null && conveyArrivaled)
                             {
-                                Dt_Task newTask = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNum.ObjToInt() && x.PalletCode == conveyorLineInfoRead.Barcode && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StackerCraneCode && !string.IsNullOrEmpty(x.DeviceCode));
-                                if (newTask != null)
+                                Dt_Task LineTask = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNum.ObjToInt() && x.PalletCode == conveyorLineInfoRead.Barcode && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == item.StackerCraneCode);
+                                if (LineTask != null)
                                 {
-                                    _taskService.UpdateTask(newTask, TaskStatusEnum.AGV_Execute);
+                                    _taskService.UpdateTask(LineTask, TaskStatusEnum.AGV_Execute);
                                 }
                                 WriteError(item.StationName, $"鍏ュ簱鍒颁綅淇″彿锛屾墭鐩樺彿{conveyorLineInfoRead.Barcode},浠诲姟鍙�:{conveyorLineInfoRead.TaskNum}");
                             }
+
+                            //鍙戦�佽緭閫佺嚎浠诲姟
+                            Dt_Task? newTask = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StackerCraneCode && x.TaskType>=TaskTypeEnum.Inbound.ObjToInt()).OrderBy(x=>x.TaskNum).FirstOrDefault();
+                            if (newTask != null)
+                            {
+                                device.SetValue(W_ConveyorLineFLDB.Barcode, newTask.PalletCode, item.StationCode);
+                                Thread.Sleep(500);
+                                device.SetValue(W_ConveyorLineFLDB.TaskNum, newTask.TaskNum, item.StationCode);
+                                Thread.Sleep(500);
+                                device.SetValue(GroundStationDBName.W_PutFinish, true, item.StationCode);
+                                _taskService.UpdateTask(newTask, TaskStatusEnum.Line_Executing);
+                            }
                         }
+                        if (item.StationCode == "8005")
+                        {
+                            R_ConveyorLineFLInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineFLInfo>(deviceProRead.DeviceProAddress);
+                            bool conveyArrivaled = device.GetValue<R_ConveyorLineFLDB, bool>(R_ConveyorLineFLDB.ConveyArrivaled, item.StationCode);
+                            fLReadData.W_PutFinish5 = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_PutFinish, item.StationCode);
+                            fLReadData.R_ConveyArrivaled5 = device.GetValue<R_ConveyorLineFLDB, bool>(R_ConveyorLineFLDB.ConveyArrivaled, item.StationCode);
+                            fLReadData.R_Barcode5 = conveyorLineInfoRead.Barcode;
+                            fLReadData.R_TaskNum5 = conveyorLineInfoRead.TaskNum;
+                        }
+                        else if (item.StationCode == "8001")
+                        {
+                            fLReadData.W_PutFinish1 = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_PutFinish, item.StationCode);
+                            fLReadData.R_IsCanPut = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanPut, item.StationCode);
+                        }
+                        string yMData = JsonConvert.SerializeObject(fLReadData);
+                        _webSocketServer.PublishAllClientPayload(yMData);
                     }
 
                 }

--
Gitblit v1.9.3