From 413194b8c6a71fea8cb7a567800b11703c6c7d5a Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 11 六月 2025 14:40:05 +0800
Subject: [PATCH] 添加叠托机业务

---
 Admin.NET/WCS.Application/OpenApi/OpenApi.cs |   76 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 14 deletions(-)

diff --git a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
index ba4d4a6..c6a068c 100644
--- a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -3,6 +3,7 @@
 using Furion.Logging;
 using WCS.Application.Entity;
 using WCS.Application.Util;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionRequest.Types;
 
 namespace WCS.Application;
 
@@ -98,7 +99,8 @@
             throw Oops.Bah("浠诲姟宸插瓨鍦�!");
         }
         var listTask = new List<WcsTask>();
-        foreach (var models in modelList)
+        var list = modelList.OrderBy(m => m.Order).ThenBy(m => m.TaskNo).ToList();
+        foreach (var models in list)
         {
             if (models.TaskType == "0")
             {
@@ -125,6 +127,7 @@
                 EndLocate = models.EndLocate,
                 EndRoadway = models.EndRoadway,
                 PalletNo = models.PalletNo,
+                CreateTime = DateTime.Now
             };
 
             // 鑻ラ潪AGV浠诲姟澧炲姞浠诲姟ID
@@ -133,9 +136,9 @@
                 taskAdd.TaskId = FourWayCarUtil.GetTaskId(); 
             }
 
-            listTask.Add(taskAdd);
+            await _db.Insertable(taskAdd).ExecuteCommandAsync();
         }
-        await _db.Insertable(listTask).ExecuteCommandAsync();
+        
     }
     /// <summary>
     /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(鍗曟潯浠诲姟)
@@ -418,21 +421,26 @@
     [UnitOfWork]
     public async Task<dynamic> agvCallback(AGVCallBackInput input)
     {
+        Log.Information("AGV鍙嶉浠诲姟" + input.ToJson());
         AGVCallBackResponse result = new AGVCallBackResponse()
         {
             ReqCode = input.ReqCode,
             Message = "鎴愬姛",
             Code = "0"
         };
-        if (input.TaskCode.Substring(0, 3) != "WCS" && input.TaskCode.Substring(0, 2) != "TK")
+        if (input.robotTaskCode.Substring(0, 3) != "WCS" && input.robotTaskCode.Substring(0, 2) != "TK")
+        {
+            result.Message = "鍙嶉鐨勪换鍔′笉鏄疻CS鐨勪换鍔�"; 
+            result.Code = "1";
             return result;
+        }
         PLCUtil modUtil = null;
         try
         {
-            var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.TaskCode);
+            var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.robotTaskCode);
             if (modTask != null)
             {
-                switch (input.Method)
+                switch (input.Extra.Values.Method)
                 {
                     case "end"://浠诲姟瀹屾垚
                         {
@@ -459,15 +467,26 @@
                                 var inputs = new TaskRequestWMS();
                                 inputs.TaskNo = modTask.TaskNo;
                                 inputs.PalletNo = modTask.PalletNo;
-                                inputs.TaskType = modTask.TaskType.ToString();
+                                inputs.TaskType = ((int)modTask.TaskType).ToString();
                                 inputs.TaskStatus = "2";
                                 var modResponseTask = httpService.RequestTask(inputs).Result;
                             }
                             
                         }
                         break;
-                    case "admin"://璧板嚭鍌ㄤ綅
+                    case "outbin"://璧板嚭鍌ㄤ綅
                         {
+                            WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor()
+                            {
+                                TaskNo = modTask.TaskNo,
+                                //PlcId = modDevice.PlcId,
+                                PlcName = "AGV",
+                                StartLocat = modTask.StartLocate,
+                                EndLocat = modTask.EndLocate,
+                                Status = TaskStatusEnum.Complete,
+                                InteractiveMsg = $"AGV灏忚溅鍙嶉浠诲姟鍙栬揣瀹屾垚锛岃蛋鍑哄偍浣�",
+                            };
+                            await _db.Insertable(modTaskMonitor).ExecuteCommandAsync();
                             //鍙嶉WMS浠诲姟鍙栬揣瀹屾垚銆乄MS鍒ゆ柇鏄钩搴撳偍浣嶅氨鏇存柊鍌ㄤ綅鐘舵��
                             if (modTask.Origin == "WMS")
                             {
@@ -475,22 +494,22 @@
                                 var inputs = new TaskRequestWMS();
                                 inputs.TaskNo = modTask.TaskNo;
                                 inputs.PalletNo = modTask.PalletNo;
-                                inputs.TaskType = "2";
+                                inputs.TaskType = ((int)modTask.TaskType).ToString();
                                 inputs.TaskStatus = "2";
                                 var modResponseTask = httpService.RequestTaskQh(inputs).Result;
                             }
 
                         }
                         break;
-                    case "continue"://鏀捐揣鐢宠
+                    case "release"://鏀捐揣鐢宠
                         {
-                            if (modTask.EndLocate != "B010101")//9鍙峰伐浣嶅湴鍧�
+                            if (modTask.EndLocate != "B040101")//9鍙峰伐浣嶅湴鍧�
                             {
                                 result.Code = "1";
                                 result.Message = "鎵句笉鍒拌浠诲姟";
                                 return result;
                             }
-                            modTask.Status = TaskStatusEnum.Complete;
+                            //modTask.Status = TaskStatusEnum.Complete;
                             modTask.IsComple = "1";
                             await _db.Updateable(modTask).ExecuteCommandAsync();
                             WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor()
@@ -506,7 +525,36 @@
                             await _db.Insertable(modTaskMonitor).ExecuteCommandAsync();
                             HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>());
                             HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>());
-                            
+                            if (modTask.Origin == "WMS")
+                            {
+                                HttpService httpService = new HttpService();
+                                var inputs = new TaskRequestWMS();
+                                inputs.TaskNo = modTask.TaskNo;
+                                inputs.PalletNo = modTask.PalletNo;
+                                inputs.TaskType = ((int)modTask.TaskType).ToString();
+                                inputs.TaskStatus = "2";
+                                var modResponseTask = httpService.RequestTaskQh(inputs).Result;
+                            }
+                        }
+                        break;
+                    case "notifyFullSite":
+                        {
+                            var palletNo = input.Extra.Values.carrierCode;
+                            var count = input.Extra.Values.pileCount;
+                            if (string.IsNullOrWhiteSpace(palletNo) || count <= 0)
+                            {
+                                throw new Exception("鍙傛暟锛氭墭鐩樺彿/鏁伴噺楠岃瘉澶辫触");
+                            }
+                            //鍚慦MS鐢宠绌烘墭鍏ュ簱
+                            HttpService httpService = new HttpService();
+                            var inputs = new NullPallInRequest();
+                             
+                            inputs.PalletNo = modTask.PalletNo;
+                            inputs.PallNum = count;
+                            inputs.Locate = "B100101";//鍙犳墭鐩樻満浣嶇疆
+                            inputs.HouseNo = "W02";
+                            var modResponseTask = httpService.RequestLiKuPallet(inputs);
+
                         }
                         break;
                     case "cancel"://浠诲姟鍙栨秷
@@ -555,7 +603,7 @@
             modUtil?.Close();
         }
 
-
+        Log.Information("AGV鍙嶉浠诲姟杩斿洖" + result.ToJson());
         return result;
     }
     

--
Gitblit v1.8.0