From c6239213a60120d4f3f8d2105f48b6fa715a99ed Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期三, 21 五月 2025 13:30:02 +0800
Subject: [PATCH] 1.获取携客云信息返回结构优化 2.SRM送货单扫码收料-PDA 3.OA->MES新增字段

---
 service/Warehouse/MesXkyService.cs |  103 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 68 insertions(+), 35 deletions(-)

diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs
index e2822f3..ceb40ea 100644
--- a/service/Warehouse/MesXkyService.cs
+++ b/service/Warehouse/MesXkyService.cs
@@ -8,8 +8,7 @@
 using System.Net;
 using System.Net.Http.Headers;
 using System.Text;
-using System.Data.SqlClient;
-using System.Data;
+using NewPdaSqlServer.Dto.Xky;
 using static NewPdaSqlServer.Controllers.Warehouse.MesXkyController;
 
 namespace NewPdaSqlServer.service.QC;
@@ -153,7 +152,7 @@
         // 鏂板鍒楄〃绌哄�兼鏌�
         if (noticeList == null || !noticeList.Any() || noticeList.Count < 1)
         {
-            _logMessageDhdBar += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�";
+            _logMessageDHD += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�";
             return result;
         }
 
@@ -263,7 +262,7 @@
 
             sendStatus = _responseData.result;
             // 瀵规暟鎹仛澶勭悊瀛樺叆mes
-            if (SaveDeliveryNoticeDetail(_responseData) > 0)
+            if (SaveDeliveryNoticeDetail(_responseData, entity.deliveryNo) > 0)
                 sendStatus = 1;
             else
                 sendStatus = 0;
@@ -294,7 +293,7 @@
                 edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
                 abtGuid: null,
                 abtTable: "DELIVERY_NOTICE_DETAIL",
-                detail: _logMessageDhdDetail,
+                detail: _logMessageDhdDetail + $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}",
                 orderNo: "",
                 sendJson: _requestJson,
                 rtnJson: JsonConvert.SerializeObject(_responseData),
@@ -309,25 +308,26 @@
     }
 
     //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曞仛澶勭悊
-    private int SaveDeliveryNoticeDetail(dynamic responseJson)
+    private int SaveDeliveryNoticeDetail(dynamic responseJson,string deliveryNo)
     {
-        var result = 0;
+        var result = 1;
         List<DeliveryNoticeDetail> noticeList = JsonConvert.DeserializeObject<List<DeliveryNoticeDetail>>(responseJson.data.lineList.ToString());
+
+        // 鏂板鍒楄〃绌哄�兼鏌�
+        if (noticeList == null || !noticeList.Any() || noticeList.Count < 1)
+        {
+            _logMessageDhdBar += $"閫佽揣鏄庣粏鏁版嵁涓虹┖锛岄�佽揣鍗曞彿锛歿deliveryNo}";
+            return result;
+        }
+
+
         // 鑾峰彇閫佽揣鍗曞彿骞舵牎楠�
         var deliveryNoObj = responseJson.data.deliveryNo;
         if (deliveryNoObj == null || string.IsNullOrEmpty(deliveryNoObj.ToString()))
         {
-            _logMessageDhdDetail += $"銆愬紓甯搞�戣幏鍙栭�佽揣鍗曞け璐ワ細{responseJson}";
-            return result;
+            throw new Exception($"銆愬紓甯搞�戣幏鍙栭�佽揣鍗曞け璐ワ細{responseJson}");
         }
-        string deliveryNo = deliveryNoObj.ToString();
-
-        // 鏂板鍒楄〃绌哄�兼鏌�
-        if (noticeList == null || !noticeList.Any())
-        {
-            _logMessageDhdBar += $"銆愬紓甯搞�戦�佽揣鏄庣粏鏁版嵁涓虹┖锛岄�佽揣鍗曞彿锛歿deliveryNo}";
-            return result;
-        }
+        deliveryNo = deliveryNoObj.ToString();
 
         //璧嬪�糶uid鍜屽埌璐у崟鍙�
         noticeList.ForEach(n => n.Id = Guid.NewGuid());
@@ -347,8 +347,8 @@
         },
         ex => {
             // 澧炲己寮傚父淇℃伅
-            _logMessageDhdDetail = _logMessageDhdDetail + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
-            //throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}");
+            //_logMessageDhdDetail = _logMessageDhdDetail + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
+            throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}");
         });
 
         return result;
@@ -451,7 +451,7 @@
                 edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"),
                 abtGuid: null,
                 abtTable: "TBL_BARCODE_INFORMATION",
-                detail: _logMessageDhdBar,
+                detail: _logMessageDhdBar + $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}",
                 orderNo: "",
                 sendJson: _requestJson,
                 rtnJson: JsonConvert.SerializeObject(_responseData),
