From f45293a0c3c9838567d6ff01eae53157a9ed5284 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 05 三月 2026 10:59:38 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |  242 ++++++++++++++++++++++++++++++------------------
 1 files changed, 152 insertions(+), 90 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index b4e8964..eaab7f1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -61,10 +61,11 @@
         private readonly ICacheService _cacheService;
         private readonly INoticeService _noticeService;
         private readonly IDt_needBarcodeRepository _needBarcodeRepository;
+        private readonly IDt_StationManagerRepository _stationManagerRepository;
         private static List<string>? userTokenIds;
         private static List<int>? userIds;
 
-        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository)
+        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository, IDt_StationManagerRepository stationManagerRepository)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -76,6 +77,7 @@
             _cacheService = cacheService;
             _noticeService = noticeService;
             _needBarcodeRepository = needBarcodeRepository;
+            _stationManagerRepository = stationManagerRepository;
         }
 
         public async Task Execute(IJobExecutionContext context)
@@ -89,18 +91,78 @@
 
                     foreach (var station in stationManagers)
                     {
-                        var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode);
 
-                        DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString());
-                       
-                        if (deviceProtocolDetails != null)
+                        if (station.stationType == 8)  //鐒婅鎺ヨ溅閫昏緫澶勭悊
                         {
-                            MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
-                            if (method != null)
+                            var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode);
+                            if (request)
                             {
-                                method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
+                                var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode);
+                                var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode);
+
+                                WebResponseContent response = _taskService.RequestWhiteBody(palletcode.ToString(), pvi, station).Result;
+                                if (response.Status)
+                                {
+                                    conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+                                }
                             }
                         }
+                        if (station.stationType == 5)  //鐒婅鎻愬崌鏈洪�昏緫澶勭悊
+                        {
+                            var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode);
+                            if (request)
+                            {
+                                var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode);
+                                var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode);
+
+                                WebResponseContent response = _taskService.RequestRoadWayTask(palletcode.ToString(), pvi, station).Result;
+                                if (response.Status)
+                                {
+                                    var task = _taskService.QueryBarCodeConveyorLineTask(palletcode.ToString(), station.stationChildCode);
+                                    if (task != null)
+                                    {
+                                        var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
+                                        conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode);
+                                        Thread.Sleep(300);
+                                        conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, Convert.ToInt16(stationInfo.stationTCLocation), station.stationChildCode);
+                                        conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+
+                                        _taskService.UpdateTaskStatusToNext(task);
+                                    }
+                                }
+                            }
+                            //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                            //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+                            //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInboundRoadWayNo)?.ConfigValue;
+                            //if (wmsBase == null || requestTask == null)
+                            //{
+                            //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                            //}
+                            //var wmsIpAddrss = wmsBase + requestTask;
+
+                            //var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletcode, Roadways = station.Roadway, area = station.stationArea, Position = station.stationChildCode, PVI = pvi }.ToJsonString());
+                            //WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                            //if (!content.Status)
+                            //{
+                            //    return;
+                            //}
+
+                            ////鐒婃秱鎻愬崌鏈�  鐩撮�氫汉娑傝-2  鍏ュ簱-3
+                            //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode);
+                            //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, 5, station.stationChildCode);
+                            //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode);
+                        }
+
+                        //DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString());
+
+                        //if (deviceProtocolDetails != null)
+                        //{
+                        //    MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
+                        //    if (method != null)
+                        //    {
+                        //        method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
+                        //    }
+                        //}
 
                         //ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
                         //command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", "");
@@ -154,44 +216,44 @@
             return;
         }
 
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍏ュ簱
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
-        {
-            var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
-            ConsoleHelper.WriteSuccessLine(log);
+        ///// <summary>
+        ///// 杈撻�佺嚎璇锋眰鍏ュ簱
+        ///// </summary>
+        ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+        ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+        ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+        //public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
+        //{
+        //    var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
+        //    ConsoleHelper.WriteSuccessLine(log);
 
-            //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-            WriteInfo(conveyorLine.DeviceName, log);
-            //if()
-            var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
-            var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
-            if (taskNew == null)
-            {
-                if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
-                {
-                    Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
-                    if (task != null)
-                    {
-                        //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+        //    //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+        //    WriteInfo(conveyorLine.DeviceName, log);
+        //    //if()
+        //    var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
+        //    var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
+        //    if (taskNew == null)
+        //    {
+        //        if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
+        //        {
+        //            Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
+        //            if (task != null)
+        //            {
+        //                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
 
-                        //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
-                        //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+        //                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+        //                //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
 
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-                else
-                {
-                    //濡傛灉浠诲姟璇锋眰澶辫触
-                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-                }
-            }
-        }
+        //                _taskService.UpdateTaskStatusToNext(task);
+        //            }
+        //        }
+        //        else
+        //        {
+        //            //濡傛灉浠诲姟璇锋眰澶辫触
+        //            //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+        //        }
+        //    }
+        //}
 
         /// <summary>
         /// 杈撻�佺嚎璇锋眰鍏ュ簱
@@ -199,38 +261,38 @@
         /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
         /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
         /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
-        {
-            var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
-            ConsoleHelper.WriteSuccessLine(log);
+        //public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+        //{
+        //    var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
+        //    ConsoleHelper.WriteSuccessLine(log);
 
-            //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-            WriteInfo(conveyorLine.DeviceName, log);
-            //if()
+        //    //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+        //    WriteInfo(conveyorLine.DeviceName, log);
+        //    //if()
 
-            var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
-            if (taskNew == null)
-            {
-                if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
-                {
-                    Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
-                    if (task != null)
-                    {
-                        //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+        //    var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+        //    if (taskNew == null)
+        //    {
+        //        if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
+        //        {
+        //            Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+        //            if (task != null)
+        //            {
+        //                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
 
-                        //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
-                        //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+        //                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+        //                //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
 
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-                else
-                {
-                    //濡傛灉浠诲姟璇锋眰澶辫触
-                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-                }
-            }
-        }
+        //                _taskService.UpdateTaskStatusToNext(task);
+        //            }
+        //        }
+        //        else
+        //        {
+        //            //濡傛灉浠诲姟璇锋眰澶辫触
+        //            //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+        //        }
+        //    }
+        //}
 
         /// <summary>
         /// 杈撻�佺嚎鍏ュ簱瀹屾垚
@@ -238,26 +300,26 @@
         /// <param name="conveyorLine"></param>
         /// <param name="command"></param>
         /// <param name="stationInfo"></param>
-        public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
-        {
-            //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
-            var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
-            if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
-            {
-                //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+        //public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+        //{
+        //    //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
+        //    var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
+        //    if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
+        //    {
+        //        //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
 
-                WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
-                ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
-                if (content.Status)
-                {
-                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-                }
-                else
-                {
-                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-                }
-            }
-        }
+        //        WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
+        //        ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
+        //        if (content.Status)
+        //        {
+        //            //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+        //        }
+        //        else
+        //        {
+        //            //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+        //        }
+        //    }
+        //}
 
         /// <summary>
         /// 杈撻�佺嚎璇锋眰鍑轰俊鎭�

--
Gitblit v1.9.3