From ccbbd0500eb763517329d6cf9197e928bfeda148 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期三, 09 四月 2025 10:48:27 +0800
Subject: [PATCH] 1.产品绑定

---
 service/QC/OAJyService.cs           |  110 +++++++++++++-------------
 service/Wom/WomdaaManager.cs        |   65 ++++++++++++++++
 Controllers/Wom/WomdaaController.cs |   28 +++++++
 3 files changed, 148 insertions(+), 55 deletions(-)

diff --git a/Controllers/Wom/WomdaaController.cs b/Controllers/Wom/WomdaaController.cs
index 3492d8d..94a7dd9 100644
--- a/Controllers/Wom/WomdaaController.cs
+++ b/Controllers/Wom/WomdaaController.cs
@@ -292,5 +292,33 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    //GetItemsByDaa001
+    /// <summary>
+    ///     鎵弿娉ㄥ鐮侊紝鑾峰彇宸ュ崟鍜屾潯鐮佷俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("ProductBinding")]
+    public ResponseResult ProductBinding([FromBody] dynamic query)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            // 鍏堝垵濮嬪寲tbBillList灞炴��
+            resultInfos.tbBillList = new ExpandoObject();
+            resultInfos.tbBillList = m.ProductBinding(query);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
     #endregion
 }
\ No newline at end of file
diff --git a/service/QC/OAJyService.cs b/service/QC/OAJyService.cs
index 605ad1f..7c75f09 100644
--- a/service/QC/OAJyService.cs
+++ b/service/QC/OAJyService.cs
@@ -173,66 +173,66 @@
     }
 
 
-    public dynamic SumbitIQCToOA(dynamic queryObj)
-    {
-        try
-        {
-            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
-            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
+    //public dynamic SumbitIQCToOA(dynamic queryObj)
+    //{
+    //    try
+    //    {
+    //        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
+    //        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
 
-            var request = WebRequest.Create(url) as HttpWebRequest;
-            request.Method = "POST";
-            request.Timeout = 20000;  // 20绉掕秴鏃�
-            request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";  // 鏄庣‘鎸囧畾缂栫爜
+    //        var request = WebRequest.Create(url) as HttpWebRequest;
+    //        request.Method = "POST";
+    //        request.Timeout = 20000;  // 20绉掕秴鏃�
+    //        request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";  // 鏄庣‘鎸囧畾缂栫爜
 
-            // 娣诲姞璋冭瘯澶翠俊鎭�
-            request.Headers.Add("appid", APPID);
-            request.Headers.Add("token", token);
-            request.Headers.Add("userId", userId);
+    //        // 娣诲姞璋冭瘯澶翠俊鎭�
+    //        request.Headers.Add("appid", APPID);
+    //        request.Headers.Add("token", token);
+    //        request.Headers.Add("userId", userId);
 
-            // 鏋勫缓甯︽椂鍖虹殑鏃ユ湡鍙傛暟
-            var postData = new StringBuilder();
-            var dateParam = DateTime.Now.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:sszzz");
-            postData.AppendFormat("KQSDATE={0}&KQEDATE={1}",
-                Uri.EscapeDataString(dateParam),
-                Uri.EscapeDataString(dateParam));
+    //        // 鏋勫缓甯︽椂鍖虹殑鏃ユ湡鍙傛暟
+    //        var postData = new StringBuilder();
+    //        var dateParam = DateTime.Now.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:sszzz");
+    //        postData.AppendFormat("KQSDATE={0}&KQEDATE={1}",
+    //            Uri.EscapeDataString(dateParam),
+    //            Uri.EscapeDataString(dateParam));
 
-            byte[] byteData = Encoding.UTF8.GetBytes(postData.ToString());  // 鏀圭敤UTF8缂栫爜
+    //        byte[] byteData = Encoding.UTF8.GetBytes(postData.ToString());  // 鏀圭敤UTF8缂栫爜
 
-            // 鏇村畬鍠勭殑璇锋眰鍐欏叆
-            using (var stream = request.GetRequestStream())
-            {
-                stream.Write(byteData, 0, byteData.Length);
-            }
+    //        // 鏇村畬鍠勭殑璇锋眰鍐欏叆
+    //        using (var stream = request.GetRequestStream())
+    //        {
+    //            stream.Write(byteData, 0, byteData.Length);
+    //        }
 
-            // 澶勭悊HTTP閿欒鐘舵�佺爜
-            using (var response = request.GetResponse() as HttpWebResponse)
-            {
-                if (response.StatusCode != HttpStatusCode.OK)
-                {
-                    throw new WebException($"鏈嶅姟鍣ㄨ繑鍥為敊璇姸鎬佺爜: {(int)response.StatusCode} {response.StatusDescription}");
-                }
+    //        // 澶勭悊HTTP閿欒鐘舵�佺爜
+    //        using (var response = request.GetResponse() as HttpWebResponse)
+    //        {
+    //            if (response.StatusCode != HttpStatusCode.OK)
+    //            {
+    //                throw new WebException($"鏈嶅姟鍣ㄨ繑鍥為敊璇姸鎬佺爜: {(int)response.StatusCode} {response.StatusDescription}");
+    //            }
 
-                using (var stream = response.GetResponseStream())
-                using (var reader = new StreamReader(stream, Encoding.UTF8))
-                {
-                    return reader.ReadToEnd();
-                }
-            }
-        }
-        catch (WebException ex) when (ex.Response is HttpWebResponse response)
-        {
-            // 璁板綍璇︾粏閿欒淇℃伅
-            var errorStream = response.GetResponseStream();
-            using (var reader = new StreamReader(errorStream))
-            {
-                string errorDetails = reader.ReadToEnd();
-                throw new Exception($"璇锋眰澶辫触 [Status: {response.StatusCode}]: {errorDetails}", ex);
-            }
-        }
-        catch (Exception ex)
-        {
-            throw new Exception($"璇锋眰寮傚父: {ex.Message}", ex);
-        }
-    }
+    //            using (var stream = response.GetResponseStream())
+    //            using (var reader = new StreamReader(stream, Encoding.UTF8))
+    //            {
+    //                return reader.ReadToEnd();
+    //            }
+    //        }
+    //    }
+    //    catch (WebException ex) when (ex.Response is HttpWebResponse response)
+    //    {
+    //        // 璁板綍璇︾粏閿欒淇℃伅
+    //        var errorStream = response.GetResponseStream();
+    //        using (var reader = new StreamReader(errorStream))
+    //        {
+    //            string errorDetails = reader.ReadToEnd();
+    //            throw new Exception($"璇锋眰澶辫触 [Status: {response.StatusCode}]: {errorDetails}", ex);
+    //        }
+    //    }
+    //    catch (Exception ex)
+    //    {
+    //        throw new Exception($"璇锋眰寮傚父: {ex.Message}", ex);
+    //    }
+    //}
 }
