From 6167bf4c8fe617d9f9861585042149d48ad15dbb Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期二, 13 五月 2025 17:54:50 +0800
Subject: [PATCH] 修改问题,添加PDA下发出库页面

---
 Wms/Wms/Controllers/DownApiController.cs |  194 ++++++++++++++++++++++--------------------------
 1 files changed, 89 insertions(+), 105 deletions(-)

diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 210aeea..0bdcc9b 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -20,6 +20,8 @@
 using System.Threading.Tasks;
 using Model.ModelVm.BllCheckVm;
 using System.Collections.Generic;
+using System.Security.Policy;
+using WMS.IBLL;
 
 namespace Wms.Controllers
 {
@@ -37,7 +39,8 @@
         private readonly ITaskServer _taskSvc;//浠诲姟Svc
         private readonly IBllTaskSyncServer _taskSyncSvc;//浠诲姟鍚屾Svc
         private readonly IWaveMageServer _waveSvc;//浠诲姟鍚屾Svc
-        public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc)
+        private readonly IHttpServer _http; 
+        public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IBllTaskSyncServer taskSyncSvc, IWaveMageServer waveSvc,IHttpServer http)
         {
             _config = setting.Value;
             _exNoticeSvc = exNoticeSvc;
@@ -46,6 +49,7 @@
             _taskSvc = taskSvc;
             _taskSyncSvc = taskSyncSvc;
             _waveSvc = waveSvc;
+            _http = http;
         }
 
         #region WMS鎺ュ彛 璋冪敤涓嬫父绯荤粺鎺ュ彛 
@@ -125,6 +129,7 @@
                 var house = _exNoticeSvc.GetHouseBySo(soNo);
                 if (house == "W01")
                 {
+                    var list = _exNoticeSvc.IssueOutHouseMk(soNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
 
                     return Ok(new { code = 0, msg = "str" });
                 }
@@ -272,38 +277,6 @@
         #region WMS鎺ュ彛 琚笅娓哥郴缁熸帴鍙h皟鐢�
 
         /// <summary>
-        /// 缁戝畾淇℃伅杩斿洖宸烽亾鍙�
-        /// </summary>
-        /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
-        /// <returns></returns>
-        [AllowAnonymous]
-        [HttpPost]
-        public IActionResult BindRequestRoadWay(BoxPalletBindVm model)
-        {
-            var logStr = $@".\log\WCS\WCS鎵樼洏缁戝畾-鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-
-            try
-            {
-
-                var jsonData = JsonConvert.SerializeObject(model);
-                LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾锛�( {jsonData} ),", logStr);
-
-                _asnPalletBindSvc.BindPalletStock(model, 0);
-                //鐢宠宸烽亾
-                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, "W01");
-                LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
-
-                return Ok(new { Success = 0, Message = "鎵樼洏缁戝畾-鐢宠宸烽亾鎴愬姛", TaskList = list });
-            }
-            catch (Exception e)
-            {
-                LogFile.SaveLogToFile($"WCS鎵樼洏缁戝畾-鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr);
-
-                return Ok(new ErpModel { Success = -1, Message = e.Message });
-            }
-        }
-
-        /// <summary>
         /// PDA 浜哄伐鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛�
         /// </summary>
         /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
@@ -328,16 +301,16 @@
 
             try
             {
-                var list = _asnPalletBindSvc.RequestLocation(model.PalletNo, model.HouseNo);
-                _asnPalletBindSvc.IssueAsnTask(list, _config.ErpHost+ _config.AsnFinishUrl);//agv璺緞
+                var list = _http.RequestLocation(model.PalletNo, model.HouseNo);
+                _asnPalletBindSvc.IssueAsnTask(list, _config.WcsHost+ _config.IssueComApiUrl2);//WCS璺緞
                 
-                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", int.Parse(userId));
+                new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鐢宠鍏ュ簱", model.PalletNo, "娣诲姞", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", int.Parse(userId));
 
                 return Ok(new HttpReturnModel { Success = "0", Message = "鐢宠鍌ㄤ綅鎴愬姛", Data = list });
             }
             catch (Exception e)
             {
-                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", int.Parse(userId));
+                new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鐢宠鍏ュ簱", model.PalletNo, "娣诲姞", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", int.Parse(userId));
 
                 return Ok(new HttpReturnModel { Success = "-1", Message = e.Message });
             }
@@ -350,7 +323,7 @@
         /// <returns></returns>
         [AllowAnonymous]
         [HttpPost]
-        public IActionResult RequestRoadWay(RequestLocate model)
+        public IActionResult RequestMiJiRoadWay(RequestLocate model)
         {
             var logStr = "";
 
@@ -362,19 +335,15 @@
                 var jsonData = JsonConvert.SerializeObject(model);
                 LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr);
 
-                var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo);
+                var list = _http.RequestMiJiRoadWay(model.PalletNo, model.HouseNo);
 
                 LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
-                //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), 
-                //    "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�", 2);
 
                 return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list });
             }
             catch (Exception e)
             {
                 LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr);
-                //new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8),
-                //"鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勫け璐ヤ俊鎭�", 2);
 
                 return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
