From d07f25c163706ac46a83bd2c63db1e3c52715222 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期四, 27 三月 2025 15:54:25 +0800
Subject: [PATCH] 解决问题

---
 Wms/Wms/Controllers/DownApiController.cs |  182 +++++++++++++++++++++++++--------------------
 1 files changed, 102 insertions(+), 80 deletions(-)

diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index e558169..753060d 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -37,6 +37,7 @@
         private readonly IPdaAsnServer _paAsnSvc;//绌烘墭璺虹粦瀹�
         private readonly IStockServer _stockSvc;//AGV浠诲姟瀹屾垚绠�
         private readonly IPdaCrServer _pdaCrServer; // PDA浠诲姟璋冨害
+        private static readonly object OLock = new object();
 
         public DownApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IPalletBindServer asnPalletBindSvc, IStockCheckServer crCheckSvc, ITaskServer taskSvc, IPdaSoServer pdaSoSvc,IPdaAsnServer paAsnSvc,IStockServer stockSvc,IPdaCrServer pdaCrServer)
         {
@@ -219,45 +220,47 @@
         [HttpPost]
         public IActionResult RequestRoadWay(RequestLocate model)
         {
-            var logStr = "";
+            lock (OLock) { 
+                var logStr = "";
 
-            logStr = $@".\log\WCS\WCS鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                logStr = $@".\log\WCS\WCS鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
 
-            try
-            {
-
-                var jsonData = JsonConvert.SerializeObject(model);
-                LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr);
-                if (model.TaskModel == "1")
+                try
                 {
-                    var list = _asnPalletBindSvc.RequestRoadWayModel(model.PalletNo, model.HouseNo);
 
-                    LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
+                    var jsonData = JsonConvert.SerializeObject(model);
+                    LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr);
+                    if (model.TaskModel == "1")
+                    {
+                        var list = _asnPalletBindSvc.RequestRoadWayModel(model.PalletNo, model.HouseNo);
+
+                        LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
+                        new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo,
+                            "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", 2);
+
+                        return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list });
+                    }
+                    else
+                    {
+
+                        var list = _asnPalletBindSvc.RequestRoadWay(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,
-                        "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", 2);
+                        "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", 2);
 
-                    return Ok(new { Success = 0, Message = "鐢宠宸烽亾鎴愬姛", TaskList = list });
+                    return Ok(new ErpModel { Success = -1, Message = e.Message });
                 }
-                else
-                {
-
-                    var list = _asnPalletBindSvc.RequestRoadWay(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,
-                    "鐢宠宸烽亾", $"鐢宠宸烽亾鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", 2);
-
-                return Ok(new ErpModel { Success = -1, Message = e.Message });
             }
         }
 
@@ -284,65 +287,68 @@
             //}
 
             //string palletno = model.PalletNo;
-            var logStr = "";
-            if (model.PalletNo.Length == 9)
+            lock (OLock)
             {
-                logStr = $@".\log\WCS\WMS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            }
-            else if (model.PalletNo.Length == 8)
-            {
-                logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
-            }
-
-            try
-            {
+                var logStr = "";
                 if (model.PalletNo.Length == 9)
                 {
-                    var jsonData = JsonConvert.SerializeObject(model);
-                    LogFile.SaveLogToFile($"WMS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
+                    logStr = $@".\log\WCS\WMS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                 }
                 else if (model.PalletNo.Length == 8)
                 {
-                    var jsonData = JsonConvert.SerializeObject(model);
-                    LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅锛�( {jsonData} ),", logStr);
+                    logStr = $@".\log\WCS\WCS鐢宠鍌ㄤ綅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+                }
 
-                }
-                string pallet = model.PalletNo.Substring(0, 8);
-                OutCommandDto list;
-                if (model.TaskModel == "1")
+                try
                 {
-                    list = _asnPalletBindSvc.RequestLocationModel(pallet, model.HouseNo, model.RoadwayNo);
-                }
-                else
-                {
-                    list = _asnPalletBindSvc.RequestLocation(pallet, model.HouseNo, model.RoadwayNo);
-                }
+                    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);
+
+                    }
+                    string pallet = model.PalletNo.Substring(0, 8);
+                    OutCommandDto list;
+                    if (model.TaskModel == "1")
+                    {
+                        list = _asnPalletBindSvc.RequestLocationModel(pallet, model.HouseNo, model.RoadwayNo);
+                    }
+                    else
+                    {
+                        list = _asnPalletBindSvc.RequestLocation(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)
+                    {
+                        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);
+                    }
                 
-                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);
+                    return Ok(new { Success = 0, Message = "鐢宠鍌ㄤ綅鎴愬姛", TaskList = list });
                 }
