From ecfbe5ea628de435225aa26c4c7f5e1d9c549cc9 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期六, 17 五月 2025 10:38:49 +0800
Subject: [PATCH] 1.其他出入库问题优化 2.携客云送货单明细数据接通

---
 service/Warehouse/MesXkyService.cs |  220 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 192 insertions(+), 28 deletions(-)

diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs
index a1b0d95..9f4ab07 100644
--- a/service/Warehouse/MesXkyService.cs
+++ b/service/Warehouse/MesXkyService.cs
@@ -19,30 +19,41 @@
     /// <summary>
     /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
     /// </summary>
-    private  string _logMessage = "銆怱ysAuto銆戣幏鍙栨惡瀹簯閫佽揣鍗曘��";
-    
-    /// <summary>
-    /// 璇锋眰鎶ユ枃缂撳瓨锛堝瓨鍌ㄥ簭鍒楀寲鍚庣殑JSON璇锋眰鍐呭锛�
-    /// </summary>
-    private string _requestJson = string.Empty;
-    
-    /// <summary>
-    /// 鍔ㄦ�佸搷搴斿璞★紙瀛樺偍鍙嶅簭鍒楀寲鐨勬惡瀹簯鎺ュ彛鍝嶅簲锛�
-    /// </summary>
-    private dynamic _responseData = new System.Dynamic.ExpandoObject();
-    
-    /// <summary>
-    /// 鎺ュ彛鎵ц鏃堕棿鎴筹紙鏍煎紡锛歽yyy-MM-dd HH:mm:ss锛�
-    /// </summary>
-    private string _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-    
-    /// <summary>
-    /// 鎺ュ彛璋冪敤鐘舵�侊紙0-澶辫触 1-鎴愬姛锛�
-    /// </summary>
-    private int sendStatus = 0;
+    private string _logMessageDHD = "";
 
-    public dynamic XKY_GET_DHD(XKYGetDhdRequest entity)
+    /// <summary>
+    /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// </summary>
+    private string _logMessageDhdDetail = "";
+
+    /// <summary>
+    /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// </summary>
+    private string _logMessageDhdBar = "銆怱ysAuto銆戣幏鍙栨惡瀹簯閫佽揣鍗曟潯鐮併��";
+
+    public dynamic GetXkyDhd(XKYGetDhdRequest entity)
     {
+        _logMessageDHD = "銆怱ysAuto銆戣幏鍙栨惡瀹簯閫佽揣鍗曘��";
+        /// <summary>
+        /// 璇锋眰鎶ユ枃缂撳瓨锛堝瓨鍌ㄥ簭鍒楀寲鍚庣殑JSON璇锋眰鍐呭锛�
+        /// </summary>
+        string _requestJson = string.Empty;
+
+        /// <summary>
+        /// 鍔ㄦ�佸搷搴斿璞★紙瀛樺偍鍙嶅簭鍒楀寲鐨勬惡瀹簯鎺ュ彛鍝嶅簲锛�
+        /// </summary>
+         dynamic _responseData = new System.Dynamic.ExpandoObject();
+
+        /// <summary>
+        /// 鎺ュ彛鎵ц鏃堕棿鎴筹紙鏍煎紡锛歽yyy-MM-dd HH:mm:ss锛�
+        /// </summary>
+         string _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+        /// <summary>
+        /// 鎺ュ彛璋冪敤鐘舵�侊紙0-澶辫触 1-鎴愬姛锛�
+        /// </summary>
+         int sendStatus = 0;
+
         try
         {
             string ErrorMsg = "";
@@ -129,7 +140,7 @@
 
             sendStatus = _responseData.result;
             // 鍘�120-131琛屾浛鎹负锛�
-            if (ProcessDeliveryNotice(_responseData) > 0)
+            if (SaveDeliveryNotice(_responseData) > 0)
                 sendStatus = 1;
             else
                 sendStatus = 0;
@@ -140,7 +151,7 @@
                 edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
                 abtGuid: null,
                 abtTable: "DELIVERY_NOTICE",
-                detail: _logMessage,
+                detail: _logMessageDHD,
                 orderNo: "",
                 sendJson: _requestJson,
                 rtnJson: JsonConvert.SerializeObject(_responseData),
@@ -160,7 +171,7 @@
                 edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
                 abtGuid: null,
                 abtTable: "DELIVERY_NOTICE",
-                detail: _logMessage,
+                detail: _logMessageDHD,
                 orderNo: "",
                 sendJson: _requestJson,
                 rtnJson: JsonConvert.SerializeObject(_responseData),
@@ -183,7 +194,7 @@
     //}
 
     //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曞仛澶勭悊
-    private int ProcessDeliveryNotice(dynamic responseJson)
+    private int SaveDeliveryNotice(dynamic responseJson)
     {
         List<DeliveryNotice> noticeList = JsonConvert.DeserializeObject<List<DeliveryNotice>>(responseJson.dataList.ToString());
         noticeList.ForEach(n => n.Id = Guid.NewGuid());
@@ -218,11 +229,164 @@
         }, 
         ex => {
             // 澧炲己寮傚父淇℃伅
-            _logMessage = _logMessage + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
+            _logMessageDHD = _logMessageDHD + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
             //throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}");
         });
 
         return result;
     }
