From 756242b5a1ca2263bcdff8b72f9f9e95836ded97 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 27 六月 2025 16:39:47 +0800
Subject: [PATCH] 增加接收物料下发接口和客户信息接收接口

---
 Wms/Wms/Controllers/UpApiController.cs      |   42 +++++++-
 Wms/WMS.BLL/SysServer/CustomerServer.cs     |   41 ++++++++
 Wms/WMS.IBLL/ISysServer/ICustomerServer.cs  |   11 ++
 Wms/WMS.BLL/SysServer/MaterialsServer.cs    |   90 +++++++++++++++++
 Wms/Model/InterFaceModel/HttpModel.cs       |  104 ++++++++++++++++++++
 Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs |   12 ++
 6 files changed, 291 insertions(+), 9 deletions(-)

diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs
index 3be3a1a..b40bde9 100644
--- a/Wms/Model/InterFaceModel/HttpModel.cs
+++ b/Wms/Model/InterFaceModel/HttpModel.cs
@@ -483,4 +483,108 @@
     }
 
     #endregion
+
+    #region#SAP瀹炰綋绫�
+    public class SapSkuInfoVm
+    { 
+        public SendSkuInfoVm data { get; set; }
+    }
+    public class SendSkuInfoVm
+    {
+        /// <summary>
+        /// 鐗╂枡鍙�
+        /// </summary>
+        public long skuNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string skuName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡绫荤洰
+        /// </summary>
+        public string categoryNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡绫荤洰鍚嶇О
+        /// </summary>
+        public string categoryName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡瀛樻斁鍖哄煙
+        /// </summary>
+        public string regionNo { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍏嶆
+        /// </summary>
+        public int consume { get; set; }
+
+        /// <summary>
+        /// 鍩烘湰鍗曚綅
+        /// </summary>
+        public string unit { get; set; }
+
+        /// <summary>
+        /// 鍖呰鏁伴噺
+        /// </summary>
+        public decimal packageQty { get; set; }
+
+        /// <summary>
+        /// 绠卞崟浣�
+        /// </summary>
+        public string packageName { get; set; }
+
+        /// <summary>
+        /// 瑙勬牸
+        /// </summary>
+        public string specification { get; set; }
+
+        /// <summary>
+        /// 淇濊川鏈�
+        /// </summary>
+        public string? shelfLife { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱涓存湡澶╂暟
+        /// </summary>
+        public string? remainingDays { get; set; }
+    }
+
+    public class SapCustomerVm
+    {
+        public SendCustomerVm data { get; set; }
+    }
+    /// <summary>
+    /// 涓嬪彂鍚屾瀹㈡埛渚涘簲鍟嗘暟鎹�
+    /// </summary>
+    public class SendCustomerVm
+    {
+        /// <summary>
+        /// 缂栧彿
+        /// </summary>
+        public long customerNo { get; set; }
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+        public string customerName { get; set; }
+        /// <summary>
+        /// 绫诲瀷 0锛氬鎴枫��1锛氫緵搴斿晢銆�
+        /// </summary>
+        public string CustomerType { get; set; }
+        /// <summary>
+        /// 鍦板潃
+        /// </summary>
+        public string streetAddress { get; set; }
+        /// <summary>
+        /// 鑱旂郴浜�
+        /// </summary>
+        public string contact { get; set; }
+        /// <summary>
+        /// 鑱旂郴浜虹數璇�
+        /// </summary>
+        public string contactMobile { get; set; }
+    }
+    #endregion
 }
diff --git a/Wms/WMS.BLL/SysServer/CustomerServer.cs b/Wms/WMS.BLL/SysServer/CustomerServer.cs
index 0d8783c..3ffd2fb 100644
--- a/Wms/WMS.BLL/SysServer/CustomerServer.cs
+++ b/Wms/WMS.BLL/SysServer/CustomerServer.cs
@@ -4,8 +4,10 @@
 using System.Linq.Expressions;
 using System.Text;
 using System.Threading.Tasks;
+using Model.InterFaceModel;
 using Model.ModelDto.SysDto;
 using SqlSugar;
+using WMS.Entity.Context;
 using WMS.Entity.LogEntity;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ILogServer;
@@ -16,6 +18,7 @@
 {
     public class CustomerServer : ICustomerServer
     {
+        private static readonly SqlSugarScope Db = DataContext.Db;
         public ICustomerRepository CustomerRst { get; set; }
         private readonly IOperationSysServer _operation; //鎿嶄綔鏃ュ織
         public CustomerServer(ICustomerRepository customerRst, IOperationSysServer operation)
@@ -23,7 +26,7 @@
             CustomerRst = customerRst;
             _operation = operation;
         }
-
+        
 
         public async Task<List<CustomerDto>> GetCustomerList(string no, string name, int? type, string linkMan, string phone, int page, int limit, RefAsync<int> count)
         {
@@ -172,5 +175,41 @@
             var num = await CustomerRst.RemoveAllAsync(list, userId);
             return num > 0;
         }
+
+        /// <summary>
+        /// SAP鏂板瀹㈡埛渚涘簲鍟嗘暟鎹�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public async Task<string> AddCustomerSap(SendCustomerVm model)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁閲嶅
+                var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.customerNo.ToString());
+                if (customer != null)
+                {
+                    throw new Exception("鐩稿悓缂栫爜鐨勫鎴峰凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+                }
+                var addCustomer = new SysCustomer()
+                {
+                    CustomerNo = model.customerNo.ToString(),
+                    CustomerName = model.customerName,
+                    Type = int.Parse(model.CustomerType),
+                    Address = model.streetAddress,
+                    LinkMan = model.contact,
+                    Phone = model.contactMobile,
+
+                    CreateUser = 0,
+                };
+                await Db.Insertable(addCustomer).ExecuteCommandAsync();
+                return "0";
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
     }
 }
diff --git a/Wms/WMS.BLL/SysServer/MaterialsServer.cs b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
index 9ba5182..d23f17a 100644
--- a/Wms/WMS.BLL/SysServer/MaterialsServer.cs
+++ b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
@@ -7,6 +7,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using AutoMapper;
+using Model.InterFaceModel;
 using Model.ModelDto.SysDto;
 using SqlSugar;
 using Utility;
@@ -202,7 +203,7 @@
         #endregion
 
         #region erp
-
+        
         /// <summary>
         /// 鑾峰彇erp鏁版嵁
         /// </summary>
@@ -297,5 +298,92 @@
 
         #endregion
 
+        #region sap
+
+        /// <summary>
+        /// SAP鏂板鐗╂枡涓绘暟鎹暟鎹�
+        /// </summary>
+        /// <param name="model">erp瀹炰綋</param>
+        /// <returns></returns>
+        /// <exception cref="Exception">鎹曡幏寮傚父</exception>
+        public async Task<string> AddSkuSap(SendSkuInfoVm model)
+        {
+            //鎹曡幏寮傚父
+            try
+            {
+                if (string.IsNullOrWhiteSpace(model.skuNo.ToString()) || string.IsNullOrWhiteSpace(model.skuName) || string.IsNullOrWhiteSpace(model.categoryNo))
+                {
+                    throw new Exception("鍙傛暟閿欒");
+                }
+                //鍒ゆ柇鏄惁鍞竴
+                var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == model.skuNo.ToString());
+                if (sku != null)
+                {
+                    throw new Exception("褰撳墠鐗╂枡宸插瓨鍦�");
+                }
+                //寮�鍚簨鍔�
+                Db.BeginTran();
+
+                var category = Db.Queryable<SysMaterialCategory>().First(w => w.IsDel == "0" && w.CategoryNo == model.categoryNo);
+                if (category == null)
+                {
+                    category = new SysMaterialCategory()
+                    {
+                        CategoryNo = model.categoryNo,
+                        CategoryName = model.categoryName,
+                        CreateUser = 1
+                    };
+                    //娣诲姞鐗╂枡绫诲埆淇℃伅
+                    Db.Insertable(category).ExecuteCommand();
+                }
+                var pack = new SysPackag()
+                {
+                    PackagNo = model.skuNo.ToString(),
+                    PackagName = model.skuName,
+                    L1Num = 1,
+                    L1Name = model.unit,
+                    L2Num = Convert.ToInt32(model.packageQty),
+                    L2Name = model.packageName
+                };
+                //娣诲姞鍖呰淇℃伅
+                Db.Insertable(pack).ExecuteCommand();
+
+                var addSku = new SysMaterials()
+                {
+                    SkuNo = model.skuNo.ToString(),
+                    SkuName = model.skuName,
+                    Standard = model.specification,
+                    CategoryNo = category.CategoryNo,
+                    AuditStatusNo = "9", //model.AuditStatusNo
+                    Type = "0",
+                    IsControlled = "0",//鏄惁璇烽獙锛�0锛氭槸 1锛氬惁
+                    IsInspect = model.consume.ToString() == "0" ? "1" : "0",
+                    IsPasteCode = "1",
+                    Origin = "SAP",
+                    UnitNo = model.unit,
+                    PackagNo = pack.PackagNo,
+                    Environment = null,
+                    Weight = null,
+                    Warranty = Convert.ToInt32(model.shelfLife.Trim()),
+                    UnpackWarranty = null,
+                    Price = null,
+                    AdventTime = Convert.ToInt32(model.remainingDays)
+                };
+                await Db.Insertable(addSku).ExecuteCommandAsync();
+
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
+
+                return "0";
+            }
+            catch (Exception ex)
+            {
+                //鍥炴粴浜嬪姟
+                Db.RollbackTran();
+                //鎶涘嚭寮傚父
+                throw new Exception("鏂板erp鏁版嵁寮傚父", ex);
+            }
+        }
+        #endregion
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs b/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
index 1c818ba..aafdcf8 100644
--- a/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/ICustomerServer.cs
@@ -1,4 +1,5 @@
-锘縰sing Model.ModelDto.SysDto;
+锘縰sing Model.InterFaceModel;
+using Model.ModelDto.SysDto;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -79,5 +80,13 @@
         /// <param name="userId"></param>
         /// <returns></returns>
         Task<bool> DelsCustomer(List<int> ids, int userId);
