From 40df5d91f800bb8b7be2638c13b4f9292d461221 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期一, 10 三月 2025 18:13:50 +0800 Subject: [PATCH] 增加送货单清点事务 --- Tiger.Business.WMS/ERP/WMS_U9C.cs | 157 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 144 insertions(+), 13 deletions(-) diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.cs b/Tiger.Business.WMS/ERP/WMS_U9C.cs index fe07018..2f76746 100644 --- a/Tiger.Business.WMS/ERP/WMS_U9C.cs +++ b/Tiger.Business.WMS/ERP/WMS_U9C.cs @@ -33,18 +33,33 @@ { 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"; 娴嬭瘯 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"; 娴嬭瘯 + public static string SubmitLineUrl + { get; set; } = 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; } = ApiConfig.IsTestServer ? Cache.SysParam["ApproveLineUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["ApproveLineUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/Receivement/ApproveLine; 娴嬭瘯 + public static string CreateProdMaterialReqUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateProdMaterialReqUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateProdMaterialReqUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/Create + public static string CreateProdReturnOrderUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/IssueDoc/CreateRecedeIssueDocNew + public static string CreateOutProdMaterialReqUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdMaterialReqUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdMaterialReqUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/Create + public static string CreateOutProdReturnOrderUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateOutProdReturnOrderUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateOutProdReturnOrderUrl", "U9CUrl"].PARAM_VALUE; //http://172.16.80.20/u9c/webapi/PMIssueDoc/CreateRecedeIssueDoc + public static string CreateTransferInUrl + { get; set; } = 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}"); @@ -81,6 +96,7 @@ { if (result.Success && result.Data[0].IsSucess) { + action.Data = result.Data; Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); } else @@ -99,12 +115,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 +141,9 @@ rcvDTO = new() { BusinessDate = DateTime.Now, - Supplier = new() { m_code = "C.9999" }, + Supplier = new() { m_code = input.Supplier }, RcvDocType = new() { m_code = "RCV01" }, - RcvLines= new() { - - }, - IsRcvByChangeable =true, - IsPriceListChangeable = true, - IsConfirmTermChangeable = true, - IsPaymentTermChangeable = true, - IsLineApprove= true, + RcvLines= input.RcvLines, }, OtherID = "WMS" }; @@ -138,6 +153,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 +171,120 @@ 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) { + 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 response = await HttpHelper.PostAsync(SubmitLineUrl, JsonConvert.SerializeObject(input.param), 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(input.param)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {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={input.userId}{secret}"); + if (u9CLoginResult.Success) + { + input.token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); + } + } + var response = await HttpHelper.PostAsync(ApproveLineUrl, JsonConvert.SerializeObject(input.param), 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(input.param)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {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; + } } } -- Gitblit v1.9.3