\ No newline at end of file
diff --git a/service/Wom/WomdaaManager.cs b/service/Wom/WomdaaManager.cs
index 5e2300b..f8b6219 100644
--- a/service/Wom/WomdaaManager.cs
+++ b/service/Wom/WomdaaManager.cs
@@ -301,4 +301,69 @@
 
         return Traceability;
     }
+
+    public dynamic ProductBinding(dynamic query)
+    {
+        if (query == null) throw new ArgumentNullException(nameof(query), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+        // 2. 浣跨敤 string.IsNullOrEmpty 鐩存帴鍒ゆ柇瀛楃涓插睘鎬э紙閬垮厤 NullReferenceException锛�
+        if (string.IsNullOrEmpty(query.userName?.ToString()))
+            throw new ArgumentException("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖", nameof(query.userName));
+
+        if (string.IsNullOrEmpty(query.ZsBar?.ToString()))
+            throw new ArgumentException("杩芥函鐮佷笉鍏佽涓虹┖", nameof(query.ZsBar));
+
+        if (string.IsNullOrEmpty(query.LsBar?.ToString()))
+            throw new ArgumentException("鍚庣洊鐮佷笉鍏佽涓虹┖", nameof(query.LsBar));
+
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("prc_pda_product_binding", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
+                        new("@pi_trac_barcode", SqlDbType.NVarChar, 100) { Value = query.ZsBar },
+                        new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar },
+                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                        new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }
+                    };
+                    
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    
+                    cmd.ExecuteNonQuery();
+                    
+                    _strMsg = parameters[3].Value?.ToString() ?? "";
+                    _intSum = parameters[4].Value?.ToString() ?? "-1";
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new
+                    {
+                        message = _strMsg,
+                        status = result,
+                        tracBarcode = query.ZsBar
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3