From 9086b238cd9fbb9fbeae7cab11d59576cd9d2853 Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期一, 24 十一月 2025 10:27:01 +0800
Subject: [PATCH] 合并

---
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs |  140 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 134 insertions(+), 6 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 7b7782f..820e628 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -27,6 +27,7 @@
 using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_Core.LogHelper;
+using WIDESEAWCS_DTO;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ITaskInfoRepository;
@@ -128,7 +129,46 @@
             {
                 return WebResponseContent.Instance.Error(ex.Message);
             }
+        }   
+
+        /// <summary>
+        /// 浠诲姟閲嶆柊涓嬪彂
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        public WebResponseContent ResendTask(int taskNum)
+        {
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task != null)
+                {
+                    if (task.TaskState == (int)TaskStatusEnum.SC_Executing)
+                    {
+                        task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+                    }
+                    else if(task.TaskState == (int)TaskStatusEnum.AGV_Executing)
+                    {
+                        task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+                    }
+                    else
+                    {
+                        return WebResponseContent.Instance.Error($"姝や换鍔� { taskNum } 鏆傛椂涓嶈兘閲嶆柊涓嬪彂浠诲姟");
+                    }
+                    BaseDal.UpdateData(task);
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒颁换鍔℃秷鎭�");
+                }
+                return WebResponseContent.Instance.OK("浠诲姟閲嶆柊涓嬪彂鎴愬姛");  
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
         }
+
         /// <summary>
         /// 鎺ユ敹WMS浠诲姟淇℃伅
         /// </summary>
@@ -181,7 +221,7 @@
                             return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�");
                         }
                         //鑾峰彇璺敱淇℃伅
-                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi));
+                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi) && x.Depth==1);
                         router = routers.FirstOrDefault();
                         if (router == null)
                         {
@@ -337,7 +377,7 @@
         // <summary>
         /// 鍏ュ簱鐢宠
         /// </summary>
-        public WebResponseContent YLPurchaseBoxing(string palletCode)
+        public WebResponseContent YLPurchaseBoxing(string palletCode, decimal weight = 0, decimal thickness = 0, decimal wide = 0,string stationCode="")
         {
             WebResponseContent? content = new WebResponseContent();
             try
@@ -347,7 +387,7 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
                 }
-                string responseStr = HttpHelper.Get($"{address}/api/Task/YLPurchaseBoxing?palletCode={palletCode}");
+                string responseStr = HttpHelper.Get($"{address}/api/Task/YLPurchaseBoxing?palletCode={palletCode}&weight={weight}&thickness={thickness}&wide={wide}&stationCode={stationCode}");
                 WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
 
                 content = responseContent;
@@ -464,6 +504,74 @@
             }
             return content;
         }
+        public WebResponseContent MESBoxCodeNotice(string boxCode)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string address = AppSettings.Get("WMSApiAddress");
+                if (string.IsNullOrEmpty(address))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+                }
+                string responseStr = HttpHelper.Get($"{address}/api/Mes/MESBoxCodeNotice?boxCode={boxCode}");
+                return content.OK(responseStr);
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鍒ゆ柇鍏佽鏀捐揣
+        /// </summary>
+        /// <returns></returns>
+        public string MESAvgArriveNotice(RequestAGVArriveDTO requestAGVArriveDTO)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.MESAvgArriveNotice.ToString());
+
+            string response = Post(apiInfo.ApiAddress, JsonConvert.SerializeObject(requestAGVArriveDTO));
+
+            return response;
+        }
+        public static string Post(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
+        {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
+            try
+            {
+                using (HttpContent httpContent = new StringContent(requestJson))
+                {
+                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                    using HttpClient httpClient = new HttpClient();
+                    httpClient.Timeout = new TimeSpan(0, 0, 30);
+                    string LoginToken = AppSettings.Get("MESLoginToken");
+                    headers = new Dictionary<string, string>
+                    {
+                        //姝e紡
+                        { "LoginToken", LoginToken }
+                    };
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
+                    HttpResponseMessage responseMessage = httpClient.PostAsync(serviceAddress, httpContent).Result;
+                    result = responseMessage.Content.ReadAsStringAsync().Result;
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+            }
+        }
         public WebResponseContent CPEmptyInbound(string palletCode,string SourceAddress)
         {
             WebResponseContent content = new WebResponseContent();
@@ -496,6 +604,26 @@
             string address = AppSettings.Get("WMSApiAddress");
             if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃");
             string responseStr = HttpHelper.Get($"{address}/api/Task/AssignInboundTaskLocation?taskNum={taskNum}&roadwayNo={roadwayNo}");
+
+            WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
+            if (responseContent != null && responseContent.Status && responseContent.Data != null)
+            {
+                return responseContent.Data.ToString();
+            }
+
+            return "";
+        }
+        /// <summary>
+        /// 鍚慦MS鐢宠鍑哄簱AGV缁堢偣
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public string? RequestTargetAddress(int taskNum)
+        {
+            string address = AppSettings.Get("WMSApiAddress");
+            if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃");
+            string responseStr = HttpHelper.Get($"{address}/api/Task/AssignOutTargetAddress?taskNum={taskNum}");
 
             WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
             if (responseContent != null && responseContent.Status && responseContent.Data != null)
@@ -596,7 +724,7 @@
                 task.ModifyDate = DateTime.Now;
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage);
+                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, task.ExceptionMessage);
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -638,7 +766,7 @@
 
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵task.TaskState}銆�");
+                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵task.TaskState}銆�");
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -679,7 +807,7 @@
 
                 BaseDal.UpdateData(task);
 
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"浜哄伐灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戝洖婊氬埌銆恵task.TaskState}銆�");
+                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"浜哄伐灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戝洖婊氬埌銆恵task.TaskState}銆�");
 
                 content = WebResponseContent.Instance.OK();
             }

--
Gitblit v1.9.3