-    
+
+    //鑾峰彇鎼哄浜戝埌璐у崟鏄庣粏
+    public dynamic GetXkyDhdDetail(XKYGetDhdDeatilRequest entity)
+    {
+        _logMessageDhdDetail = "銆怱ysAuto銆戣幏鍙栨惡瀹簯閫佽揣鍗曟槑缁嗐��";
+        /// <summary>
+        /// 璇锋眰鎶ユ枃缂撳瓨锛堝瓨鍌ㄥ簭鍒楀寲鍚庣殑JSON璇锋眰鍐呭锛�
+        /// </summary>
+        string _requestJson = string.Empty;
+
+        /// <summary>
+        /// 鍔ㄦ�佸搷搴斿璞★紙瀛樺偍鍙嶅簭鍒楀寲鐨勬惡瀹簯鎺ュ彛鍝嶅簲锛�
+        /// </summary>
+        dynamic _responseData = new System.Dynamic.ExpandoObject();
+
+        /// <summary>
+        /// 鎺ュ彛鎵ц鏃堕棿锛堟牸寮忥細yyyy-MM-dd HH:mm:ss锛�
+        /// </summary>
+        string _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+        /// <summary>
+        /// 鎺ュ彛璋冪敤鐘舵�侊紙0-澶辫触 1-鎴愬姛锛�
+        /// </summary>
+        int sendStatus = 0;
+
+        try
+        {
+            string ErrorMsg = "";
+            ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon();
+
+            _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            string sendJson = JsonConvert.SerializeObject(entity);
+            ArrayList SQLStringList = new ArrayList();
+            var url = "https://openapi.xiekeyun.com/delivery/getDetail.json";
+            HttpClient httpClient = new HttpClient();
+            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+
+            _requestJson = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + sendJson + "}";
+            byte[] postData = Encoding.UTF8.GetBytes(_requestJson);
+
+            // 鍒涘缓璇锋眰瀵硅薄
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+            request.Method = "POST";
+            request.ContentType = "application/json";
+            request.ContentLength = postData.Length;
+
+            // 鍙戦�佽姹傛暟鎹�
+            using (Stream stream = request.GetRequestStream())
+            {
+                stream.Write(postData, 0, postData.Length);
+            }
+
+            // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            using (Stream stream = response.GetResponseStream())
+            using (StreamReader reader = new StreamReader(stream))
+            {
+                string result2 = reader.ReadToEnd();
+
+                _responseData = JsonConvert.DeserializeObject(result2);
+            }
+
+
+            //// 鏂板鏃ュ織璁板綍锛堝湪杩斿洖鍝嶅簲鍓嶏級
+            //using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            //{
+            //    using (var cmd = new SqlCommand("prc_log_create", conn))
+            //    {
+            //        try
+            //        {
+            //            conn.Open();
+            //            cmd.CommandType = CommandType.StoredProcedure;
+            //            SqlParameter[] logParams =
+            //            {
+            //                new("@edtUserGuid", SqlDbType.UniqueIdentifier) { Value = Guid.Parse("11111111-1111-1111-1111-111111111111") },
+            //                new("@abtGuid", SqlDbType.UniqueIdentifier) { Value = DBNull.Value },
+            //                new("@abtTable", SqlDbType.NVarChar, 40) { Value = "DELIVERY_NOTICE" },
+            //                new("@detail", SqlDbType.NVarChar, 2500) { Value = "銆怱ysAuto銆戣幏鍙栨惡瀹簯閫佽揣鍗曘��" },
+            //                new("@hNo", SqlDbType.NVarChar, 100) { Value = "" },
+            //                new("@SendJson", SqlDbType.NVarChar) { Value = json },
+            //                new("@RtnJson", SqlDbType.NVarChar) { Value = JsonConvert.SerializeObject(responseJson) },
+            //                new("@xkyBeginTime", SqlDbType.NVarChar) { Value = (entity.startDate/1000).ToString() },
+            //                new("@xkyEndTime", SqlDbType.NVarChar) { Value = (entity.endDate/1000).ToString()},
+            //                new("@sendStatus", SqlDbType.NVarChar) { Value = responseJson.result.ToString()},
+            //                new("@executeTime", SqlDbType.NVarChar) { Value =  executeTime},
+            //            };
+
+            //            foreach (var param in logParams)
+            //                cmd.Parameters.Add(param);
+
+            //            cmd.ExecuteNonQuery();
+            //        }
+            //        catch (Exception logEx)
+            //        {
+            //            // 鏃ュ織璁板綍澶辫触涓嶄腑鏂富娴佺▼
+            //            Console.WriteLine($"鏃ュ織璁板綍澶辫触: {logEx.Message}");
+            //        }
+            //        finally
+            //        {
+            //            conn.Close();
+            //        }
+            //    }
+            //}
+
+            if (_responseData.result != 1)
+                throw new ApplicationException(_responseData.errorMsg);
+
+            sendStatus = _responseData.result;
+            // 鍘�120-131琛屾浛鎹负锛�
+            //if (SaveDeliveryNotice(_responseData) > 0)
+            //    sendStatus = 1;
+            //else
+            //    sendStatus = 0;
+
+            var logService = new LogService();
+            logService.CreateLogI(
+                db: Db,
+                edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
+                abtGuid: null,
+                abtTable: "DELIVERY_NOTICE",
+                detail: _logMessageDHD,
+                orderNo: "",
+                sendJson: _requestJson,
+                rtnJson: JsonConvert.SerializeObject(_responseData),
+                xkyBeginTime: "",
+                xkyEndTime: "",
+                sendStatus: sendStatus,
+                executeTime: _executeTimestamp
+            );
+
+            return _responseData;
+        }
+        catch (Exception e)
+        {
+            var logService = new LogService();
+            logService.CreateLogI(
+                db: Db,
+                edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
+                abtGuid: null,
+                abtTable: "DELIVERY_NOTICE",
+                detail: _logMessageDHD,
+                orderNo: "",
+                sendJson: _requestJson,
+                rtnJson: JsonConvert.SerializeObject(_responseData),
+                xkyBeginTime: "",
+                xkyEndTime: "",
+                sendStatus: 0,
+                executeTime: _executeTimestamp
+            );
+            throw new Exception(e.Message);
+        }
+
+    }
+
 }

--
Gitblit v1.9.3