From 17e5dbd7bd0364e27a33f1a7dab91cf33d5dcabc Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 04 三月 2026 11:52:12 +0800
Subject: [PATCH] 增强Redis缓存服务与设备通信优化

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
index cb2da11..729e360 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
@@ -18,10 +18,15 @@
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using AutoMapper;
+using Microsoft.Extensions.Configuration;
 using Quartz;
+using SqlSugar;
+using System.Text.Json;
+using WIDESEA_Core;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
@@ -36,15 +41,17 @@
         private readonly ITaskExecuteDetailService _taskExecuteDetailService;
         private readonly IRouterService _routerService;
         private readonly IMapper _mapper;
-        ConveyorLineDispatchHandler _conveyorLineDispatch;
+        private ConveyorLineDispatchHandler _conveyorLineDispatch;
+        private readonly HttpClientHelper _httpClientHelper;
 
-        public CommonConveyorLineNewJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper)
+        public CommonConveyorLineNewJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, HttpClientHelper httpClientHelper)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
             _routerService = routerService;
             _mapper = mapper;
             _conveyorLineDispatch = new ConveyorLineDispatchHandler(_taskService, _taskExecuteDetailService, _routerService, _mapper);
+            _httpClientHelper = httpClientHelper;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -73,10 +80,45 @@
                         try
                         {
                             ConveyorLineTaskCommandNew command = conveyorLine.ReadCustomer<ConveyorLineTaskCommandNew>(childDeviceCode);
-                            if (command == null || command.PLC_STB != 1)
+
+
+                            if (command == null)
                             {
                                 return;
                             }
+
+                            #region 妫�鏌ョ壒瀹氫綅缃槸鍚︽湁鎵樼洏
+
+                            var checkPalletPositions = App.Configuration.GetSection("CheckPalletPositions")
+                                .Get<List<CheckPalletPosition>>() ?? new List<CheckPalletPosition>();
+
+                            if (checkPalletPositions.Any(x => x.Code == childDeviceCode))
+                            {
+                                if (command.CV_State.ObjToBool())
+                                {
+                                    var existingTask = _taskService.Repository.QueryFirst(x => x.TargetAddress == childDeviceCode);
+                                    if (existingTask.IsNullOrEmpty())
+                                    {
+                                        var position = checkPalletPositions.FirstOrDefault(x => x.Code == childDeviceCode);
+                                        var responseResult = _httpClientHelper.Post<WebResponseContent>("GetOutBoundTrayTaskAsync", new CreateTaskDto()
+                                        {
+                                            WarehouseId = position.WarehouseId,
+                                            TargetAddress = childDeviceCode
+                                        }.Serialize());
+
+                                        if (responseResult.IsSuccess && responseResult.Data.Status)
+                                        {
+                                            var wmsTask = JsonSerializer.Deserialize<List<WMSTaskDTO>>(responseResult.Data.Data.Serialize());
+                                            if (wmsTask != null)
+                                                _taskService.ReceiveWMSTask(wmsTask);
+                                        }
+                                    }
+                                }
+                            }
+
+                            #endregion
+
+                            if (command.PLC_STB != 1) return;//PLC_STB=1鏃舵墠澶勭悊浠诲姟
 
                             if (command.Barcode.IsNullOrEmpty())
                             {
@@ -97,7 +139,6 @@
                                 // 澶勭悊浠诲姟鐘舵��
                                 ProcessTaskState(conveyorLine, command, task, childDeviceCode);
                             }
-
                         }
                         catch (Exception innerEx)
                         {
@@ -112,7 +153,6 @@
             }
             return Task.CompletedTask;
         }
-
 
         /// <summary>
         /// 澶勭悊浠诲姟鐘舵��
@@ -158,7 +198,5 @@
                     break;
             }
         }
-
-
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3