From 7ab32aab1cfd8b71940ade95fa69aec0b95e95c3 Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期日, 16 二月 2025 16:36:40 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/WCSNet6

---
 Admin.NET/WCS.Application/PLC/PLCService.cs      |   35 ++++++
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs |  170 ++++++++++++++++++++++++++++++++++
 Admin.NET/WCS.Application/Util/HttpService.cs    |   21 ++++
 Admin.NET/WCS.Application/Model/TaskRequest.cs   |   20 ++++
 4 files changed, 244 insertions(+), 2 deletions(-)

diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 3ae8e61..6945a70 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -568,3 +568,23 @@
     public string FinishQty { get; set; }
 
 }
+
+public class PortModel
+{
+    /// <summary>
+    /// 鍏ュ簱鍙�
+    /// </summary>
+    public string Port { get; set; }
+}
+
+public class PortRequestModel
+{
+    /// <summary>
+    /// 鍏ュ簱鍙�
+    /// </summary>
+    public string Port { get; set; }
+    /// <summary>
+    /// 浠诲姟鍙�
+    /// </summary>
+    public string TaskNo { get; set; }
+}
diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index 67583ce..8890284 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,4 +1,5 @@
 锘縰sing Dm.filter;
+using DocumentFormat.OpenXml.Drawing.Charts;
 using DocumentFormat.OpenXml.Presentation;
 using Elastic.Clients.Elasticsearch;
 using Furion.Logging;
@@ -398,4 +399,173 @@
         }
     }
 