@@ -389,74 +358,26 @@
         [HttpPost]
         public IActionResult RequestMiJiLocation(RequestLocate model)
         {
-
-            //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-            //var claimsIdentity = this.User.Identity as ClaimsIdentity;
-            //if (claimsIdentity == null)
-            //{
-            //    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-            //}
-            //var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-            //if (string.IsNullOrWhiteSpace(userId))
-            //{
-            //    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-            //}
-
-            //string palletno = model.PalletNo;
             var logStr = "";
-            if (model.PalletNo.Length == 9)
-            {
-                logStr = $@".\log\WCS\WMS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            }
-            else if (model.PalletNo.Length == 8)
-            {
-                logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            }
-
+            
+            logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            
             try
             {
-                if (model.PalletNo.Length == 9)
-                {
-                    var jsonData = JsonConvert.SerializeObject(model);
-                    LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
-                }
-                else if (model.PalletNo.Length == 8)
-                {
-                    var jsonData = JsonConvert.SerializeObject(model);
-                    LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
-                }
-
+                var jsonData = JsonConvert.SerializeObject(model);
+                LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
+                
                 string pallet = model.PalletNo.Substring(0, 8);
-                var list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo, model.RoadwayNo);
+                var list = _http.RequestMiJiLocation(pallet, model.HouseNo, model.RoadwayNo);
 
-                if (model.PalletNo.Length == 9)
-                {
-                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勬垚鍔熶俊鎭�", 2);// int.Parse(userId)
-                    LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅鎴愬姛锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
-                }
-                else if (model.PalletNo.Length == 8)
-                {
-                    LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
-                }
-                if (model.PalletNo.Length == 9)
-                {
-
-                }
-
+                LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
+                
                 return Ok(new { Success = 0, Message = "鐢宠鍌ㄤ綅鎴愬姛", TaskList = list });
             }
             catch (Exception e)
             {
-                if (model.PalletNo.Length == 9)
-                {
-                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo.Substring(0, 8), "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo.Substring(0, 8)}鐨勫け璐ヤ俊鎭�", 2);//int.Parse(userId)
-                    LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅澶辫触杩斿洖锛�( {e.Message} ),", logStr);
-                }
-                else if (model.PalletNo.Length == 8)
-                {
-                    LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {e.Message} ),", logStr);
-                }
-
+                LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {e.Message} ),", logStr);
+                
                 return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
         }
@@ -487,7 +408,7 @@
                     case "0"://鍏ュ簱瀹屾垚浠诲姟
                         if (model.TaskType == "0")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
-                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0);
+                            _http.ArrivalSuccess2(model.TaskNo, 0);
                             return Ok(new WcsModel { StatusCode = 0, Msg = "鍏ュ簱瀹屾垚" });
                         }
                         break;
@@ -511,14 +432,16 @@
                         }
                         else if (model.TaskType == "0")// 鐩樼偣鍑哄簱鎵樼洏鍥炲簱瀹屾垚
                         {
-                            _asnPalletBindSvc.ArrivalSuccess(model.TaskNo, 0);
+                            _http.ArrivalSuccess2(model.TaskNo, 0);
                             return Ok(new WcsModel { StatusCode = 0, Msg = "鍏ュ簱瀹屾垚" });
                         }
                         break;
                     case "3"://绉诲簱瀹屾垚浠诲姟銆佷紭鍖栧偍浣�
-                        if (model.TaskType == "3") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
+                        if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
                             //濉啓绉诲簱瀹屾垚浠g爜
+                            _http.MoveSuccess(model.TaskNo, 0);
+                            return Ok(new WcsModel { StatusCode = 0, Msg = "绉诲簱瀹屾垚" });
                         }
                         break;
                     default:
@@ -532,6 +455,33 @@
             }
         }
 
+        /// <summary>
+        /// 鎺ュ彈wcs杩斿洖鐨勪俊鍙� 骞冲簱鍙栬揣瀹屾垚浠诲姟鍙嶉
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult UpLocateByAgvOut(ReceiveWcsSignal model)
+        {
+            try
+            {
+                //璁板綍log
+                var logStr = $@".\log\WCS\鍙栬揣瀹屾垚浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                var jsonData = JsonConvert.SerializeObject(model);
+                LogFile.SaveLogToFile($"AGV鍙栬揣瀹屾垚WCS浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
+
+                if (string.IsNullOrEmpty(model.TaskNo))
+                {
+                    return Ok(new WcsModel { StatusCode = -1, Msg = "鎺ュ彛鏁版嵁涓嶆纭紝浠诲姟鍙蜂负绌�" });
+                }
+                _http.UpLocateByAgvOut(model.TaskNo,0); 
+                
+                return Ok(new WcsModel { StatusCode = 0, Msg = "鎺ユ敹鎴愬姛" });
+            }
+            catch (Exception ex)
+            {
+                return Ok(new WcsModel { StatusCode = -1, Msg = ex.Message });
+            }
+        }
 
         /// <summary>
         /// WCS鍙嶉AGV浠诲姟鍙栬揣瀹屾垚
@@ -742,5 +692,39 @@
 
         #endregion
 
+        /// <summary>
+        /// PDA 浜哄伐鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛�
+        /// </summary>
+        /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpPost]
+        public IActionResult ceshiapi()
+        {
+            try
+            {
+                var url = "https://10.26.200.25/rcs/rtas/api/robot/controller/carrier/unbind";
+
+                var requestId = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
+                var dic = new Dictionary<string, string>()
+                    {
+                        {"X-lr-request-id",requestId },
+                        {"X-lr-version","4.2" },
+                    };
+                var mod = new
+                {
+                    carrierCode = "palletNo",
+                    siteCode = "locateNo"
+                };
+                var jsonData = JsonConvert.SerializeObject(mod);
+                HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV瑙g粦", "AGV",dic);
+
+                return Ok(new HttpReturnModel { Success = "0", Message = "鐢宠鍌ㄤ綅鎴愬姛", Data = "list" });
+            }
+            catch (Exception e)
+            { 
+                return Ok(new HttpReturnModel { Success = "-1", Message = e.Message });
+            }
+        }
     }
 }

--
Gitblit v1.8.0