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