+
+        /// <summary>
+        /// SAP鏂板瀹㈡埛渚涘簲鍟嗘暟鎹�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        Task<string> AddCustomerSap(SendCustomerVm model);
     }
 }
diff --git a/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs b/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
index cbd5996..ee56bcb 100644
--- a/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
+++ b/Wms/WMS.IBLL/ISysServer/IMaterialsServer.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Threading.Tasks;
+using Model.InterFaceModel;
 using Model.ModelDto.SysDto;
 using WMS.Entity.SysEntity;
 
@@ -123,5 +124,16 @@
         Task<int> EditERP(ERPTestDto erpdto);
 
         #endregion
+
+        #region sap
+
+        /// <summary>
+        /// SAP鏂板鐗╂枡涓绘暟鎹暟鎹�
+        /// </summary>
+        /// <param name="model">erp瀹炰綋</param>
+        /// <returns></returns>
+        /// <exception cref="Exception">鎹曡幏寮傚父</exception>
+        Task<string> AddSkuSap(SendSkuInfoVm model);
+        #endregion
     }
 }
diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs
index ffa1384..3f77a43 100644
--- a/Wms/Wms/Controllers/UpApiController.cs
+++ b/Wms/Wms/Controllers/UpApiController.cs
@@ -28,6 +28,7 @@
 using WMS.IBLL;
 using ZXing.QrCode.Internal;
 using System.Xml.Linq;
