From 7f75d4c1a1a3bd348042eb0fec8480f5df9cd1d2 Mon Sep 17 00:00:00 2001 From: YangYuGang <1378265336@qq.com> Date: 星期一, 07 四月 2025 10:38:27 +0800 Subject: [PATCH] 同步调拨单、委外发料、物品转换单据接口 --- Tiger.Business.WMS/ERP/WMS_U9C.cs | 219 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 169 insertions(+), 50 deletions(-) diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.cs b/Tiger.Business.WMS/ERP/WMS_U9C.cs index fe07018..5cbd7b3 100644 --- a/Tiger.Business.WMS/ERP/WMS_U9C.cs +++ b/Tiger.Business.WMS/ERP/WMS_U9C.cs @@ -1,5 +1,4 @@ -锘縰sing Tiger.Model; -using SqlSugar; +锘縰sing SqlSugar; using System; using System.Collections.Generic; using System.Linq.Expressions; @@ -10,17 +9,7 @@ using System.Linq; using Newtonsoft.Json; using Tiger.IBusiness; -using Microsoft.AspNetCore.Http; -using Tiger.Model.Minsun; -using Org.BouncyCastle.Asn1.Tsp; -using Tiger.Model.Entitys.MES.Position; -using Apache.NMS.ActiveMQ.Commands; -using System.Security.Cryptography; -using System.Diagnostics; using Tiger.Model.Entitys.MES.U9C; -using Newtonsoft.Json.Linq; -using System.Security.Policy; -using NetTaste; namespace Tiger.Business.WMS { @@ -29,22 +18,47 @@ public static string U9CAuthLoginUrl { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; 娴嬭瘯 //public static string U9CAuthLoginUrl { get; set; } = Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20"; + /// <summary> + /// 瀹℃牳浜� + /// </summary> + public static string Reviewer = Cache.SysParam["Reviewer", "U9CUrl"].PARAM_VALUE; public static string CreateRcvBySrcASNUrl - { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateRcvBySrcASNUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateRcvBySrcASNUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; 娴嬭瘯 + { get; set; } = "http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; //ApiConfig.IsTestServer ? Cache.SysParam["CreateRcvBySrcASNUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateRcvBySrcASNUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; 娴嬭瘯 public static string CreateReceivementUrl - { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateReceivementUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateReceivementUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateReceivement"; 娴嬭瘯 + { get; set; } = "http://172.16.80.20/U9C/webapi/Receivement/CreateReceivement"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateReceivementUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateReceivementUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateReceivement"; 娴嬭瘯 + public static string SubmitLineUrl + { get; set; } = "http://172.16.80.20/u9c/webapi/Receivement/SubmitLine"; // ApiConfig.IsTestServer ? Cache.SysParam["SubmitLineUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["SubmitLineUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/Receivement/SubmitLine; 娴嬭瘯 + public static string ApproveLineUrl + { get; set; } = "http://172.16.80.20/u9c/webapi/Receivement/ApproveLine"; // ApiConfig.IsTestServer ? Cache.SysParam["ApproveLineUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["ApproveLineUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/Receivement/ApproveLine; 娴嬭瘯 + /// <summary> + /// 鍒涘缓鐢熶骇閫�鏂欏崟-鎸夎閫�鏂� + /// </summary> + public static string CreateProdReturnOrderNewUrl + { get; set; } = "http://172.16.80.20/u9c/webapi/IssueDoc/CreateRecedeIssueDocNew"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/CreateRecedeIssueDocNew + /// <summary> + /// 鍒涘缓濮斿鐢熶骇閫�鏂欏崟 + /// </summary> + public static string CreateOutProdReturnOrderUrl + { get; set; } = "http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc + /// <summary> + /// 鍒涘缓璋冨叆鍗� + /// </summary> + public static string CreateTransferInUrl + { get; set; } = "http://172.16.80.20/u9c/webapi/TransferIn/Create"; // ApiConfig.IsTestServer ? Cache.SysParam["CreateTransferInUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateTransferInUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/TransferIn/Create + /// <summary> /// 鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙� /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<ApiAction<CreateRcvBySrcASNInput>> CreateRcvBySrcASN(CreateRcvBySrcASNInput input) + public async Task<ApiAction<List<U9CReturnData2>>> CreateRcvBySrcASN(CreateRcvBySrcASNInput input) { Logger.Interface.Info($"/**\r\n *杩涘叆鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 - var action = new ApiAction<CreateRcvBySrcASNInput>(); + var action = new ApiAction<List<U9CReturnData2>>(); try { + //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken if (input.IsLogin) { var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); @@ -54,34 +68,18 @@ Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); } } - List<CreateRcvBySrcASNParam> param = new() { - new() { - aSNToRcvTransDTOs = new(){ - new(){ - TransQty=new() { - m_amount1= input.CurRevQty, - m_uOM1 = new() { - UOMMain = "1002212260110007", - UOMMain_SKey=new(){ - ID="1002212260110007", - }, - UOMSub_SKey = new(){ - ID="1002212260110007", - } - }, - }, - ASNLineKey=input.ASNLineKey, - } - } - } - }; + List<CreateRcvBySrcASNParam> param = new(); + param.Add(input.CreateRcvBySrcASNParam); var response = await HttpHelper.PostAsync(CreateRcvBySrcASNUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", input.token } }); + //var response = new ApiAction("{\"ResCode\":0,\"Success\":true,\"ResMsg\":null,\"Data\":[{\"IsSucess\":true,\"U9CVersion\":null,\"OtherID\":\"WMS\",\"ID\":1002503210000100,\"Code\":\"YDRC250300003\",\"ErrorMsg\":null}]}"); + var result = JsonConvert.DeserializeObject<U9CResult2>(response.Message); if (result != null) { if (result.Success && result.Data[0].IsSucess) { - Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); + action.Data = result.Data; + Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); } else { @@ -99,12 +97,18 @@ return action; } - public async Task<ApiAction<CreateReceivementInput>> CreateReceivement(CreateReceivementInput input) + /// <summary> + /// 鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction<List<U9CReturnData2>>> CreateReceivement(CreateReceivementInput input) { Logger.Interface.Info($"/**\r\n *杩涘叆鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 - var action = new ApiAction<CreateReceivementInput>(); + var action = new ApiAction<List<U9CReturnData2>>(); try { + //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken if (input.IsLogin) { var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); @@ -119,16 +123,9 @@ rcvDTO = new() { BusinessDate = DateTime.Now, - Supplier = new() { m_code = "C.9999" }, - RcvDocType = new() { m_code = "RCV01" }, - RcvLines= new() { - - }, - IsRcvByChangeable =true, - IsPriceListChangeable = true, - IsConfirmTermChangeable = true, - IsPaymentTermChangeable = true, - IsLineApprove= true, + Supplier = new() { m_code = input.Supplier }, + RcvDocType = new() { m_code = input.RcvDocType }, + RcvLines= input.RcvLines, }, OtherID = "WMS" }; @@ -138,6 +135,7 @@ { if (result.Success && result.Data[0].IsSucess) { + action.Data = result.Data; Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); } else @@ -155,5 +153,126 @@ Logger.Interface.Info($"/* 鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 return action; } + + /// <summary> + /// 鏀惰揣鍗�-琛屽鏍告�诲叆鍙f帴鍙� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction<List<U9CReturnData2>>> ReceivementApproveLine(SubmitLineInput input) { + Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屽鏍告�诲叆鍙f帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 + var action = new ApiAction<List<U9CReturnData2>>(); + try + { + //action = await SubmitLine(input); + //if (action.IsSuccessed) { + // input.IsLogin = false; + // action = await ApproveLine(input); + //} + action = await ApproveLine(input); + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鏀惰揣鍗�-琛屽鏍告�诲叆鍙e紓甯�"); + } + Logger.Interface.Info($"/* 鏀惰揣鍗�-琛屽鏍告�绘柟娉曟帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } + + /// <summary> + /// 鏀惰揣鍗�-琛屾彁浜� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + private async Task<ApiAction<List<U9CReturnData2>>> SubmitLine(SubmitLineInput input) + { + Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屾彁浜ゆ帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 + var action = new ApiAction<List<U9CReturnData2>>(); + try + { + //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken + if (input.IsLogin) + { + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); + if (u9CLoginResult.Success) + { + input.token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); + } + } + var _params = new List<SubmitLineInputParam>(); + _params.Add(input.param); + var response = await HttpHelper.PostAsync(SubmitLineUrl, JsonConvert.SerializeObject(_params), new Dictionary<string, string>() { { "token", input.token } }); + var result = JsonConvert.DeserializeObject<U9CResult2>(response.Message); + if (result != null) + { + if (result.Success && result.Data[0].IsSucess) + { + action.Data = result.Data; + Logger.Interface.Info($"鏀惰揣鍗�-琛屾彁浜ゆ帴鍙f彁浜son: {JsonConvert.SerializeObject(_params)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"鏀惰揣鍗�-琛屾彁浜ゆ帴鍙eけ璐�: {result.Data[0].ErrorMsg}"); + Logger.Interface.Info($"鏀惰揣鍗�-琛屾彁浜ゆ帴鍙eけ璐�:{result.Data[0].ErrorMsg}"); + } + } + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鏀惰揣鍗�-琛屾彁浜ゅ紓甯�"); + } + Logger.Interface.Info($"/* 鏀惰揣鍗�-琛屾彁浜ゆ帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } + + /// <summary> + /// 鏀惰揣鍗�-琛屽鏍� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + private async Task<ApiAction<List<U9CReturnData2>>> ApproveLine(SubmitLineInput input) + { + Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屽鏍告帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 + var action = new ApiAction<List<U9CReturnData2>>(); + try + { + //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken + if (input.IsLogin) + { + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={Reviewer}{secret}"); + if (u9CLoginResult.Success) + { + input.token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); + } + } + var _params = new List<SubmitLineInputParam>(); + _params.Add(input.param); + var response = await HttpHelper.PostAsync(ApproveLineUrl, JsonConvert.SerializeObject(_params), new Dictionary<string, string>() { { "token", input.token } }); + var result = JsonConvert.DeserializeObject<U9CResult2>(response.Message); + if (result != null) + { + if (result.Success && result.Data[0].IsSucess) + { + action.Data = result.Data; + Logger.Interface.Info($"鏀惰揣鍗�-琛屽鏍告帴鍙f彁浜son: {JsonConvert.SerializeObject(_params)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"鏀惰揣鍗� - 琛屽鏍告帴鍙eけ璐�:{result.Data[0].ErrorMsg}"); + Logger.Interface.Info($"鏀惰揣鍗�-琛屽鏍告帴鍙f彁浜son: {JsonConvert.SerializeObject(_params)}锛屽け璐�:{result.Data[0].ErrorMsg}"); + } + } + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鏀惰揣鍗�-琛屽鏍稿紓甯�"); + } + Logger.Interface.Info($"/* 鏀惰揣鍗�-琛屽鏍告帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } } } -- Gitblit v1.9.3