| | |
| | | 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; |
| | |
| | | // 新增列表空值检查 |
| | | if (noticeList == null || !noticeList.Any() || noticeList.Count < 1) |
| | | { |
| | | _logMessageDhdBar += $"本次获取收货单数据为空"; |
| | | _logMessageDHD += $"本次获取收货单数据为空"; |
| | | return result; |
| | | } |
| | | |
| | |
| | | |
| | | sendStatus = _responseData.result; |
| | | // 对数据做处理存入mes |
| | | if (SaveDeliveryNoticeDetail(_responseData) > 0) |
| | | if (SaveDeliveryNoticeDetail(_responseData, entity.deliveryNo) > 0) |
| | | sendStatus = 1; |
| | | else |
| | | sendStatus = 0; |
| | |
| | | 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), |
| | |
| | | } |
| | | |
| | | //对获取到的携客云送货单做处理 |
| | | 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(); |
| | | |
| | | //赋值guid和到货单号 |
| | | noticeList.ForEach(n => n.Id = Guid.NewGuid()); |
| | |
| | | }, |
| | | 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; |
| | |
| | | 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), |
| | |
| | | //对获取到的携客云送货单条码做处理 |
| | | 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; |
| | | } |
| | | |
| | | // 赋值guid和到货单号 |
| | | 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),这里映射dnLines |
| | | }).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; |