From d34506fc224f8c3132cc29540c65c1528eb61065 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期四, 22 五月 2025 09:50:55 +0800
Subject: [PATCH] 1.OA接口字段调整。 2.SRM新增条码未全部打印,无法扫描限制。 3.新增携客云确认到货流程

---
 service/Warehouse/MesXkyShdManager.cs     |    6 ++
 Controllers/Warehouse/MesXkyController.cs |   29 +++++++++
 service/QC/OaApi.cs                       |   19 +++++-
 service/Warehouse/MesXkyService.cs        |  118 ++++++++++++++++++++++++++++++++++++++-
 4 files changed, 166 insertions(+), 6 deletions(-)

diff --git a/Controllers/Warehouse/MesXkyController.cs b/Controllers/Warehouse/MesXkyController.cs
index 5b9a143..b98b049 100644
--- a/Controllers/Warehouse/MesXkyController.cs
+++ b/Controllers/Warehouse/MesXkyController.cs
@@ -27,6 +27,13 @@
         public string? erpCode { get; set; }
     }
 
+    //鍒拌揣鍗曟槑缁唈son 鍜� 鍒拌揣鍗曟潯鐮�
+    public class XKYGetDhdHwsdRequest
+    {
+        public string? dnXkNo { get; set; }
+        public string? erpCode { get; set; }
+    }
+
     MesXkyService m = new MesXkyService();
 
     [HttpPost("GetXkyDhd")]
@@ -92,4 +99,26 @@
         }
     }
 
+
+    [HttpPost("GetXkyHwsd")]
+    public ResponseResult GetXkyHwsd(XKYGetDhdHwsdRequest request)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos = m.GetXkyHwsd(request);
+            var tbBillList = resultInfos;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = ""
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 0d83dd4..98bba9c 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -199,11 +199,15 @@
         // 瀛楁鏄犲皠閰嶇疆锛堝瓧娈靛悕 -> 鏁版嵁搴撳垪鍚嶏級
         var fieldMappings = new Dictionary<string, (string Field, string Default)>
         {
+            ["sqr"] = ("sqr", "0"),       // 榛樿鍊兼敼涓烘暟瀛�
+            ["sqrq"] = ("sqrq", ""),       // 绌哄瓧绗︿覆鐢ㄤ簬鏃ユ湡鏍煎紡鍖�
+            ["szbm"] = ("szbm", "0"),      // 榛樿鍊兼敼涓烘暟瀛�
+            ["szdw"] = ("szdw", "0"),      // 榛樿鍊兼敼涓烘暟瀛�
             ["ycczdh"] = ("ycczdh", "N/A"),
-            ["wlbm"] = ("wlbm", "N/A"),
+            ["lh"] = ("lh", "N/A"),
             ["khgys"] = ("khgys", "N/A"),
             ["jzmcwlmc"] = ("jzmcwlmc", "N/A"),
-            ["dhdhmes"] = ("dhdhmes", "N/A"),
+            ["dhdhtxt"] = ("dhdhtxt", "N/A"),
             ["bhgpqxms"] = ("bhgpqxms", "鏃犵己闄锋弿杩�")
         };
 
@@ -211,7 +215,16 @@
         var result = new JArray();
         foreach (var mapping in fieldMappings)
         {
-            var value = GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default);
+            var value = mapping.Key switch
+            {
+                "sqr" or "szbm" or "szdw" => 
+                    int.TryParse(GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default), out int num) 
+                        ? num : 0,
+                "sqrq" => DateTime.TryParse(GetDynamicValue(firstRecord, mapping.Value.Field, ""), out DateTime date) 
+                    ? date.ToString("yyyy-MM-dd") 
+                    : DateTime.Now.ToString("yyyy-MM-dd"),
+                _ => GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default)
+            };
             result.Add(new JObject
             {
                 ["fieldName"] = mapping.Key,
diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs
index ceb40ea..45ad039 100644
--- a/service/Warehouse/MesXkyService.cs
+++ b/service/Warehouse/MesXkyService.cs
@@ -16,19 +16,24 @@
 public class MesXkyService : RepositoryNoEntity
 {
     /// <summary>
-    /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// 閫佽揣鍗曟棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級
     /// </summary>
     private string _logMessageDHD = "";
 
     /// <summary>
-    /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// 閫佽揣鍗曟槑缁嗘棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級
     /// </summary>
     private string _logMessageDhdDetail = "";
 
     /// <summary>
-    /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// 閫佽揣鍗曟潯鐮佹棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級
     /// </summary>
     private string _logMessageDhdBar = "";
+
+    /// <summary>
+    /// 閫佽揣鍗曡揣鐗╅�佽揪鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛�
+    /// </summary>
+    private string _logMessageDhdHwsd = "";
 
     //鑾峰彇鎼哄浜戝埌璐у崟
     public dynamic GetXkyDhd(XKYGetDhdRequest entity)
@@ -535,4 +540,111 @@
 
         return result;
     }
+
+
+
+    public dynamic GetXkyHwsd(XKYGetDhdHwsdRequest entity)
+    {
+        _logMessageDhdHwsd = "銆怱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/updateDeliveryStatus.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);
+            }
+
+            if (_responseData.result != 1)
+                throw new ApplicationException(_responseData.errorMsg);
+
+            sendStatus = _responseData.result;
+
+            var logService = new LogService();
+            logService.CreateLogI(
+                db: Db,
+                edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
+                abtGuid: null,
+                abtTable: "MES_INV_ITEM_ARN",
+                detail: _logMessageDhdBar,
+                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: "MES_INV_ITEM_ARN",
+                detail: _logMessageDhdBar + $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}",
+                orderNo: "",
+                sendJson: _requestJson,
+                rtnJson: JsonConvert.SerializeObject(_responseData),
+                xkyBeginTime: "",
+                xkyEndTime: "",
+                sendStatus: 0,
+                executeTime: _executeTimestamp
+            );
+            throw new Exception(e.Message);
+        }
+
+    }
 }
diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs
index f86518d..3ab65b1 100644
--- a/service/Warehouse/MesXkyShdManager.cs
+++ b/service/Warehouse/MesXkyShdManager.cs
@@ -23,7 +23,13 @@
         if (shdh.Count < 1)
             throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戜笉瀛樺湪鎴栨湭鍚屾!");
 
+       // var sql3 = @"SELECT ISNULL((SELECT SUM(delivery_qty) FROM DELIVERY_NOTICE_DETAIL WHERE delivery_no = @shdh), 0) -
+       //ISNULL((SELECT SUM(include_qty) FROM TBL_BARCODE_INFORMATION WHERE delivery_no = @shdh), 0) AS Diffnum ";
 
+       // var diffNum = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams).First();
+
+       // if (diffNum.Diffnum != 0)
+       //     throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戞潯鐮佹湭鍏ㄩ儴鎵撳嵃鎴栨湭鍚屾锛屾棤娉曟敹璐э紒");
 
         var sql2 = @"select D.item_no,
        D.item_name,

--
Gitblit v1.9.3