From 20dda69cad210c3b40d643e52ba1cbccec24b392 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期一, 14 七月 2025 15:23:32 +0800 Subject: [PATCH] 1.携客云获取送货单默认组织写死 2.采购入库优化 --- service/Warehouse/MesXkyService.cs | 619 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 586 insertions(+), 33 deletions(-) diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs index c09c8d7..158649e 100644 --- a/service/Warehouse/MesXkyService.cs +++ b/service/Warehouse/MesXkyService.cs @@ -1,35 +1,70 @@ 锘縰sing MES.Service.Models; -using Microsoft.IdentityModel.Tokens; -using MySqlConnector; -using NewPdaSqlServer.Controllers; using NewPdaSqlServer.DB; -using NewPdaSqlServer.Dto.service; -using NewPdaSqlServer.entity; -using NewPdaSqlServer.service.@base; using NewPdaSqlServer.util; using Newtonsoft.Json; -using SqlSugar; +using Newtonsoft.Json.Linq; using System.Collections; using System.Data; using System.Net; using System.Net.Http.Headers; -using System.Security.Cryptography; using System.Text; -using static Azure.Core.HttpHeader; -using static Microsoft.EntityFrameworkCore.DbLoggerCategory; +using NewPdaSqlServer.Dto.Xky; using static NewPdaSqlServer.Controllers.Warehouse.MesXkyController; namespace NewPdaSqlServer.service.QC; public class MesXkyService : RepositoryNoEntity { - public dynamic XKY_GET_DHD(XKYGetDhdRequest entity) + /// <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) { + _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 = ""; ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon(); + _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //string data_inserted = "{\r\n \"startDate\": 1746759300000,\r\n \"endDate\": 1746762300000,\r\n \"erpCode\": \"GXF001\"\r\n}"; string sendJson = JsonConvert.SerializeObject(entity); ArrayList SQLStringList = new ArrayList(); @@ -38,8 +73,8 @@ HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - string json = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + sendJson + "}"; - byte[] postData = Encoding.UTF8.GetBytes(json); + _requestJson = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + sendJson + "}"; + byte[] postData = Encoding.UTF8.GetBytes(_requestJson); // 鍒涘缓璇锋眰瀵硅薄 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://openapi.xiekeyun.com/delivery/getNoList.json"); @@ -52,7 +87,7 @@ { stream.Write(postData, 0, postData.Length); } - dynamic responseJson; + // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) @@ -60,39 +95,557 @@ { string result2 = reader.ReadToEnd(); - responseJson = JsonConvert.DeserializeObject(result2); + _responseData = JsonConvert.DeserializeObject(result2); } - if (responseJson.result != 1) - throw new ApplicationException(responseJson.errorMsg); + if (_responseData.result != 1) + throw new ApplicationException(_responseData.errorMsg); - var result = 0; - // 鏂板鏁版嵁瀛樺偍閫昏緫 - List<DeliveryNotice> noticeList = JsonConvert.DeserializeObject<List<DeliveryNotice>>(responseJson.dataList.ToString()); - noticeList.ForEach(n => n.Id = Guid.NewGuid()); // 鏂板GUID璧嬪�� - Db.Ado.UseTran(() => - { - result = Db.Insertable(noticeList).ExecuteCommand(); - }, ex => - { - throw new Exception($"鏁版嵁搴撴彃鍏ュけ璐ワ細{ex.Message}\n{ex.InnerException?.Message}"); - }); + sendStatus = _responseData.result; + //鍌ㄥ瓨閫佽揣鍗曞彿璇︾粏 + if (SaveDeliveryNotice(_responseData) > 0) + sendStatus = 1; + else + sendStatus = 0; - return responseJson; + 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: (entity.startDate / 1000).ToString(), + xkyEndTime: (entity.endDate / 1000).ToString(), + 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+ $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}", + orderNo: "", + sendJson: _requestJson, + rtnJson: JsonConvert.SerializeObject(_responseData), + xkyBeginTime: (entity.startDate / 1000).ToString(), + xkyEndTime: (entity.endDate / 1000).ToString(), + sendStatus: 0, + executeTime: _executeTimestamp + ); throw new Exception(e.Message); } } - - public dynamic GetXkyDHD(XKYGetDhdRequest entity) + //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曞仛澶勭悊 + private int SaveDeliveryNotice(dynamic responseJson) { + var result = 1; + List<DeliveryNotice> noticeList = JsonConvert.DeserializeObject<List<DeliveryNotice>>(responseJson.dataList.ToString()); - return XKY_GET_DHD(entity); + // 鏂板鍒楄〃绌哄�兼鏌� + if (noticeList == null || !noticeList.Any() || noticeList.Count < 1) + { + _logMessageDHD += $"鏈鑾峰彇鏀惰揣鍗曟暟鎹负绌�"; + return result; + } + + + noticeList.ForEach(n => n.Id = Guid.NewGuid()); + noticeList.ForEach(n => n.orgId = "104554"); + + var deliveryNos = noticeList.Select(n => n.DeliveryNo).Distinct().ToList(); + //var noticeIds = noticeList.Select(n => n.Id).ToList(); // 淇濇寔GUID绫诲瀷 + + Db.Ado.UseTran(() => + { + // 娣诲姞绌哄�兼鏌� + if (deliveryNos.Any()) + { + // 鍒犻櫎鍏宠仈閫佽揣鏄庣粏鏁版嵁 + Db.Deleteable<DeliveryNoticeDetail>() + .Where(d => deliveryNos.Contains(d.DeliveryNo)) + .ExecuteCommand(); + + + //鍒犻櫎鍏宠仈閫佽揣鏉$爜鏄庣粏 + Db.Deleteable<TblBarcodeInformation>() + .Where(b => deliveryNos.Contains(b.DeliveryNo)) + .ExecuteCommand(); + + //鍒犻櫎閫佽揣鍗� + Db.Deleteable<DeliveryNotice>() + .Where(n => deliveryNos.Contains(n.DeliveryNo)) + .ExecuteCommand(); + } + + // 鎵归噺鎻掑叆浼樺寲 + result = Db.Fastest<DeliveryNotice>().BulkCopy(noticeList); + }, + ex => { + // 澧炲己寮傚父淇℃伅 + //_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); + } + + if (_responseData.result != 1) + throw new ApplicationException(_responseData.errorMsg); + + sendStatus = _responseData.result; + // 瀵规暟鎹仛澶勭悊瀛樺叆mes + if (SaveDeliveryNoticeDetail(_responseData, entity.deliveryNo) > 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", + detail: _logMessageDhdDetail, + 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", + detail: _logMessageDhdDetail + $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}", + orderNo: "", + sendJson: _requestJson, + rtnJson: JsonConvert.SerializeObject(_responseData), + xkyBeginTime: "", + xkyEndTime: "", + sendStatus: 0, + executeTime: _executeTimestamp + ); + throw new Exception(e.Message); + } } -} \ No newline at end of file + //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曞仛澶勭悊 + private int SaveDeliveryNoticeDetail(dynamic responseJson,string deliveryNo) + { + 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())) + { + throw new Exception($"銆愬紓甯搞�戣幏鍙栭�佽揣鍗曞け璐ワ細{responseJson}"); + } + deliveryNo = deliveryNoObj.ToString(); + + //璧嬪�糶uid鍜屽埌璐у崟鍙� + noticeList.ForEach(n => n.Id = Guid.NewGuid()); + noticeList.ForEach(n => n.DeliveryNo = deliveryNo); + noticeList.ForEach(n => n.SynchronousDate = DateTime.Now); + + + Db.Ado.UseTran(() => + { + // 鍒犻櫎鍏宠仈閫佽揣鏄庣粏鏁版嵁 + Db.Deleteable<DeliveryNoticeDetail>() + .Where(d => d.DeliveryNo == deliveryNo) + .ExecuteCommand(); + + // 鎵归噺鎻掑叆浼樺寲 + result = Db.Fastest<DeliveryNoticeDetail>().BulkCopy(noticeList); + }, + ex => { + // 澧炲己寮傚父淇℃伅 + //_logMessageDhdDetail = _logMessageDhdDetail + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}"; + throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}"); + }); + + return result; + } + + //鑾峰彇鎼哄浜戝埌璐у崟鏉$爜 + public dynamic GetXkyDhdBar(XKYGetDhdDeatilRequest entity) + { + _logMessageDhdBar = "銆怱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/barcode/byDeliveryNo.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; + // 瀵规暟鎹仛澶勭悊瀛樺叆mes + if (SaveDeliveryNoticeBar(_responseData, entity.deliveryNo) > 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: "TBL_BARCODE_INFORMATION", + 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: "TBL_BARCODE_INFORMATION", + 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); + } + + } + + //瀵硅幏鍙栧埌鐨勬惡瀹簯閫佽揣鍗曟潯鐮佸仛澶勭悊 + private int SaveDeliveryNoticeBar(dynamic responseJson,string deliveryNo) + { + var result = 1; + List<XkyBarcodeDataDto> noticeList = JsonConvert.DeserializeObject<List<XkyBarcodeDataDto>>(responseJson.dataList.ToString()); + + if (noticeList == null || !noticeList.Any()) + { + _logMessageDhdBar += $"鏉$爜鏁版嵁涓虹┖锛岄�佽揣鍗曞彿锛歿deliveryNo}"; + return result; + } + + 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(), + + // 灏哄瀛楁鏄犲皠 + 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(); + + // 鎵归噺鎻掑叆浼樺寲锛堜娇鐢ㄦ纭殑barcodeList锛� + result = Db.Fastest<TblBarcodeInformation>().BulkCopy(barcodeList); + }, + ex => { + // 澧炲己寮傚父淇℃伅 + //_logMessageDhdBar = _logMessageDhdBar + $"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}"; + throw new Exception($"鏁版嵁搴撴搷浣滃け璐ワ細{ex.Message}\n璺熻釜锛歿ex.StackTrace}"); + }); + + 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); + } + + } +} -- Gitblit v1.9.3