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 |   75 +++++++++++++++----------------------
 1 files changed, 30 insertions(+), 45 deletions(-)

diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.cs b/Tiger.Business.WMS/ERP/WMS_U9C.cs
index 365856b..2f76746 100644
--- a/Tiger.Business.WMS/ERP/WMS_U9C.cs
+++ b/Tiger.Business.WMS/ERP/WMS_U9C.cs
@@ -37,19 +37,29 @@
         { 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}");
@@ -86,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
@@ -109,12 +120,13 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<ApiAction<CreateReceivementInput>> CreateReceivement(CreateReceivementInput input)
+        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}");
@@ -129,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"
                 };
@@ -148,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
@@ -171,36 +177,11 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<ApiAction<SubmitLineInput>> ReceivementApproveLine(SubmitLineInput input) {
+        public async Task<ApiAction<List<U9CReturnData2>>> ReceivementApproveLine(SubmitLineInput input) {
             Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屽鏍告�诲叆鍙f帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶
-            var action = new ApiAction<SubmitLineInput>();
+            var action = new ApiAction<List<U9CReturnData2>>();
             try
             {
-                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)
-                    {
-                        Logger.Interface.Info($"鏀惰揣鍗�-琛屽鏍告�诲叆鍙f帴鍙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($"鏀惰揣鍗�-琛屽鏍告�诲叆鍙f帴鍙eけ璐�:{result.Data[0].ErrorMsg}");
-                    }
-                }
-
                 action = await SubmitLine(input);
                 if (action.IsSuccessed) {
                     action = await ApproveLine(input);
@@ -219,12 +200,13 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        private async Task<ApiAction<SubmitLineInput>> SubmitLine(SubmitLineInput input)
+        private async Task<ApiAction<List<U9CReturnData2>>> SubmitLine(SubmitLineInput input)
         {
             Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屾彁浜ゆ帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶
-            var action = new ApiAction<SubmitLineInput>();
+            var action = new ApiAction<List<U9CReturnData2>>();
             try
             {
+                //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken
                 if (input.IsLogin)
                 {
                     var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
@@ -240,6 +222,7 @@
                 {
                     if (result.Success && result.Data[0].IsSucess)
                     {
+                        action.Data = result.Data;
                         Logger.Interface.Info($"鏀惰揣鍗�-琛屾彁浜ゆ帴鍙f彁浜son: {JsonConvert.SerializeObject(input.param)}锛岃繑鍥濲son: {response.Message}");
                     }
                     else
@@ -263,12 +246,13 @@
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        private async Task<ApiAction<SubmitLineInput>> ApproveLine(SubmitLineInput input)
+        private async Task<ApiAction<List<U9CReturnData2>>> ApproveLine(SubmitLineInput input)
         {
             Logger.Interface.Info($"/**\r\n *杩涘叆鏀惰揣鍗�-琛屽鏍告帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶
-            var action = new ApiAction<SubmitLineInput>();
+            var action = new ApiAction<List<U9CReturnData2>>();
             try
             {
+                //濡傛灉宸茬粡鐧诲綍鍒欎笉闇�瑕佸啀娆$櫥褰曪紝鐩存帴浣跨敤浼犲叆鐨則oken
                 if (input.IsLogin)
                 {
                     var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}");
@@ -284,6 +268,7 @@
                 {
                     if (result.Success && result.Data[0].IsSucess)
                     {
+                        action.Data = result.Data;
                         Logger.Interface.Info($"鏀惰揣鍗�-琛屽鏍告帴鍙f彁浜son: {JsonConvert.SerializeObject(input.param)}锛岃繑鍥濲son: {response.Message}");
                     }
                     else

--
Gitblit v1.9.3