+using WMS.IBLL.ISysServer;
 
 namespace Wms.Controllers
 {
@@ -45,11 +46,14 @@
         private readonly IStockCheckServer _stockCheckSvc;//鐩樼偣鍗昐vc 
         private readonly IProcurePlanServer _procurePlanSvc;//閲囪喘鍗昐vs
         private readonly IPdaAsnServer _pdaAsnServer;// PDA
+        private readonly IMaterialsServer _materialSvc;//鐗╂枡Svc 
+        private readonly ICustomerServer _customerSvc;//瀹㈡埛Svc 
         private readonly IHttpServer _http;
+
 
         private string logStr = $@".\log\SAP璧嬬爜\Sap涓嬪彂鎶ユ枃" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
 
-        public UpApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IArrivalNoticeServer arrivalNoticeServer, IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc, IPdaAsnServer pdaAsnServer, IHttpServer http)
+        public UpApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IArrivalNoticeServer arrivalNoticeServer, IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc, IPdaAsnServer pdaAsnServer, IMaterialsServer materialSvc, ICustomerServer customerSvc, IHttpServer http)
         {
             _config = setting.Value;
             _exNoticeSvc = exNoticeSvc;
@@ -57,6 +61,8 @@
             _stockCheckSvc = stockCheckSvc;
             _procurePlanSvc = procurePlanSvc;
             _pdaAsnServer = pdaAsnServer;
+            _materialSvc = materialSvc;
+            _customerSvc = customerSvc;
             _http = http;
         }
         #endregion
