From 22428c74e4b57c87a979a8f2f199e0e8e34dbb86 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 28 六月 2025 16:48:09 +0800 Subject: [PATCH] 编写接收SAP下发入库单接口 --- Wms/Wms/Controllers/UpApiController.cs | 36 +++++++++-- Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs | 2 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 61 ++++++++------------ Wms/Model/InterFaceModel/HttpModel.cs | 72 ++++++++++++++++++++++++ 4 files changed, 127 insertions(+), 44 deletions(-) diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index b40bde9..cdf457f 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -586,5 +586,77 @@ /// </summary> public string contactMobile { get; set; } } + + public class SapAsnVm + { + /// <summary> + /// 鎿嶄綔浜� + /// </summary> + public string @operator{ get; set; } + public SendAsnVm data { get; set; } + } + public class SendAsnVm + { + /// <summary> + /// 鍏ュ簱鍗曞彿 + /// </summary> + public long orderNo { get; set; } + /// <summary> + /// 鍏ュ簱鍗曠被鍨� + /// 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 锛堥攢鍞��璐э級4锛氫綑鏂欓��鍥炲叆搴� 8 锛氱敓浜ч��鏂欏叆搴� + /// </summary> + public int billType { get; set; } + /// <summary> + /// 渚涘簲鍟嗙紪鍙� + /// </summary> + public string vendorNo { get; set; } + /// <summary> + /// 渚涘簲鍟嗗悕绉� + /// </summary> + public string vendorName { get; set; } + /// <summary> + /// 鍏ュ簱鍗曟槑缁嗗垪琛� + /// </summary> + public List<SendAsnDetail> orderDCmdList { get; set; } + } + public class SendAsnDetail + { + /// <summary> + /// 鍏ュ簱鍗曡鍙� + /// </summary> + public string lineNo { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public long skuNo { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string skuName { get; set; } + /// <summary> + /// 搴旀敹鐗╂枡鏁伴噺 + /// </summary> + public string expectedQty { get; set; } + /// <summary> + /// 鎵瑰彿 + /// </summary> + public long lotNo { get; set; } + /// <summary> + /// 鐢熶骇鏃ユ湡 + /// </summary> + public string productionDate { get; set; } + /// <summary> + /// 鍒版湡鏃ユ湡 + /// </summary> + public string expireDate { get; set; } + /// <summary> + /// 澶嶆鏃ユ湡 + /// </summary> + public string retestDate { get; set; } + /// <summary> + /// 渚涘簲鍟嗘壒鍙� + /// </summary> + public string supplyBatch { get; set; } + } #endregion } diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index dc4a007..715a0b7 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -1256,77 +1256,64 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public ErpModel CreateAsn(AsnInfo model) + public ErpModel CreateAsn(SendAsnVm model,string userName) { try { var resultModel = new ErpModel() { Success = -1, Message = "" }; - if (string.IsNullOrEmpty(model.AsnType)) + if (string.IsNullOrEmpty(model.billType.ToString())) { resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!"; return resultModel; } - if (string.IsNullOrEmpty(model.Customer)) - { - resultModel.Message = "瀹㈡埛涓嶅彲涓虹┖!"; - return resultModel; - } - if (string.IsNullOrEmpty(model.OrderCode)) + + if (string.IsNullOrEmpty(model.orderNo.ToString())) { resultModel.Message = "涓婃父绯荤粺鍗曞彿涓嶅彲涓虹┖!"; return resultModel; } - if (model.AsnDetails.Count <= 0) + if (model.orderDCmdList.Count <= 0) { resultModel.Message = "鍏ュ簱鍗曟槑缁嗕笉鍙负绌�!"; return resultModel; } - - // 鏍规嵁瀹㈡埛缂栧彿鑾峰彇瀹㈡埛鍚嶇О - var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0"); - if (CustomerModel == null) - { - resultModel.Message = "瀹㈡埛缂栧彿涓嶅瓨鍦�!"; - return resultModel; - } - // 鍏ュ簱鎬昏〃淇℃伅 string asnNo = new Common().GetMaxNo("ASN"); var asnModel = new BllArrivalNotice() { ASNNo = asnNo, Status = "0",//绛夊緟鎵ц - Type = model.AsnType, - Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin, - CustomerNo = model.Customer, - CustomerName = CustomerModel.CustomerName, - OrderCode = model.OrderCode, - UserName = model.Username + Type = model.billType.ToString(), + Origin = "SAP", + CustomerNo = model.vendorNo, + CustomerName = model.vendorName, + OrderCode = model.orderNo.ToString(), + UserName = userName }; // 鍏ュ簱鏄庣粏琛ㄤ俊鎭� List<BllArrivalNoticeDetail> detailModels = new List<BllArrivalNoticeDetail>(); - foreach (AsnDetail asnDetailModel in model.AsnDetails) + foreach (var asnDetailModel in model.orderDCmdList) { - if (string.IsNullOrEmpty(asnDetailModel.SkuNo)) + if (string.IsNullOrEmpty(asnDetailModel.skuNo.ToString())) { resultModel.Message = "鐗╂枡缂栫爜涓嶅彲涓虹┖!"; return resultModel; } - if (asnDetailModel.Qty <= 0) + if (Convert.ToDecimal(asnDetailModel.expectedQty) <= 0) { - resultModel.Message = "鏁伴噺搴斾负姝f暣鏁�!"; + resultModel.Message = "搴旀敹鐗╂枡鏁伴噺搴斿ぇ浜�0!"; return resultModel; } - if (string.IsNullOrEmpty(asnDetailModel.LotNo)) + if (string.IsNullOrEmpty(asnDetailModel.lotNo.ToString())) { resultModel.Message = "鎵规鍙蜂笉鍙负绌�!"; return resultModel; } // 鑾峰彇鐗╂枡璇︾粏淇℃伅 - var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.SkuNo && it.IsDel == "0"); + var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == asnDetailModel.skuNo.ToString() && it.IsDel == "0"); if (skuModel == null) { resultModel.Message = "涓嶅瓨鍦ㄥ綋鍓嶇墿鏂欎俊鎭�!"; @@ -1338,16 +1325,18 @@ var detailModel = new BllArrivalNoticeDetail() { ASNNo = asnNo, - SkuNo = asnDetailModel.SkuNo, + SkuNo = asnDetailModel.skuNo.ToString(), SkuName = skuModel.SkuName, Standard = skuModel.Standard, - LotNo = asnDetailModel.LotNo, + LotNo = asnDetailModel.lotNo.ToString(), LotText = "", - Qty = (decimal)asnDetailModel.Qty, - FactQty=0, - CompleteQty=0, + Qty = Convert.ToDecimal(asnDetailModel.expectedQty), + FactQty = 0, + CompleteQty = 0, PackagNo = skuModel.PackagNo, - SupplierLot = asnDetailModel.SupplierLot, + SupplierLot = asnDetailModel.supplyBatch,//鐢熶骇鏃ユ湡 + Lot1 = asnDetailModel.productionDate,//杩囨湡鏃ユ湡 + Lot2 = asnDetailModel.expireDate, Status = "0", IsSampling = "0", InspectStatus = "0", diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs index 9e737c0..70af5d0 100644 --- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs +++ b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs @@ -96,7 +96,7 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - ErpModel CreateAsn(AsnInfo model); + ErpModel CreateAsn(SendAsnVm model, string userName); /// <summary> /// 璁㈠崟鍥炰紶涓婃父绯荤粺 /// </summary> diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs index 3f77a43..ba15e9e 100644 --- a/Wms/Wms/Controllers/UpApiController.cs +++ b/Wms/Wms/Controllers/UpApiController.cs @@ -29,6 +29,7 @@ using ZXing.QrCode.Internal; using System.Xml.Linq; using WMS.IBLL.ISysServer; +using ZXing; namespace Wms.Controllers { @@ -122,11 +123,16 @@ if (!str.Contains("0")) { list = new { Success = -1, Message = str }; + + LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr); + return Ok(new { result = false, code = "400", message = str }); } + else + { + LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr); - LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr); - - return Ok(new { result = true, code = "1", message = "success" }); + return Ok(new { result = true, code = "1", message = "success" }); + } } catch (Exception e) { @@ -142,13 +148,29 @@ /// <returns></returns> [AllowAnonymous] [HttpPost] - public IActionResult CreateAsn(object model) + public IActionResult CreateAsn(SapAsnVm model) { - + var logStr = $@".\log\SAP\鍏ュ簱鍗曚笅鍙�" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; try { - LogFile.SaveLogToFile($"Sap鍏ュ簱鍗曚笅鍙戯細( {model} ),", logStr); - return Ok(new { result = true, code = "1", message = "success" }); + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"Sap鍏ュ簱鍗曚笅鍙戯細( {jsonData} ),", logStr); + + var _result = _arrivalNoticeSvc.CreateAsn(model.data, model.@operator); + + var list = new { Success = 0, Message = "涓嬪彂鎴愬姛" }; + if (_result.Success == 0) + { + LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr); + return Ok(new { result = true, code = "1", message = "success" }); + } + else + { + list = new { Success = -1, Message = _result.Message }; + + LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr); + return Ok(new { result = false, code = "400", message = _result.Message }); + } } catch (Exception e) { -- Gitblit v1.8.0