@@ -468,36 +468,69 @@
     //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曟潯鐮佸仛澶勭悊
     private int SaveDeliveryNoticeBar(dynamic responseJson,string deliveryNo)
     {
-        var result = 0;
-        List<TblBarcodeInformation> noticeList = JsonConvert.DeserializeObject<List<TblBarcodeInformation>>(responseJson.dataList.ToString());
-        
-        // 鏂板鍒楄〃绌哄�兼鏌�
+        var result = 1;
+        List<XkyBarcodeDataDto> noticeList = JsonConvert.DeserializeObject<List<XkyBarcodeDataDto>>(responseJson.dataList.ToString());
+
         if (noticeList == null || !noticeList.Any())
         {
-            _logMessageDhdBar += $"銆愬紓甯搞�戞潯鐮佹暟鎹负绌猴紝閫佽揣鍗曞彿锛歿deliveryNo}";
+            _logMessageDhdBar += $"鏉$爜鏁版嵁涓虹┖锛岄�佽揣鍗曞彿锛歿deliveryNo}";
             return result;
         }
 
-        // 璧嬪�糶uid鍜屽埌璐у崟鍙�
-        noticeList.ForEach(n => n.Id = Guid.NewGuid());
-        noticeList.ForEach(n => n.DeliveryNo = deliveryNo);
-        noticeList.ForEach(n => n.SynchronousDate = DateTime.Now);
+        var barcodeList = noticeList.Select(n => new TblBarcodeInformation
+        {
+            Id = Guid.NewGuid(),
+            DeliveryNo = deliveryNo,
+            SynchronousDate = DateTime.Now,
 
+            // 鐩存帴鏄犲皠瀛楁
+            ProductCode = n.ProductCode,
+            SmallBarcode = n.SmallBarcode,
+            BigBarcode = n.BigBarcode,
+            OuterBarcode = n.OuterBarcode,
+            IncludeQty = n.IncludeQty.ToString(),
+            SmallPackageSn = n.SmallPackageSn,
+            BigPackageSn = n.BigPackageSn,
+            OutPackageSn = n.OuterPackageSn,
+            PackLevel = n.PackLevel.ToString(),
 
-        Db.Ado.UseTran(() =>
+            // 灏哄瀛楁鏄犲皠
+            SmallPackageLength = n.SmallPackageLength?.ToString(),
+            SmallPackageWidth = n.SmallPackageWidth?.ToString(),
+            SmallPackageHeight = n.SmallPackageHeight?.ToString(),
+            BigPackageLength = n.BigPackageLength?.ToString(),
+            BigPackageWidth = n.BigPackageWidth?.ToString(),
+            BigPackageHeight = n.BigPackageHeight?.ToString(),
+            OuterPackageLength = n.OuterPackageLength?.ToString(),
+            OuterPackageWidth = n.OuterPackageWidth?.ToString(),
+            OuterPackageHeight = n.OuterPackageHeight?.ToString(),
+
+            // 鍔ㄦ�佸瓧娈垫槧灏�
+            PoErpNo = n.DynamicData?.PoErpNo ?? n.PoErpNo,
+            PoLineNo = n.DynamicData?.PoLineNo ?? n.PoLineNo,
+            InnerVendorCode = n.DynamicData?.InnerVendorCode,
+            Customize1 = n.DynamicData?.Customize1,
+            Customize2 = n.DynamicData?.Customize2,
+            Customize3 = n.DynamicData?.Customize3,
+
+            // 鍏朵粬瀛楁
+            DnLines = n.DnLines // 鏍规嵁鏁版嵁搴撴敞閲婏紝ExtendN01瀵瑰簲椤圭洰(鍗曡韩extendN01)锛岃繖閲屾槧灏刣nLines
+        }).ToList();
+
+        Db.Ado.UseTran(() => 
         {
             // 鍒犻櫎鍏宠仈閫佽揣鏄庣粏鏁版嵁
             Db.Deleteable<TblBarcodeInformation>()
             .Where(d => d.DeliveryNo == deliveryNo)
-              .ExecuteCommand();
+            .ExecuteCommand();
 
-            // 鎵归噺鎻掑叆浼樺寲
-            result = Db.Fastest<TblBarcodeInformation>().BulkCopy(noticeList);
+            // 鎵归噺鎻掑叆浼樺寲锛堜娇鐢ㄦ纭殑barcodeList锛�
+            result = Db.Fastest<TblBarcodeInformation>().BulkCopy(barcodeList);
         },
         ex => {
             // 澧炲己寮傚父淇℃伅
-            _logMessageDhdBar = _logMessageDhdBar + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
-            //throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}");
+            //_logMessageDhdBar = _logMessageDhdBar + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}";
+            throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}");
         });
 
         return result;

--
Gitblit v1.9.3