From bb66bf9372783cfb1af35a5384fdc69cc9c56a9f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 10 六月 2025 23:14:56 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs |  263 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 245 insertions(+), 18 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
index fef6edc..f279c45 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
@@ -1,10 +1,15 @@
-锘縰sing System;
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Serialization;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.APIEnum;
 using WIDESEA_Core.Helper;
 using WIDESEA_External.Model;
+using WIDESEA_IBasicRepository;
+using WIDESEA_Model.Models;
 
 namespace WIDESEA_External.ERPService
 {
@@ -13,8 +18,16 @@
     /// </summary>
     public class InvokeERPService : IInvokeERPService
     {
-        string serviceIp = "";
-
+        private readonly IApiInfoRepository _apiInfoRepository;
+        public InvokeERPService(IApiInfoRepository apiInfoRepository)
+        {
+            _apiInfoRepository = apiInfoRepository;
+        }
+        // 鍒涘缓涓�涓娇鐢ㄥ皬椹煎嘲鍛藉悕娉曠殑搴忓垪鍖栬缃�
+        JsonSerializerSettings settings = new JsonSerializerSettings
+        {
+            ContractResolver = new CamelCasePropertyNamesContractResolver()
+        };
         /// <summary>
         /// ERP鏀惰揣鍗曟帴鍙h皟鐢�
         /// </summary>
@@ -22,17 +35,18 @@
         /// <returns></returns>
         public string InvokeMatReceiveApi(ERPReceiveModel receiveModel)
         {
-            string serviceAddress = "";
-
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
             ERPBaseModel<ERPReceiveModel> model = new ERPBaseModel<ERPReceiveModel>()
             {
                 Data = receiveModel,
-                Desc = "鏀惰揣鍗�",
+                Desc = "WMS鏀惰揣鍗曟帹閫�",
                 Type = "toTCWMSReceive",
-                SecurityCode = ""
+                SecurityCode = "TeChuang"
             };
-
-            string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize());
+            
+            string request = JsonConvert.SerializeObject(model, settings);
+            
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
             return response;
         }
 
@@ -43,16 +57,17 @@
         /// <returns></returns>
         public string InvokeCheckOrderApi(ERPCheckModel checkModel)
         {
-            string serviceAddress = "";
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
             ERPBaseModel<ERPCheckModel> model = new ERPBaseModel<ERPCheckModel>()
             {
                 Data = checkModel,
-                Desc = "鏀惰揣鍗�",
+                Desc = "鐗╂枡IQC妫�楠屽崟",
                 Type = "toTCWMSIQCTest",
-                SecurityCode = ""
+                SecurityCode = "TeChuang"
             };
+            string request = JsonConvert.SerializeObject(model, settings);
 
-            string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize());
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
             return response;
         }
 
@@ -63,17 +78,229 @@
         /// <returns></returns>
         public string InvokeInboundOrderApi(ERPInboundModel inboundModel)
         {
-            string serviceAddress = "";
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
             ERPBaseModel<ERPInboundModel> model = new ERPBaseModel<ERPInboundModel>()
             {
                 Data = inboundModel,
-                Desc = "鏀惰揣鍗�",
+                Desc = "鐗╂枡鍏ュ簱鍗�",
                 Type = "toTCWMSMaterialWarehousing",
-                SecurityCode = ""
+                SecurityCode = "TeChuang"
             };
-
-            string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize());
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
             return response;
         }
