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 | 69 +++++++++++++++++++++++++++-------
1 files changed, 55 insertions(+), 14 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 22a0846..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,26 +43,44 @@
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($"鏈壘鍒板搴旂殑鍑哄簱鍗曚俊鎭�");
}
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>(item.ApiUrl, item.RequestData);
- item.ReturnCount += 1;
+
+ string rMsg = "鎴愬姛";
bool success = httpResponse.IsSuccess && httpResponse.Data.Code == "200";
+ if (!success)
+ {
+ if (!httpResponse.IsSuccess)
+ {
+ rMsg = $"MES鎺ュ彛杩斿洖閿欒锛孒TTP浠g爜锛歿httpResponse.StatusCode}锛屼俊鎭細{httpResponse.ErrorMessage}";
+ }
+ else if (httpResponse?.Data?.Code != "200")
+ {
+ rMsg = $"璋冪敤MES鎺ュ彛澶辫触锛屼唬鐮侊細{httpResponse?.Data?.Code}锛屼俊鎭細{httpResponse?.Data?.Message}";
+ }
+ }
+
+ item.ReturnCount += 1;
+
item.ReturnStatus = success ? 1 : 2;
item.HttpStatusCode = httpResponse.StatusCode.ObjToInt();
item.LastReturnTime = DateTime.Now;
item.ResponseData = httpResponse.Content;
- item.SuccessTime = httpResponse.IsSuccess ? DateTime.Now : null;
+ item.SuccessTime = success ? DateTime.Now : null;
}
+
BaseDal.UpdateData(returnRecords);
HttpResponseResult<MesResponseDTO> httpResponseResult = new HttpResponseResult<MesResponseDTO>();
@@ -74,8 +93,14 @@
MaterialOutboundReturnDTO? returnDTO = BuildOutboundFeedbackData(outboundOrder);
if (returnDTO == null)
{
- return WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
+ return webResponse = WebResponseContent.Instance.Error($"鏋勫缓鍥炶皟瀵硅薄澶辫触");
}
+
+ if (returnDTO.Details.Count <= 0)
+ {
+ return webResponse = WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
+ }
+
string apiUrl = AppSettings.GetValue("MaterialOutboundFeedbackUrl");
returnDTO.ReqCode = reqCode;
returnDTO.ReqTime = reqTime;
@@ -93,13 +118,20 @@
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 webResponse = WebResponseContent.Instance.Error($"璇ュ崟鎹棤鏄庣粏鍙洖浼�");
+ }
+
string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); ;
returnDTO.ReqCode = reqCode;
returnDTO.ReqTime = reqTime;
@@ -111,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";
@@ -141,8 +175,8 @@
ResponseData = httpResponseResult.Content,
ReturnType = 0,
ReturnCount = 1,
- ReturnStatus = httpResponseResult.IsSuccess ? 1 : 2,
- SuccessTime = httpResponseResult.IsSuccess ? DateTime.Now : null
+ ReturnStatus = isSuccess ? 1 : 2,
+ SuccessTime = isSuccess ? DateTime.Now : null
};
_unitOfWorkManage.BeginTran();
@@ -178,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());
}
}
@@ -227,7 +267,8 @@
OperationType = 1,
OrderNo = outboundOrder.UpperOrderNo,
FromWarehouse = fromWarehouse,
- ToWarehouse = toWarehouse
+ ToWarehouse = toWarehouse,
+ Operator = App.User.UserName
};
return outboundReturnDTO;
--
Gitblit v1.9.3