From 5ad77f8491b3137238bafe30c2e2d83c60558bdb Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期四, 31 七月 2025 16:23:14 +0800
Subject: [PATCH] 修改sop获取数据

---
 MESApplication/Controllers/RealTimeInventory/RealTimeInventoryController.cs |   74 ++++++++++++++++++++++++++++++++++--
 1 files changed, 69 insertions(+), 5 deletions(-)

diff --git a/MESApplication/Controllers/RealTimeInventory/RealTimeInventoryController.cs b/MESApplication/Controllers/RealTimeInventory/RealTimeInventoryController.cs
index 7993a32..fdd951b 100644
--- a/MESApplication/Controllers/RealTimeInventory/RealTimeInventoryController.cs
+++ b/MESApplication/Controllers/RealTimeInventory/RealTimeInventoryController.cs
@@ -6,25 +6,45 @@
 
 namespace MESApplication.Controllers.RealTimeInventory;
 
+/// <summary>
+/// 瀹炴椂搴撳瓨鎺у埗鍣�
+/// 璐熻矗鍚屾绗笁鏂圭郴缁熷簱瀛樻暟鎹埌鏈湴鏁版嵁搴�
+/// </summary>
 [Route("api/[controller]")]
 [ApiController]
 public class RealTimeInventoryController : ControllerBase
 {
+    // K3Cloud绯荤粺鐨勫熀纭�API鍦板潃
     private readonly string _baseUrl = "http://122.227.249.70:5050/k3cloud";
+    // 鏁版嵁搴撹繛鎺ュ瓧绗︿覆
     private readonly string _connectionString;
 
+    /// <summary>
+    /// 鏋勯�犲嚱鏁�
+    /// 閫氳繃渚濊禆娉ㄥ叆鑾峰彇閰嶇疆淇℃伅
+    /// </summary>
+    /// <param name="configuration">閰嶇疆瀵硅薄</param>
     public RealTimeInventoryController(IConfiguration configuration)
     {
+        // 浠庨厤缃腑鑾峰彇鏁版嵁搴撹繛鎺ュ瓧绗︿覆
         _connectionString = configuration["AppSettings:DataBaseConn"];
     }
 
+    /// <summary>
+    /// 鍚屾搴撳瓨鏁版嵁API
+    /// 浠嶬3Cloud绯荤粺鑾峰彇搴撳瓨鏁版嵁骞跺悓姝ュ埌鏈湴鏁版嵁搴�
+    /// </summary>
+    /// <returns>鍚屾缁撴灉</returns>
     [HttpPost("syncInventory")]
     public async Task<IActionResult> SyncInventory()
     {
+        // 鍒涘缓鑷畾涔塇TTP瀹㈡埛绔疄渚�
         var httpClient = new HttpClientEx();
+        // 璁剧疆韬唤楠岃瘉API鍦板潃
         httpClient.Url =
             $"{_baseUrl}/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";
 
+        // 鍑嗗鐧诲綍鍙傛暟
         var parameters = new List<object>
         {
             "6654201b47f099", // 甯愬Id
@@ -33,66 +53,92 @@
             2052 // 璇█锛堜腑鏂囷級
         };
 
+        // 搴忓垪鍖栧弬鏁板苟璁剧疆涓鸿姹傚唴瀹�
         httpClient.Content = JsonConvert.SerializeObject(parameters);
+        // 鍙戦�佺櫥褰曡姹傚苟瑙f瀽缁撴灉
         var result = JObject.Parse(httpClient.AsyncRequest())["LoginResultType"]
             .Value<int>();
 
+        // 鐧诲綍澶辫触杩斿洖閿欒淇℃伅
         if (result != 1)
             return BadRequest("鐧诲綍澶辫触");
 
+        // 鑾峰彇闇�瑕佸悓姝ョ殑浠撳簱浠g爜鍒楄〃
         var depotCodes = FetchDepotCodes();
         if (depotCodes.Count == 0)
             return NotFound("鏈壘鍒版湁鏁堢殑DEPOTS_CODE");
 
+        // 娓呯┖鐜版湁搴撳瓨鏁版嵁
         DeleteInventoryData();
 
+        // 灏嗕粨搴撲唬鐮佸垪琛ㄨ浆鎹负閫楀彿鍒嗛殧鐨勫瓧绗︿覆
         var depotCodesStr = string.Join(",", depotCodes);
         var hasMoreData = true;
         var pageIndex = 1;
 
+        // 鍒嗛〉鑾峰彇鎵�鏈夊簱瀛樻暟鎹�
         while (hasMoreData)
         {
+            // 鏋勫缓搴撳瓨鏌ヨ鍙傛暟妯″瀷
             var model = new InventoryParamModel
             {
-                fstocknumbers = depotCodesStr,
-                isshowauxprop = true,
-                isshowstockloc = true,
-                pageindex = pageIndex,
-                pagerows = 10000
+                fstocknumbers = depotCodesStr,    // 浠撳簱浠g爜
+                isshowauxprop = true,             // 鏄惁鏄剧ず杈呭姪灞炴��
+                isshowstockloc = true,            // 鏄惁鏄剧ず搴撳瓨浣嶇疆
+                pageindex = pageIndex,            // 褰撳墠椤电爜
+                pagerows = 10000                  // 姣忛〉璁板綍鏁�
             };
 
+            // 璁剧疆搴撳瓨鏌ヨAPI鍦板潃
             httpClient.Url =
                 $"{_baseUrl}/Kingdee.K3.SCM.WebApi.ServicesStub.InventoryQueryService.GetInventoryData.common.kdsvc";
+            // 搴忓垪鍖栨煡璇㈠弬鏁�
             httpClient.Content =
                 JsonConvert.SerializeObject(new List<object> { model });
+            // 鍙戦�佹煡璇㈣姹�
             var response = httpClient.AsyncRequest();
+            // 鍙嶅簭鍒楀寲搴撳瓨鏁版嵁
             var inventoryData =
                 JsonConvert.DeserializeObject<InventoryResponse>(response);
 
+            // 妫�鏌ユ槸鍚﹁繕鏈夋暟鎹�
             if (inventoryData?.Data == null || inventoryData.Data.Count == 0)
             {
                 hasMoreData = false;
             }
             else
             {
+                // 灏嗗綋鍓嶉〉鏁版嵁鎻掑叆鏁版嵁搴�
                 InsertInventoryData(inventoryData);
+                // 鍑嗗鑾峰彇涓嬩竴椤垫暟鎹�
                 pageIndex++;
             }
         }
 
+        // 杩斿洖鍚屾瀹屾垚娑堟伅
         return Ok("搴撳瓨鏁版嵁瀵煎叆瀹屾垚");
     }
 
+    /// <summary>
+    /// 浠庢湰鍦版暟鎹簱鑾峰彇浠撳簱浠g爜鍒楄〃
+    /// 鎺掗櫎鐗瑰畾浠撳簱浠g爜('MJ','CY-MJ')
+    /// </summary>
+    /// <returns>浠撳簱浠g爜鍒楄〃</returns>
     private List<string> FetchDepotCodes()
     {
         var depotCodes = new List<string>();
+        // 浣跨敤Oracle杩炴帴
         using (var connection = new OracleConnection(_connectionString))
         {
             try
             {
+                // 鎵撳紑鏁版嵁搴撹繛鎺�
                 connection.Open();
+                // 鏌ヨ鏈夋晥浠撳簱浠g爜鐨凷QL
                 var query =
                     "SELECT DEPOTS_CODE FROM MES_INV_ITEM_STOCKS WHERE DEPOTS_CODE IS NOT NULL AND DEPOTS_CODE NOT IN ('MJ','CY-MJ') GROUP BY DEPOTS_CODE";
+                
+                // 鎵ц鏌ヨ骞惰鍙栫粨鏋�
                 using (var cmd = new OracleCommand(query, connection))
                 using (var reader = cmd.ExecuteReader())
                 {
@@ -109,6 +155,10 @@
         return depotCodes;
     }
 
+    /// <summary>
+    /// 娓呯┖ERPKCPC琛ㄤ腑鐨勭幇鏈夊簱瀛樻暟鎹�
+    /// 浣跨敤浜嬪姟纭繚鎿嶄綔鐨勫師瀛愭��
+    /// </summary>
     private void DeleteInventoryData()
     {
         using (var connection = new OracleConnection(_connectionString))
@@ -116,14 +166,17 @@
             try
             {
                 connection.Open();
+                // 寮�濮嬫暟鎹簱浜嬪姟
                 using (var transaction = connection.BeginTransaction())
                 {
+                    // 鎵ц鍒犻櫎鎿嶄綔
                     using (var deleteCmd =
                            new OracleCommand("DELETE FROM ERPKCPC", connection))
                     {
                         deleteCmd.ExecuteNonQuery();
                     }
 
+                    // 鎻愪氦浜嬪姟
                     transaction.Commit();
                 }
             }
@@ -134,6 +187,11 @@
         }
     }
 
+    /// <summary>
+    /// 灏嗗簱瀛樻暟鎹彃鍏ュ埌ERPKCPC琛ㄤ腑
+    /// 浣跨敤浜嬪姟纭繚鎵�鏈夋暟鎹涔堝叏閮ㄦ彃鍏ユ垚鍔燂紝瑕佷箞鍏ㄩ儴澶辫触
+    /// </summary>
+    /// <param name="inventoryData">搴撳瓨鏁版嵁鍝嶅簲瀵硅薄</param>
     private void InsertInventoryData(InventoryResponse inventoryData)
     {
         using (var connection = new OracleConnection(_connectionString))
@@ -141,10 +199,13 @@
             try
             {
                 connection.Open();
+                // 寮�濮嬫暟鎹簱浜嬪姟
                 using (var transaction = connection.BeginTransaction())
                 {
+                    // 閬嶅巻姣忔潯搴撳瓨鏁版嵁
                     foreach (var item in inventoryData.Data)
                     {
+                        // 鎻掑叆SQL璇彞
                         var query =
                             "INSERT INTO ERPKCPC (ITEM_ID, DEPOT_CODE, FQTY, ITEM_NO, ORGID,Fstockstatusnumber,Fstockstatusname) VALUES (:ITEM_ID, :DEPOT_CODE, :FQTY, :ITEM_NO, :ORGID,:Fstockstatusnumber,:Fstockstatusname)";
                         using (var cmd = new OracleCommand(query, connection))
@@ -159,10 +220,12 @@
 
                             try
                             {
+                                // 鎵ц鎻掑叆鍛戒护
                                 cmd.ExecuteNonQuery();
                             }
                             catch (Exception ex)
                             {
+                                // 鍑洪敊鏃跺洖婊氫簨鍔�
                                 transaction.Rollback();
                                 Console.WriteLine("鎻掑叆搴撳瓨鏁版嵁鏃跺嚭閿�: " + ex.Message);
                                 return;
@@ -170,6 +233,7 @@
                         }
                     }
 
+                    // 鎵�鏈夋暟鎹彃鍏ユ垚鍔燂紝鎻愪氦浜嬪姟
                     transaction.Commit();
                 }
             }

--
Gitblit v1.9.3