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