-                else if (model.PalletNo.Length == 8)
+                catch (Exception e)
                 {
-                    LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {e.Message} ),", logStr);
-                }
+                    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);
+                    }
 
-                return Ok(new ErpModel { Success = -1, Message = e.Message });
+                    return Ok(new ErpModel { Success = -1, Message = e.Message });
+                }
             }
         }
 
@@ -555,6 +561,8 @@
         public IActionResult BindPlnInHouseWcs(PalletsBind model)
         {
             var logStr = $@".\log\WCS\WCS鍙堝彔鎵樻満鐢宠绌烘墭鍏ュ簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 var strMsg = _paAsnSvc.BindNullPallets(model);
@@ -579,6 +587,8 @@
         public IActionResult IssuePlnOutHouseWcs(OutModePalletVm model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠绌烘墭鍑哄簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 List<OutCommandDto> _list = _pdaSoSvc.IssuePlnOutHouseWcs(model,0);
@@ -603,6 +613,8 @@
         public IActionResult IssuePlnCheckHouseWcs(CheckModePalletVm model)
         {
             var logStr = $@".\log\WCS\WMS鎷h揣鐢宠绌烘墭鍑哄簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 string list = _pdaSoSvc.IssuePlnCehckHouseWcs(model, 0,_config.AgvHost+_config.GenAgvSchedulingTask);
@@ -627,6 +639,8 @@
         public IActionResult RequestPackWcs(RequesIsBale model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠缂犺啘鎷嗚啘" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                int t = _asnPalletBindSvc.RequestPackWcs(model.PalletNo);
@@ -652,6 +666,8 @@
         public IActionResult RequestUnPackWcs(RequesIsBale model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠缂犺啘鎷嗚啘" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 int t = _asnPalletBindSvc.RequestUnPackWcs(model.PalletNo);
@@ -676,6 +692,8 @@
         public IActionResult RequestPackedWcs(RequesIsBale model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠缂犺啘鎷嗚啘" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 int t = _asnPalletBindSvc.RequestPackedWcs(model.PalletNo);
@@ -736,6 +754,8 @@
         public IActionResult ResultBoxInfoCheckWcs(BoxInfoCheck model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠鎷嗗灈鎵樼洏淇℃伅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 RequestBoxInfoCheck list = _exNoticeSvc.BoxInfoCheckWcs(model);
@@ -761,17 +781,19 @@
         public IActionResult ResultBoxInfoExportWcs(BoxInfoCheck model)
         {
             var logStr = $@".\log\WCS\WCS鐢宠鎴愬搧绠辩爜鎷嗗灈鎷h揣淇℃伅" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+            var jsonData = JsonConvert.SerializeObject(model);
+            LogFile.SaveLogToFile($"浠诲姟鍙嶉锛�( {jsonData} ),", logStr);
             try
             {
                 //杩斿洖鍑哄簱鍒嗘嫞瑁呰溅鍙�
                 var list = _exNoticeSvc.BoxInfoExportWcs(model.BoxNo);
-                return Ok(new { Success = "1", Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadubgAddre = list });
+                return Ok(new { Success = "1", Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadingAddre = list });
             }
             catch (Exception e)
             {
                 LogFile.SaveLogToFile($"WCS鐢宠鎴愬搧绠辩爜鎷嗗灈鎷h揣寮傚父杩斿洖锛�( {e.Message} ),", logStr);
 
-                return Ok(new  { Success = "-1", Message = e.Message, loadubgAddre ="" });
+                return Ok(new  { Success = "-1", Message = e.Message, loadingAddre = "" });
             }
 
         }

--
Gitblit v1.8.0