@@ -69,11 +75,23 @@
         /// <returns></returns>
         [AllowAnonymous]
         [HttpPost]
-        public IActionResult CreateSku(object model)
+        public async Task<IActionResult> CreateSku(SapSkuInfoVm model)
         {
+            var logStr = $@".\log\SAP\鐗╂枡涓绘暟鎹笅鍙�" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             try
             {
-                LogFile.SaveLogToFile($"Sap鐗╂枡涓绘暟鎹細( {model} ),", logStr);
+                var jsonData = JsonConvert.SerializeObject(model);
+                LogFile.SaveLogToFile($"Sap鐗╂枡涓绘暟鎹細( {jsonData} ),", logStr);;
+
+                var str = await _materialSvc.AddSkuSap(model.data);
+
+                var list = new { Success = 0, Message = "涓嬪彂鎴愬姛" };
+                if (!str.Contains("0"))
+                {
+                    list = new { Success = -1, Message = str };
+                }
+
+                LogFile.SaveLogToFile($"SAP鐗╂枡涓绘暟鎹笅鍙戯細( {JsonConvert.SerializeObject(list)} ),", logStr);
                 return Ok(new { result = true, code = "1" ,message = "success" });
             }
             catch (Exception e)
@@ -90,12 +108,24 @@
         /// <returns></returns>
         [AllowAnonymous]
         [HttpPost]
-        public IActionResult CreateCustomer(object model)
+        public async Task<IActionResult> CreateCustomer(SapCustomerVm model)
         {
-             
+            var logStr = $@".\log\SAP\瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
             try
             {
-                LogFile.SaveLogToFile($"Sap瀹㈡埛淇℃伅涓绘暟鎹細( {model} ),", logStr);
+                var jsonData = JsonConvert.SerializeObject(model);
+                LogFile.SaveLogToFile($"Sap瀹㈡埛淇℃伅涓绘暟鎹細( {jsonData} ),", logStr);
+
+                var str = await _customerSvc.AddCustomerSap(model.data);
+
+                var list = new { Success = 0, Message = "涓嬪彂鎴愬姛" };
+                if (!str.Contains("0"))
+                {
+                    list = new { Success = -1, Message = str };
+                }
+
+                LogFile.SaveLogToFile($"瀹㈡埛渚涘簲鍟嗕富鏁版嵁鍚屾锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
+
                 return Ok(new { result = true, code = "1", message = "success" });
             }
             catch (Exception e)

--
Gitblit v1.8.0