From b31d961a3f0bcd2e555ea12b76c30c453826deba Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 28 七月 2025 09:42:58 +0800
Subject: [PATCH] 代码提交

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs |   94 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 69 insertions(+), 25 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs"
index 227a2e1..478a196 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs"
@@ -1,6 +1,7 @@
 锘縰sing HslCommunication;
 using Mapster;
 using Newtonsoft.Json;
+using SqlSugar;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEAWCS_Common;
@@ -11,6 +12,7 @@
 using WIDESEAWCS_Model.BasicInfo;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 
 namespace WIDESEAWCS_Tasks
@@ -26,28 +28,20 @@
                 case 1:
                     await RequestTask(conveyorLine, command, childDeviceCode, stationManager);
                     break;
-
+                case 9:
+                    RequestWMSTask(conveyorLine, stationManager);
+                    break;
                 case 2:
                 case 3:
-                    RequestInOrOutbound(command, conveyorLine, stationManager, task);
+                    RequestNextAddress(command, conveyorLine, stationManager, task);
                     break;
-                default:
-                    break;
-            }
-        }
-
-        public void HandleFinishTaskAsync(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, Dt_Task task=null)
-        {
-            var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode);
-
-            switch (stationManager.stationType)
-            {
                 case 4:
                 case 5:
-                    ConveyorLineInOrOutFinish(conveyorLine, command, stationManager, task);
-                    break;
-                case 7:
-                    ConveyorLineOutFinish(conveyorLine, command, stationManager, task);
+                    task = _taskService.QueryConveyorLineFinishTask(stationManager.stationChildCode, command.TaskNum);
+                    if (task != null)
+                    {
+                        _taskService.UpdateTaskStatusToNext(task);
+                    }
                     break;
                 default:
                     break;
@@ -56,31 +50,49 @@
 
         private async Task RequestTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, Dt_StationManager stationManager)
         {
-            var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode);
+            var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode && x.TaskState < (int)TaskInStatusEnum.RGV_InExecutingFinish && x.TaskState >= (int)TaskInStatusEnum.InNew);
             if (hasTask != null)
             {
                 var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵hasTask.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵hasTask.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎瀛樺湪浠诲姟";
                 ConsoleHelper.WriteWarningLine(log);
 
-               await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+                await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                 WriteInfo(conveyorLine.DeviceName, log);
                 return;
             }
             var RGVName = string.Empty;
             if (stationManager.stationFloor == "1F")
             {
-                var RGVOne = _taskRepository.QueryData(x => x.RGVName == "RGV01").ToList();
-                var RGVTwo = _taskRepository.QueryData(x => x.RGVName == "RGV02").ToList();
-                if (RGVOne.Count > RGVTwo.Count)
+                var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "1F").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList();
+                if (deviceCode != null && deviceCode.Count() > 0)
                 {
-                    RGVName = "RGV01";
+                    if (deviceCode.Contains("RGV01") && deviceCode.Contains("RGV02"))
+                    {
+                        var RGVOne = _taskRepository.QueryData(x => x.RGVName == "RGV01").ToList();
+                        var RGVTwo = _taskRepository.QueryData(x => x.RGVName == "RGV02").ToList();
+                        if (RGVOne.Count > RGVTwo.Count)
+                        {
+                            RGVName = "RGV01";
+                        }
+                        else
+                        {
+                            RGVName = "RGV02";
+                        }
+                    }
+                    else
+                    {
+                        RGVName = deviceCode[0];
+                    }
                 }
                 else
                 {
-                    RGVName = "RGV02";
+                    RGVName = "RGV01";
                 }
             }
-
+            else
+            {
+                RGVName = "RGV03";
+            }
             Dt_Task task = new Dt_Task()
             {
                 TaskNum = _taskRepository.GetTaskNo().Result,
@@ -95,5 +107,37 @@
             };
             _taskRepository.AddData(task);
         }
+        private void RequestWMSTask(CommonConveyorLine conveyorLine,  Dt_StationManager stationManager)
+        {
+            var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationNextChildCode);
+
+            if (Barcode == "")
+            {
+                conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), stationManager.stationChildCode);
+            }
+            var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode);
+            if (task != null)
+            {
+
+            }
+            else
+            {
+                //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.RequestTask)?.ConfigValue;
+                //var keys = new Dictionary<string, object>()
+                //{
+                //    {"TPbarcode", Barcode},
+                //    {"WhCode", "1001"},
+                //    {"BeginPoint", stationManager.stationChildCode}
+                //};
+                //if (wmsBase == null || requestTask == null)
+                //{
+                //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                //}
+                //var wmsIpAddress = wmsBase + requestTask;
+                //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result;
+            }
+        }
     }
 }

--
Gitblit v1.9.3