+
+    /// <summary>
+    /// WCS鎺ュ彈WMS鍏ュ簱鏀捐揣纭鎺ュ彛
+    /// </summary>
+    /// <param name="models"></param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public IsBaleModel2 HttpInConfirm(PortModel models)
+    {
+
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port+"鍏ュ簱鍙�");
+
+            var portno = "";
+            switch (models.Port)
+            {
+                case "033":
+                    portno = "33";
+                    break;
+                case "039":
+                    portno = "39";
+                    break;
+                case "044":
+                    portno = "44";
+                    break;
+                case "051":
+                    portno = "51";
+                    break;
+            }
+
+            //妫�娴嬪叆搴撳彛鐘舵�侊紝120涓哄彲鏀撅紝鍗犵敤鍒欎慨鏀逛负130
+
+            WcsDeviceDto mod = new WcsDeviceDto();
+            var plcConn = mod.PLCUtil;
+            //鑾峰彇宸ヤ綅鐐逛綅淇℃伅
+            var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.LedIP != null && s.StationNum == portno).First();
+            var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "PLC娴佺▼瀛�").First();
+
+            var (res1, val) = plcConn.GetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos);
+            if (val.ToString() == "120")
+            {
+                //璇诲彇鎴愬姛鍚庡啓鍏�130
+                modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "WCS娴佺▼瀛�").First();
+                var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "130");//鍗犵敤姝ゅ伐浣�
+                if (ret.IsSucceed)
+                {
+                    //鍥炰紶WMS鍙斁淇″彿
+                    return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+                }
+            }
+            return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+        }
+        catch (Exception ex)
+        {
+            return new IsBaleModel2() { Success = -1, Message = ex.Message };
+        }
+    }
+
+
+    /// <summary>
+    /// WCS鎺ュ彈WMS鍏ュ簱鏀捐揣璇锋眰鎺ュ彛
+    /// </summary>
+    /// <param name="models"></param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public IsBaleModel2 HttpInRequest(PortRequestModel models)
+    {
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
+
+            var portno = "";
+            switch (models.Port)
+            {
+                case "033":
+                    portno = "33";
+                    break;
+                case "039":
+                    portno = "39";
+                    break;
+                case "044":
+                    portno = "44";
+                    break;
+                case "051":
+                    portno = "51";
+                    break;
+            }
+
+            WcsDeviceDto mod = new WcsDeviceDto();
+            var plcConn = mod.PLCUtil;
+            //鑾峰彇宸ヤ綅鐐逛綅淇℃伅
+            var listPlcDevice = _db.Queryable<WcsDevice>().Where(s=>s.LedIP != null && s.StationNum == portno).First();
+            var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "浠诲姟鍙�").First();
+            plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, models.TaskNo);//鍐欏叆浠诲姟鍙�
+                                                                                                              //
+            modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "WCS娴佺▼瀛�").First();
+            var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "140");//鍐欏叆寮�濮嬫斁璐т俊鍙�
+            if (ret.IsSucceed)
+            {
+                //鍥炰紶WMS鏀捐揣淇″彿
+                return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+            }
+            return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+        }
+        catch (Exception ex)
+        {
+            return new IsBaleModel2() { Success = -1, Message = ex.Message };
+        }
+    }
+
+
+
+    /// <summary>
+    /// WCS鎺ュ彈WMS灏忚溅鏀惧畬鎴愭帴鍙�
+    /// </summary>
+    /// <param name="models"></param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public IsBaleModel2 HttpInFinish(PortModel models)
+    {
+
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹WMS鍏ュ簱鏀捐揣纭锛屾斁璐у彛锛�" + models.Port + "鍏ュ簱鍙�");
+
+            var portno = "";
+            switch (models.Port)
+            {
+                case "033":
+                    portno = "33";
+                    break;
+                case "039":
+                    portno = "39";
+                    break;
+                case "044":
+                    portno = "44";
+                    break;
+                case "051":
+                    portno = "51";
+                    break;
+            }
+
+            WcsDeviceDto mod = new WcsDeviceDto();
+            var plcConn = mod.PLCUtil;
+            //鑾峰彇宸ヤ綅鐐逛綅淇℃伅
+            var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.LedIP != null && s.StationNum == portno).First();
+            var modDevice = _db.Queryable<WcsPosition>().Where(s => s.StationNum == portno && s.Text == "WCS娴佺▼瀛�").First();
+
+            var ret = plcConn.SetPlcDBValue(modDevice.PosType, listPlcDevice.DbNumber, modDevice.PlcPos, "160");//鏀惧畬鎴�
+            if (ret.IsSucceed)
+            {
+                //鍥炰紶WMS鏀捐揣淇″彿
+                return new IsBaleModel2() { Success = 0, Message = "鎺ュ彈鎴愬姛" };
+            }
+            return new IsBaleModel2() { Success = -1, Message = "璇诲彇PLC鐐逛綅淇℃伅澶辫触" };
+        }
+        catch (Exception ex)
+        {
+            return new IsBaleModel2() { Success = -1, Message = ex.Message };
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index cce8b64..ac69156 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -1757,11 +1757,42 @@
                 { // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
                     var strMsg = "";
                     var http = new HttpService();
-                    var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
-                    var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
                     // 鑾峰彇鎵樼洏浠诲姟鍙�
                     var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
                     var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos);
+                    if (res1.IsSucceed)
+                    {
+                        string tasknoVal = val.ToString();
+                        var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false);
+                        if (modTask == null)
+                        {
+                            //璇诲彇鎴愬姛鍚庡啓鍏�151
+                            var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "151");//鏀跺埌鍙斁淇″彿鍚庡啓鍏�151
+                            if (ret.IsSucceed)
+                            {
+                                //鍥炰紶WMS鍙斁淇″彿
+                                strMsg = http.RequesContinueAgv(res1.ToString(),modTask.StationNum);
+                                if (!strMsg.Contains("-1"))
+                                {
+                                    // 鎻掑叆浠诲姟鏄庣粏 
+                                    var modInsertTaskMonitor = new WcsTaskMonitor()
+                                    {
+                                        PlcId = modDevice.Id,
+                                        PlcName = modDevice.Text,
+                                        InteractiveMsg = $"鍐欏叆鎸囦护151锛歿modDevice.StationNum}宸ヤ綅鍙帴鍙桝GV鏀捐揣鍏ュ簱",
+                                        PalletNo = modTask.PalletNo,
+                                        Status = TaskStatusEnum.Complete,
+                                        StartLocat = modDevice.StationNum
+                                    };
+                                    // 鎻掑叆浜や簰鏃ュ織
+                                    _db.Insertable(modInsertTaskMonitor).ExecuteCommand();
+                                }
+                            }
+                            break;
+                        }
+                    }
+                     //
+
                 }
                 break;
             #endregion
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index fde3f28..7aa62f6 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -419,6 +419,8 @@
         return result.Success.ToString();
     }
 
+   
+
     /// <summary>
     /// 璋冪敤WMS鎺ュ彛鍙嶉缂犺啘瀹屾垚
     /// </summary>
@@ -490,4 +492,23 @@
 
         return result;
     }
+
+    /// <summary>
+    /// 璋冪敤WMS鎺ュ彛鍙嶉AGV鍙斁淇″彿
+    /// </summary>
+    /// <param name="taskno">浠诲姟鍙�</param> 
+    /// <param name="port">宸ヤ綅鍙�</param>
+    /// <returns></returns>
+    public string RequesContinueAgv(string taskno,string port)
+    {
+        string url = Urls.WMSAddress + ":" + Urls.WMSPort;
+        var str = new
+        {
+            TaskNo = taskno,
+            Port = port
+        };
+        var result = (url + "/api/DownAPi/AgcontinueTask").SetBody(str, "application/json", Encoding.UTF8).PostAsAsync<IsBaleModel>().Result;
+        Log.Information("璋冪敤WMS鎺ュ彛鍙嶉鎷嗚啘寮傚父鎺ュ彛" + result.ToJson());
+        return result.Success.ToString();
+    }
 }

--
Gitblit v1.8.0