From d79fcd9534d97f5bbb4edb66dbb925dea0479304 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期日, 22 九月 2024 15:06:34 +0800
Subject: [PATCH] ssd12313

---
 Admin.NET/WCS.Application/Util/HttpService.cs |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 158 insertions(+), 4 deletions(-)

diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index cb84eb5..5a894d5 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -1,25 +1,179 @@
-锘縰sing Furion.Logging;
+锘縰sing Elastic.Clients.Elasticsearch;
+using Furion.Logging;
 using Furion.RemoteRequest.Extensions;
+using Newtonsoft.Json;
 using System.Text;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionResponse.Types;
 
 namespace WCS.Application;
 public class HttpService
 {
     private dynamic Urls;
+
+    private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
     public HttpService()
     {
         var _sysConfigService = App.GetService<SysConfigService>();//todo 杩欓噷闇�瑕佹祴璇曚笅鐢熷懡鍛ㄦ湡闂
         Urls = _sysConfigService.GetSystemInfo().Result;
     }
+
+
     /// <summary>
-    /// 璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛
+    /// 璋冪敤WMS鎺ュ彛鐢宠宸烽亾鎺ュ彛
+    /// </summary>
+    /// <param name="palletNo"></param>
+    /// <param name="startLocat"></param>
+    /// <param name="taskModel"></param>
+    /// <param name="ceng"></param>
+    /// <param name="endLocat"></param>
+    /// <param name="taskNo"></param>
+    /// <returns></returns>
+    public string RequestRoadWay(string palletNo, string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo)
+    {
+        string returnStr = "";
+       
+
+        var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo);
+
+        if (task == null)
+        {
+            var model = new RequestAsnTask()
+            {
+                PalletNo = palletNo,
+                HouseNo = "W01",
+                TaskModel = taskModel
+            };
+
+            string url = Urls.WMSAddress + ":" + Urls.WMSPort;
+            var result =  (url + "/api/DownAPi/RequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
+            Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
+            if (result.Success == 0)
+            {
+                                
+                var taskAdd = new WcsTask()
+                {
+                    TaskType = TaskTypeEnum.In,
+                    Status = TaskStatusEnum.Wait,
+                    Origin = "WMS",
+                    StartLocate = startLocat,
+                    PalletNo = palletNo,
+                    TaskNo = result.TaskList.TaskNo,
+                    EndLocate = result.TaskList.EndLocate,
+                    EndRoadway = result.TaskList.EndRoadway
+                };
+                
+                _db.Insertable(taskAdd).ExecuteCommand();
+                endLocat = result.TaskList.EndRoadway;
+                returnStr = result.TaskList.EndLocate;
+                
+            }
+            else
+            {
+                returnStr = "-1:" + result.Message;
+                return returnStr;
+            }
+        }
+        else
+        {
+            returnStr = task.EndLocate;
+            endLocat = task.EndRoadway;
+            taskNo = task.TaskNo;
+        }
+
+        endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng);
+
+        return returnStr;
+    }
+
+    /// <summary>
+    /// 璋冪敤WMS鎺ュ彛鐢宠鍌ㄤ綅鎺ュ彛
+    /// </summary>
+    /// <param name="palletNo"></param>
+    /// <param name="startLocat"></param>
+    /// <param name="taskModel"></param>
+    /// <param name="starRoadWay"></param>
+    /// <param name="taskNo"></param>
+    /// <returns></returns>
+    public string RequestLocate(string palletNo, string startLocat, string taskModel, string starRoadWay, ref string taskNo)
+    {
+        string returnStr = "";
+
+
+        var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false 
+        && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) 
+        && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo && !string.IsNullOrWhiteSpace(m.EndLocate));
+
+        if (task == null)
+        {
+            var model = new RequestAsnTask()
+            {
+                PalletNo = palletNo,
+                HouseNo = "W01",
+                RoadWayNo = starRoadWay,
+                TaskModel = taskModel
+            };
+
+            string url = Urls.WMSAddress + ":" + Urls.WMSPort;
+            var result = (url + "/api/DownAPi/RequestLocation").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
+            Log.Information("璋冪敤WMS鐢宠鍌ㄤ綅鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
+            if (result.Success == 0)
+            {
+                var taskUp = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskNo == result.TaskList.TaskNo);
+                if (taskUp == null)
+                {
+                    var taskAdd = new WcsTask()
+                    {
+                        TaskNo = result.TaskList.TaskNo,
+                        TaskType = TaskTypeEnum.In,
+                        Status = TaskStatusEnum.Wait,
+                        //IsSuccess =TaskSuccessEnum.Success,
+                        Origin = "WMS",
+                        StartLocate = startLocat,
+                        PalletNo = palletNo,
+                        EndLocate = result.TaskList.EndLocate,
+                        EndRoadway = result.TaskList.EndRoadway
+                    };
+                    _db.Insertable(taskAdd).ExecuteCommand();
+                    HubUtil.PublicTask(taskAdd.Adapt<WcsTaskOutput>());
+                }
+                else
+                {
+                    taskUp.EndRoadway = result.TaskList.EndRoadway;
+                    taskUp.EndLocate = result.TaskList.EndLocate;
+                    _db.Updateable(taskUp).ExecuteCommand();
+                    HubUtil.PublicTask(taskUp.Adapt<WcsTaskOutput>());
+                }
+
+               
+                returnStr = result.TaskList.EndLocate;
+                taskNo = result.TaskList.TaskNo;
+            }
+            else
+            {
+                returnStr = "-1:" + result.Message;
+                return returnStr;
+            }
+        }
+        else
+        {
+            returnStr = task.EndLocate;
+            taskNo = task.TaskNo;
+        }
+
+        return returnStr;
+        
+    }
+
+
+    /// <summary>
+    /// 璋冪敤WMS鎺ュ彛 鍙嶉浠诲姟鎺ュ彛
     /// </summary>
     /// <param name="model">浠诲姟瀹屾垚鐘舵��</param>
     /// <returns></returns>
-    public async Task<ResponseTasks> RequestTask(TaskRequest model)
+    public async Task<ResponseModel> RequestTask(TaskRequestWMS model)
     {
         string url = Urls.WMSAddress + ":" + Urls.WMSPort;
-        var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>();
+        var result = await (url + "/api/DownAPi/ReceiveWcsSignal").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseModel>();
         Log.Information("璋冪敤WMS鎺ュ彛鍙嶉浠诲姟鎺ュ彛" + result.ToJson());
         return result;
     }

--
Gitblit v1.8.0