+        /// <summary>
+        /// ERP棰嗘枡閫氱煡鍗曞嚭搴�
+        /// </summary>
+        public string InvokeOutStandardsApi(ERPIssueModel issueModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPIssueModel> model = new ERPBaseModel<ERPIssueModel>()
+            {
+                Data = issueModel,
+                Desc = "棰嗘枡鍑哄簱閫氱煡鍗�",
+                Type = "toStandardPickList",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP閫�鏂欎笂鎶ユ帴鍙h皟鐢�
+        /// </summary>
+        public string InvokeReturnApi(ERPReturnModel returnModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPReturnModel> model = new ERPBaseModel<ERPReturnModel>()
+            {
+                Data = returnModel,
+                Desc = "鏉愭枡閫�搴�",
+                Type = "importMaterialsIssueNoteWMS",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP鐩樿耽/浜忎笂鎶ユ帴鍙h皟鐢�
+        /// </summary>
+        public string InvokeTakeStockApi(ERPTakeStockModel takeModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPTakeStockModel> model = new ERPBaseModel<ERPTakeStockModel>()
+            {
+                Data = takeModel,
+                Desc = "鏉愭枡鐩樼偣",
+                Type = "toTCWMSMaterialCounting",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧鍑哄簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        public string InvokeProOutApi(ERPProOutOrderModel outOrderModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProOutOrderModel> model = new ERPBaseModel<ERPProOutOrderModel>()
+            {
+                Data = outOrderModel,
+                Desc = "鍑哄簱鎴愬搧閫氱煡",
+                Type = "toOrderAssignment",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧璁㈠崟瀹㈡埛鏌ヨ鎺ュ彛璋冪敤
+        /// </summary>
+        /// <param name="saleOrderNo"></param>
+        /// <returns></returns>
+        public string InvokeProSaleCustomer(string saleOrderNo)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpSaleCustomApi.ToString());
+            object saleObj = new { soNumber=saleOrderNo };
+            string request = JsonConvert.SerializeObject(saleObj, settings);
+            Dictionary<string,string> requestHeader =new Dictionary<string, string>
+            {
+                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
+            };
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request,headers:requestHeader);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧璁㈠崟鍑哄簱搴撳瓨鏌ヨ
+        /// </summary>
+        /// <returns></returns>
+        public string InvokeOutProErpSync(string outProOrderNo)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpOutProErpSyncApi.ToString());
+            object outNoObj = new { shippingNumber = outProOrderNo };
+            string request = JsonConvert.SerializeObject(outNoObj, settings);
+            Dictionary<string, string> requestHeader = new Dictionary<string, string>
+            {
+                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
+            };
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧鍏ュ簱浜у搧鍨嬪彿闈㈢Н鏌ヨ
+        /// </summary>
+        /// <returns></returns>
+        public string InvokeProInErpStatic(string partNum,string partNumWithRev)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeProInErpStatic.ToString());
+            object inObj = new { partNum, partNumWithRev };
+            string request = JsonConvert.SerializeObject(inObj, settings);
+            Dictionary<string, string> requestHeader = new Dictionary<string, string>
+            {
+                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
+            };
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧鍏ュ簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        public string InvokeProInApi(ERPProInboundModel inboundModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProInboundModel> model = new ERPBaseModel<ERPProInboundModel>()
+            {
+                Data = inboundModel,
+                Desc = "鎴愬搧鍏ュ簱",
+                Type = "toWOStockForm",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// 鎴愬搧浠撴鎶ュ簾鍑哄簱鎺ㄩ�丒RP
+        /// </summary>
+        /// <param name="checkModel"></param>
+        /// <returns></returns>
+        public string InvokeProCheckApi(ERPProductCheckModel checkModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProductCheckModel> model = new ERPBaseModel<ERPProductCheckModel>()
+            {
+                Data = checkModel,
+                Desc = "鎴愬搧妫�楠屽崟",
+                Type = "toFGIIqcChecked",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// 鎴愬搧瓒呭懆鏈熸姤搴熸帹閫丒RP
+        /// </summary>
+        /// <param name="sheetModel"></param>
+        /// <returns></returns>
+        public string InvokeProScrapSheetApi(ERPScrapSheetModel sheetModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPScrapSheetModel> model = new ERPBaseModel<ERPScrapSheetModel>()
+            {
+                Data = sheetModel,
+                Desc = "鎴愬搧鎶ュ簾鍗�",
+                Type = "toFGIScrapSheet",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// 鎴愬搧鐩樼偣鐩樿耽/鐩樹簭
+        /// </summary>
+        /// <param name="stockCheckModel"></param>
+        /// <returns></returns>
+        public string InvokeProStockCheckApi(ERPProStockCheckModel stockCheckModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProStockCheckModel> model = new ERPBaseModel<ERPProStockCheckModel>()
+            {
+                Data = stockCheckModel,
+                Desc = "鎴愬搧鐩樼偣鍗�",
+                Type = "toStockCheck",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP鐗╂枡鍑哄簱鎺ュ彛璋冪敤
+        /// </summary>
+        /// <param name="outboundModel"></param>
+        /// <returns></returns>
+        #region 寮冪敤
+        //public string InvokeOutboundOrderApi(ERPOutboundModel outboundModel)
+        //{
+        //    Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+        //    ERPBaseModel<ERPOutboundModel> model = new ERPBaseModel<ERPOutboundModel>()
+        //    {
+        //        Data = outboundModel,
+        //        Desc = "鏉愭枡鍑哄簱",
+        //        Type = "toBomMaterialOutTC",
+        //        SecurityCode = "TeChuang"
+        //    };
+        //    string request = JsonConvert.SerializeObject(model, settings);
+        //    string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+        //    return response;
+        //}
+        #endregion
     }
 }

--
Gitblit v1.9.3