From 2ae5aa151f7b40a082e34aa7ed22b4b64edd1d3c Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 11 六月 2025 17:13:56 +0800
Subject: [PATCH] 修改堆垛机通讯协议及交互逻辑

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs |   64 +++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 22 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index 9cf7970..dae6e2e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -17,7 +17,14 @@
 {
     public partial class TaskService
     {
+        /// <summary>
+        /// WCS IP鍦板潃
+        /// </summary>
         public string url = AppSettings.Configuration["WCS"];
+        /// <summary>
+        /// AGV IP鍦板潃
+        /// </summary>
+        public string AGVurl = AppSettings.Configuration["AGV"];
         /// <summary>
         /// PDA鐢宠鍏ュ簱--鍫嗗灈鏈虹珛搴撳叆搴�
         /// </summary>
@@ -41,7 +48,7 @@
             {
                 return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟绫诲瀷涓氬姟");
             }
-            return WebResponseContent.Instance.Error("閿欒");
+            return WebResponseContent.Instance.Error($"閿欒");
         }
 
         /// <summary>
@@ -61,7 +68,7 @@
             }
             catch (Exception ex)
             {
-                content = WebResponseContent.Instance.Error(ex.Message);
+                content = WebResponseContent.Instance.Error($"{ex.Message}");
             }
             return content;
         }
@@ -84,7 +91,7 @@
             }
             catch (Exception ex)
             {
-                content = WebResponseContent.Instance.Error(ex.Message);
+                content = WebResponseContent.Instance.Error($"{ex.Message}");
             }
             return content;
         }
@@ -106,9 +113,9 @@
             {
                 _unitOfWorkManage.BeginTran();
                 Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, taskType);
-                //Dt_LocationInfo dt_LocationInfo = null;
                 if (locationInfo != null)
                 {
+                    List<Dt_Task> tasks = new List<Dt_Task>();
                     Dt_Task task = new()
                     {
                         CurrentAddress = stationCode,
@@ -120,52 +127,65 @@
                         TargetAddress = locationInfo.LocationCode,
                         TaskStatus = InTaskStatusEnum.InNew.ObjToInt(),
                         TaskType = taskType,
+                        Depth = locationInfo.Depth,
                     };
                     BaseDal.AddData(task);
                     int beforeStatus = locationInfo.LocationStatus;
 
-
-                    
                     if (isUpdateStock)
                     {
                         locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
-                        _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                        if (locationInfo.Depth == 2)
+                        {
+                            _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                        }
 
                         if (stockInfo != null && stockInfo.Details != null && stockInfo.Details.Count > 0)
                         {
                             orderNo = stockInfo.Details.FirstOrDefault()?.OrderNo ?? "";
 
                             stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                            stockInfo.Details.ForEach(x =>
+                            {
+                                x.Status = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                            });
                             _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+                            _stockService.StockInfoDetailService.Repository.UpdateData(stockInfo.Details);
                         }
                         else
                         {
-                            return content = WebResponseContent.Instance.Error("鏈壘鍒板簱瀛樹俊鎭�");
+                            return content.Error("鏈壘鍒板簱瀛樹俊鎭�");
                         }
                     }
                     else
                     {
                         locationInfo.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt();
-                        _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                        if (locationInfo.Depth == 2)
+                        {
+                            _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                        }
+                        task.Grade = 1;
                     }
                     _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-                    List<Dt_Task> tasks = new List<Dt_Task>(); 
+
                     tasks.Add(task);
                     _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), orderNo, task.TaskNum);
+
                     var response = HttpHelper.Post<WebResponseContent>(url + "ReceiveTask/", tasks, "鍏ュ簱浠诲姟涓嬪彂");
                     if (!response.Status)
                     {
-                        return content = WebResponseContent.Instance.Error("浠诲姟涓嬪彂寮傚父"); 
+                        _unitOfWorkManage.RollbackTran();
+                        return content.Error($"{response.Message}");
                     }
                     _unitOfWorkManage.CommitTran();
-                    return content = WebResponseContent.Instance.OK();
+                    return content.OK();
                 }
-                return content = WebResponseContent.Instance.Error("鏈壘鍒板彲鍒嗛厤璐т綅");
+                return content.Error("鏈壘鍒板彲鍒嗛厤璐т綅");
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
-                content = WebResponseContent.Instance.Error(ex.Message);
+                content.Error(ex.Message);
             }
             return content;
         }
@@ -182,40 +202,40 @@
         {
             if (BaseDal.QueryFirst(x => x.PalletCode == palletCode) != null)
             {
-                return (false, "璇ユ墭鐩樺彿宸叉湁浠诲姟");
+                return (false, "璇ユ墭鐩樺彿宸叉湁浠诲姟!");
             }
             if (BaseDal.QueryFirst(x => (x.SourceAddress == stationCode || x.CurrentAddress == stationCode) && x.TaskStatus == InTaskStatusEnum.InNew.ObjToInt()) != null)
             {
-                return (false, "褰撳墠鍏ュ簱绔欏彴宸叉湁涓�鏉℃柊寤轰换鍔�");
+                return (false, "褰撳墠鍏ュ簱绔欏彴宸叉湁涓�鏉℃柊寤轰换鍔�!");
             }
             if (isCheckStock)
             {
                 if (stockInfo == null)
                 {
-                    return (false, "鏈壘鍒扮粍鐩樹俊鎭�");
+                    return (false, "鏈壘鍒扮粍鐩樹俊鎭�!");
                 }
                 if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
                 {
-                    return (false, "璇ョ粍鐩樼姸鎬佷笉鍙叆搴�");
+                    return (false, "璇ョ粍鐩樼姸鎬佷笉鍙叆搴�!");
                 }
                 if (!string.IsNullOrEmpty(stockInfo.LocationCode))
                 {
-                    return (false, "璇ユ墭鐩樺凡缁戝畾璐т綅");
+                    return (false, "璇ユ墭鐩樺凡缁戝畾璐т綅!");
                 }
                 if (stockInfo.Details == null || stockInfo.Details.Count == 0)
                 {
-                    return (false, "娌℃湁搴撳瓨鏄庣粏淇℃伅");
+                    return (false, "娌℃湁搴撳瓨鏄庣粏淇℃伅!");
                 }
             }
             else
             {
                 if (_stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == palletCode) != null)
                 {
-                    return (false, "璇ユ墭鐩樺凡瀛樺湪搴撳唴");
+                    return (false, "璇ユ墭鐩樺凡瀛樺湪搴撳唴!");
                 }
             }
 
-            return (true, "鎴愬姛");
+            return (true, "鎴愬姛!");
         }
 
 

--
Gitblit v1.9.3