From 26f88473f470ab34f46d95642035a4e5f6b69847 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 15 一月 2026 13:53:10 +0800
Subject: [PATCH] 同步

---
 项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |  195 +++++++++++++++---------------------------------
 1 files changed, 60 insertions(+), 135 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 0d98309..b4e8964 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"
@@ -43,6 +43,7 @@
 using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.StackerCraneJob;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
 using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
@@ -88,19 +89,37 @@
 
                     foreach (var station in stationManagers)
                     {
-                        ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
+                        var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode);
 
-                        DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.RequestTask.ToString());
-
-                        //x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal)
+                        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, command, station });
+                                method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
                             }
                         }
+
+                        //ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
+                        //command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", "");
+                        //command.CarColor.Replace("/0", "");
+                        //command.CarType.Replace("/0", "");
+                        //command.CarCate.Replace("/0", "");
+                        //command.CatSkyWindow.Replace("/0", "");
+
+                        //DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.Request.ToString());
+
+                        ////x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal)
+                        //if (deviceProtocolDetails != null)
+                        //{
+                        //    MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
+                        //    if (method != null)
+                        //    {
+                        //        method.Invoke(this, new object[] { conveyorLine, command, station });
+                        //    }
+                        //}
                         #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
 
                         //var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
@@ -136,32 +155,32 @@
         }
 
         /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍒嗛厤璺緞
+        /// 杈撻�佺嚎璇锋眰鍏ュ簱
         /// </summary>
         /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
         /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
         /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestInboundFlow(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+        public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
         {
-            var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹傛祦鍚�";
+            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 taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+            var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
+            var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
             if (taskNew == null)
             {
-                if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status)
+                if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
                 {
-                    Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+                    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.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
-                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+                        //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
 
                         _taskService.UpdateTaskStatusToNext(task);
                     }
@@ -169,18 +188,8 @@
                 else
                 {
                     //濡傛灉浠诲姟璇锋眰澶辫触
-                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
                 }
-            }
-            else
-            {
-                conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode);
-
-                conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
-                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
-                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-
-                _taskService.UpdateTaskStatusToNext(taskNew);
             }
         }
 
@@ -199,18 +208,18 @@
             WriteInfo(conveyorLine.DeviceName, log);
             //if()
 
-            var taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+            var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
             if (taskNew == null)
             {
-                if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status)
+                if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
                 {
-                    Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+                    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.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
-                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+                        //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
 
                         _taskService.UpdateTaskStatusToNext(task);
                     }
@@ -218,25 +227,8 @@
                 else
                 {
                     //濡傛灉浠诲姟璇锋眰澶辫触
-                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
                 }
-            }
-            else
-            {
-                conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode);
-
-                if ((taskNew.TargetAddress == "2042" || taskNew.TargetAddress == "2032") && taskNew.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
-                {
-                    conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.TargetAddress, stationInfo.stationChildCode);
-                }
-                else
-                {
-                    conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
-                }
-                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
-                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-
-                _taskService.UpdateTaskStatusToNext(taskNew);
             }
         }
 
@@ -249,7 +241,7 @@
         public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
         {
             //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
-            var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode);
+            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);
@@ -258,11 +250,11 @@
                 ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
                 if (content.Status)
                 {
-                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                 }
                 else
                 {
-                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+                    //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
                 }
             }
         }
@@ -279,17 +271,12 @@
             var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode);
             if (task != null)
             {
-                conveyorLine.SetValue(ConveyorLineDBName.Barcode, task.PalletCode, stationInfo.stationChildCode);
-                conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
-                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+                conveyorLine.SetValue(ConveyorLineDBName.SkidNo, task.PalletCode, stationInfo.stationChildCode);
+                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
+                //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
 
                 //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
                 _taskService.UpdateTaskStatusToNext(task);
-
-                if (task.TargetAddress == "2009" && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
-                {
-                    _taskService.UpdateTaskStatusToNext(task);
-                }
             }
         }
 
@@ -303,89 +290,27 @@
         /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
         public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
         {
-            var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode);
+            var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode);
             if (task != null)
             {
-                if (task.TargetAddress == "2032" || task.TargetAddress == "2042")
-                {
-                    bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
-                    bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-                    WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
-                }
-                else
-                {
-                    WebResponseContent content = _taskService.RequestWheelsFlow(task.PalletCode).Result;
-                    if (content.Status)
-                    {
-                        string taraddress = content.Data.ToString(); // "2032";SourceAddress
-
-                        bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
-                        bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-                        WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
-                    }
-                    else
-                    {
-                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-
-                        Console.Out.WriteLine($"璇诲彇鍒拌緭閫佺嚎鐢宠,鐢宠鏉$爜锛歿command.Barcode}锛屽悜WMS鐢宠鍘诲悜澶辫触锛屽師鍥狅細{content.Message},鍐欏叆鐢宠瘔淇℃晠闅滐細2");
-                    }
-                }
-
-            }
-            else
-            {
-
-                string taraddresspos = _taskService.RequestWheletHty(command.Barcode);
-                if (taraddresspos != null)
+                var canTask = _taskRepository.QueryData(x => true).OrderByDescending(x => x.Grade).ThenBy(x => x.CreateDate).FirstOrDefault();
+                if (null != canTask && task.PalletCode == canTask.PalletCode)
                 {
 
-                    bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taraddresspos, stationInfo.stationChildCode);
-                    bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+                    //WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
 
-                }
-                else
-                {
-                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-                    Console.Out.WriteLine($"璇诲彇鍒拌緭閫佺嚎鐢宠,鐢宠鏉$爜锛歿command.Barcode}锛屾湭鎵惧埌浠诲姟锛岀敵璇蜂笅涓�鍦板潃涓猴細{stationInfo.stationChildCode},鍐欏叆鐢宠瘔淇℃晠闅滐細2");
+                    //command.PalletCode = (Int32)20;
+                    //command.PVI = "ABCD0123456789";
+                    //command.CarCate = "SUV";
+                    //command.CarColor = "AB01";
+
+                    conveyorLine.SetValue(ConveyorLineDBName.SkidNo, 20, stationInfo.stationChildCode);
+
+                    conveyorLine.SetValue(ConveyorLineDBName.PVI, "ABCD", stationInfo.stationChildCode);
+
+                    //conveyorLine.SendCommand<ConveyorLineTaskCommand>(command, stationInfo.stationChildCode);
                 }
             }
         }
-
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍏ュ簱
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        //public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode)
-        //{
-        //    var stationInfo = _stationManagerService.GetStationInfoByChildCode(childDeviceCode);
-        //    if (stationInfo != null)
-        //    {
-        //        //_taskService.r
-        //    }
-        //    var taskNew = _taskService.QueryCraneConveyorLineTask(command.ConveyorLineTaskNum.ObjToInt(), childDeviceCode);
-        //    if (taskNew == null)
-        //    {
-        //        string barcode = command.ConveyorLineBarcode.TrimEnd();
-        //        if (_taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode).Result.Status)
-        //        {
-        //            Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-        //            if (task != null)
-        //            {
-        //                ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task);
-        //                //taskCommand.InteractiveSignal = command.InteractiveSignal;
-        //                taskCommand.ResponState = 1;
-        //                taskCommand.ConveyorLineTaskNum = task.TaskNum;
-        //                taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(task.NextAddress);
-        //                conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-        //                //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-        //                _taskService.UpdateTaskStatusToNext(task);
-        //            }
-        //        }
-        //    }
-        //}
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3