From 00aaf49a223be04fc58f6f7c09d95ce4b22ef087 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期五, 11 七月 2025 17:06:18 +0800
Subject: [PATCH] 修复盘点计划单、盘点单的状态更改逻辑

---
 api/ErpController.cs |  124 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 119 insertions(+), 5 deletions(-)

diff --git a/api/ErpController.cs b/api/ErpController.cs
index 191162c..a9d9dbb 100644
--- a/api/ErpController.cs
+++ b/api/ErpController.cs
@@ -1,6 +1,13 @@
-锘縰sing System.Web.Http;
+锘縰sing System.Linq;
+using System.Net.Http;
+using System.Net;
+using System.Text;
+using System.Web.Http;
+
+using Newtonsoft.Json;
 
 using static HH.WCS.Mobox3.AnGang.api.OtherModel;
+using System.Threading.Tasks;
 
 namespace HH.WCS.Mobox3.AnGang.api {
     /// <summary>
@@ -15,8 +22,17 @@
         /// <returns></returns>
         [HttpPost]
         [Route("InboundDataSync")]
-        public static ErpResult InboundDataSync(InboundDataSyncInfo model) {
-            return ApiHelper.InboundDataSync(model);
+        public IHttpActionResult InboundDataSync(InboundDataSyncInfo model) {
+            LogHelper.Info("瑙﹀彂API锛氬叆搴撴暟鎹悓姝� + JsonConvert.SerializeObject(model), "API");
+
+            //var headers = Request.Headers;
+            //var checkRes = CheckHeaders(headers);
+            //if (!checkRes.isSuccess) {
+            //    return CreateErrorResponse(checkRes.code, checkRes.message);
+            //}
+
+            var res = ApiHelper.InboundDataSync(model);
+            return CreateSuccessResponse(res);
         }
 
         /// <summary>
@@ -26,8 +42,106 @@
         /// <returns></returns>
         [HttpPost]
         [Route("OutboundDataSync")]
-        public static ErpResult OutboundDataSync(OutboundDataSyncInfo model) {
-            return ApiHelper.OutboundDataSync(model);
+        public IHttpActionResult OutboundDataSync(OutboundDataSyncInfo model) {
+            LogHelper.Info("瑙﹀彂API锛氬嚭搴撳彂鏂欏悓姝� + JsonConvert.SerializeObject(model), "API");
+
+            //var headers = Request.Headers;
+            //var checkRes = CheckHeaders(headers);
+            //if (!checkRes.isSuccess) {
+            //    return CreateErrorResponse(checkRes.code, checkRes.message);
+            //}
+            
+            var res = ApiHelper.OutboundDataSync(model);
+            return CreateSuccessResponse(res);
         }
+
+        private CheckHeadersResult CheckHeaders(System.Net.Http.Headers.HttpRequestHeaders headers) {
+            // 蹇呴』瀛楁楠岃瘉
+            if (!headers.Contains("sourceAppCode") || !headers.Contains("serviceId") || !headers.Contains("msgSendTime")) {
+                return CreateCheckHeadersResult(false, "2003", "缂哄皯蹇呰璇锋眰澶村弬鏁�);
+            }
+
+            var headerModel = new {
+                SourceAppCode = headers.GetValues("sourceAppCode").First(),
+                Password = headers.Contains("password") ? headers.GetValues("password").First() : null,
+                ServiceId = headers.GetValues("serviceId").First(),
+                MsgToken = headers.Contains("msgToken") ? headers.GetValues("msgToken").First() : null,
+                MsgSendTime = headers.GetValues("msgSendTime").First()
+            };
+
+            // 楠岃瘉Header
+            var validationResult = ValidateHeaders(headerModel);
+            if (validationResult != null) {
+                return validationResult;
+            }
+
+            // 楠岃瘉Body
+            if (Request.Content.Headers.ContentLength > 2 * 1024 * 1024) {
+                return CreateCheckHeadersResult(false, "2102", "娑堟伅鍐呭杩囬暱锛岃秴杩�M");
+            }
+
+            return CreateCheckHeadersResult(true);
+        }
+
+        private IHttpActionResult CreateSuccessResponse(object data) {
+            return ResponseMessage(new HttpResponseMessage(HttpStatusCode.OK) {
+                Headers = { { "returnCode", "0" } },
+                Content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json")
+            });
+        }
+
+        private IHttpActionResult CreateErrorResponse(string code, string message) {
+            return ResponseMessage(new HttpResponseMessage(HttpStatusCode.OK) {
+                Headers = { { "returnCode", code } },
+                Content = new StringContent(message)
+            });
+        }
+
+        private CheckHeadersResult ValidateHeaders(dynamic headers) {
+            // 瀹炵幇鎵�湁Header楠岃瘉閫昏緫
+            if (!IsRegisteredApp(headers.SourceAppCode, headers.Password)) {
+                return CreateCheckHeadersResult(false, "2201", "婧愯皟鐢ㄧ郴缁熸湭娉ㄥ唽");
+            }
+
+            if (!IsValidService(headers.ServiceId)) {
+                return CreateCheckHeadersResult(false, "2202", "浠g悊鏈嶅姟鏈敞鍐�);
+            }
+
+            if (!IsValidDateTime(headers.MsgSendTime)) {
+                return CreateCheckHeadersResult(false, "2101", "鏃堕棿鏍煎紡鏍¢獙澶辫触");
+            }
+
+            if (!string.IsNullOrEmpty(headers.MsgToken) && headers.MsgToken.Length > 32) {
+                return CreateCheckHeadersResult(false, "2104", "娑堟伅浠ょ墝杩囬暱锛岃秴杩�2浣�);
+            }
+
+            return null;
+        }
+
+        private bool IsRegisteredApp(string appId, string password) {
+            return true;
+        }
+
+        private bool IsValidService(string serviceId) {
+            return true;
+        }
+
+        private bool IsValidDateTime(string dataTime) {
+            return true;
+        }
+
+        private CheckHeadersResult CreateCheckHeadersResult(bool isSuccess, string code = "", string message = "") {
+            return new CheckHeadersResult {
+                code = code,
+                message = message,
+                isSuccess = isSuccess
+            };
+        }
+    }
+
+    public class CheckHeadersResult {
+        public bool isSuccess { get; set; }
+        public string code { get; set; }
+        public string message { get; set; }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1