From 266e4bf654c55ce2f7e9271048e4625f1b8b49f6 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期一, 29 十二月 2025 14:36:08 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs |   61 ++++++++++++++++--------------
 1 files changed, 33 insertions(+), 28 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
index 7341189..bc18e9c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs"
@@ -12,6 +12,7 @@
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.HttpContextUser;
+using WIDESEA_Core.LogHelper;
 using WIDESEA_Core.Util;
 using WIDESEA_DTO.Base;
 using WIDESEA_DTO.ReturnMES;
@@ -42,18 +43,20 @@
 
         public WebResponseContent OutboundFeedback(string orderNo)
         {
+            WebResponseContent webResponse = new WebResponseContent();
             try
             {
                 Dt_OutboundOrder outboundOrder = _outboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderNo).Includes(x => x.Details).First();
                 if (outboundOrder == null)
                 {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鍑哄簱鍗曚俊鎭�");
+                    return webResponse = WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鍑哄簱鍗曚俊鎭�");
                 }
 
-                Dt_MesReturnRecord returnRecord = BaseDal.QueryFirst(x => x.OrderNo == orderNo && x.OrderId == outboundOrder.Id && x.ReturnStatus == 2, new Dictionary<string, OrderByType> { { nameof(Dt_MesReturnRecord.Id), OrderByType.Desc } });
-                if (returnRecord != null)
+                List<Dt_MesReturnRecord> returnRecords = BaseDal.QueryData(x => x.OrderNo == orderNo && x.OrderId == outboundOrder.Id && x.ReturnStatus == 2);
+
+                foreach (var item in returnRecords)
                 {
-                    HttpResponseResult<MesResponseDTO> httpResponse = _httpClientHelper.Post<MesResponseDTO>(returnRecord.ApiUrl, returnRecord.RequestData);
+                    HttpResponseResult<MesResponseDTO> httpResponse = _httpClientHelper.Post<MesResponseDTO>(item.ApiUrl, item.RequestData);
 
                     string rMsg = "鎴愬姛";
                     bool success = httpResponse.IsSuccess && httpResponse.Data.Code == "200";
@@ -69,22 +72,16 @@
                         }
                     }
 
-                    returnRecord.ReturnCount += 1;
+                    item.ReturnCount += 1;
 
-                    returnRecord.ReturnStatus = success ? 1 : 2;
-                    returnRecord.HttpStatusCode = httpResponse.StatusCode.ObjToInt();
-                    returnRecord.LastReturnTime = DateTime.Now;
-                    returnRecord.ResponseData = httpResponse.Content;
-                    returnRecord.SuccessTime = success ? DateTime.Now : null;
-                    BaseDal.UpdateData(returnRecord);
-                    WebResponseContent content = new WebResponseContent();
-                    content.Status = success;
-                    content.Message = rMsg;
-                    return content;
+                    item.ReturnStatus = success ? 1 : 2;
+                    item.HttpStatusCode = httpResponse.StatusCode.ObjToInt();
+                    item.LastReturnTime = DateTime.Now;
+                    item.ResponseData = httpResponse.Content;
+                    item.SuccessTime = success ? DateTime.Now : null;
                 }
 
-
-
+                BaseDal.UpdateData(returnRecords);
 
                 HttpResponseResult<MesResponseDTO> httpResponseResult = new HttpResponseResult<MesResponseDTO>();
                 string reqCode = Guid.NewGuid().ToString();
@@ -96,12 +93,12 @@
                     MaterialOutboundReturnDTO? returnDTO = BuildOutboundFeedbackData(outboundOrder);
                     if (returnDTO == null)
                     {
-                        return WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
+                        return webResponse = WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
                     }
 
-                    if(returnDTO.Details.Count <= 0)
+                    if (returnDTO.Details.Count <= 0)
                     {
-                        return WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
+                        return webResponse = WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
                     }
 
                     string apiUrl = AppSettings.GetValue("MaterialOutboundFeedbackUrl");
@@ -121,18 +118,18 @@
                     Dt_AllocateOrder allocateOrder = _allocateRepository.QueryFirst(x => x.OrderNo == outboundOrder.OrderNo);
                     if (allocateOrder == null)
                     {
-                        return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璋冩嫧鍗�");
+                        return webResponse = WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璋冩嫧鍗�");
                     }
 
                     AllocationReturnDTO? returnDTO = BuildAllocationFeedbackData(outboundOrder, allocateOrder.FromWarehouse, allocateOrder.ToWarehouse);
                     if (returnDTO == null)
                     {
-                        return WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
+                        return webResponse = WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
                     }
 
                     if (returnDTO.Details.Count <= 0)
                     {
-                        return WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
+                        return webResponse = WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
                     }
 
                     string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); ;
@@ -146,6 +143,8 @@
                     lineNos = returnDTO.Details.Select(x => x.LineNo).ToList();
                     httpResponseResult = _httpClientHelper.Post<MesResponseDTO>(apiUrl, requestData);
                     httpResponseResult.ApiUrl = apiUrl;
+
+                    Logger.Add(requestData, httpResponseResult.Serialize());
                 }
 
                 bool isSuccess = httpResponseResult.IsSuccess && httpResponseResult.Data.Code == "200";
@@ -213,15 +212,21 @@
                 _outboundOrderRepository.UpdateData(outboundOrder);
 
                 _unitOfWorkManage.CommitTran();
+                int successCount = returnRecords.Where(x => x.ReturnStatus == 1).Count() + (isSuccess ? 1 : 0);
+                int failCount = returnRecords.Where(x => x.ReturnStatus == 2).Count() + (isSuccess ? 1 : 0);
 
-                WebResponseContent responseContent = new WebResponseContent();
-                responseContent.Status = isSuccess;
-                responseContent.Message = message;
-                return responseContent;
+                webResponse.Status = true;
+                webResponse.Message = $"鍥炶皟鎴愬姛鏉℃暟锛歿successCount}锛屽洖璋冨け璐ユ潯鏁帮細{failCount}";
+
+                return webResponse;
             }
             catch (Exception ex)
             {
-                return WebResponseContent.Instance.Error(ex.Message);
+                return webResponse = WebResponseContent.Instance.Error(ex.Message);
+            }
+            finally
+            {
+                Logger.Add(orderNo, webResponse.Serialize());
             }
         }
 

--
Gitblit v1.9.3