huangxiaoqiang
2025-12-19 ce7d0a96fbd5a60bec49a15f82faee01fa7ea5dd
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs
@@ -51,17 +51,34 @@
                }
                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接口返回错误,HTTP代码:{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>();
@@ -76,6 +93,12 @@
                    {
                        return WebResponseContent.Instance.Error($"构建回调对象失败");
                    }
                    if (returnDTO.Details.Count <= 0)
                    {
                        return WebResponseContent.Instance.Error($"该单据无明细可回传");
                    }
                    string apiUrl = AppSettings.GetValue("MaterialOutboundFeedbackUrl");
                    returnDTO.ReqCode = reqCode;
                    returnDTO.ReqTime = reqTime;
@@ -95,11 +118,18 @@
                    {
                        return WebResponseContent.Instance.Error($"未找到对应的调拨单");
                    }
                    AllocationReturnDTO? returnDTO = BuildAllocationFeedbackData(outboundOrder, allocateOrder.FromWarehouse, allocateOrder.ToWarehouse);
                    if (returnDTO == null)
                    {
                        return WebResponseContent.Instance.Error($"构建回调对象失败");
                    }
                    if (returnDTO.Details.Count <= 0)
                    {
                        return WebResponseContent.Instance.Error($"该单据无明细可回传");
                    }
                    string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); ;
                    returnDTO.ReqCode = reqCode;
                    returnDTO.ReqTime = reqTime;
@@ -141,8 +171,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,10 +208,11 @@
                _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;
                responseContent.Status = true;
                responseContent.Message = $"回调成功条数:{successCount},回调失败条数:{failCount}";
                return responseContent;
            }
            catch (Exception ex)
@@ -227,7 +258,8 @@
                    OperationType = 1,
                    OrderNo = outboundOrder.UpperOrderNo,
                    FromWarehouse = fromWarehouse,
                    ToWarehouse = toWarehouse
                    ToWarehouse = toWarehouse,
                    Operator = App.User.UserName
                };
                return outboundReturnDTO;