wanshenmean
21 小时以前 fba665e8a67fcec20a6bbb2722efbee0e33dc6ad
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs
@@ -1,9 +1,11 @@
using System.Diagnostics;
using WIDESEA_Common.Constants;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.MES;
using WIDESEA_DTO.Task;
using WIDESEA_IBasicService;
@@ -58,6 +60,7 @@
        /// </summary>
        public async Task<WebResponseContent> OutboundFinishTaskAsync(CreateTaskDto taskDto)
        {
            var stopwatch = Stopwatch.StartNew();
            try
            {
                var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
@@ -135,13 +138,15 @@
                        LocalTime = DateTime.Now,
                        ContainerCode = taskDto.PalletCode
                    };
                    var outboundResult = string.IsNullOrWhiteSpace(token)
                        ? _mesService.OutboundInContainer(outboundRequest)
                        : _mesService.OutboundInContainer(outboundRequest, token);
                    if (outboundResult == null || outboundResult.Data == null || !outboundResult.Data.IsSuccess)
                    string palletCode = taskDto.PalletCode;
                    // Fire-and-forget: 异步执行MES出站,不阻塞主业务逻辑
                    _ = Task.Run(() => MesUploadAsync(palletCode, MesUploadStatusEnum.出站上传成功, async () =>
                    {
                        return content.Error($"出库完成失败:MES出站失败: {outboundResult?.Data?.Msg ?? outboundResult?.ErrorMessage ?? "未知错误"}");
                    }
                        return await Task.FromResult(string.IsNullOrWhiteSpace(token)
                            ? _mesService.OutboundInContainer(outboundRequest)
                            : _mesService.OutboundInContainer(outboundRequest, token));
                    }));
                    var completeResult = await CompleteTaskAsync(task, "出库完成");
                    if (!completeResult.Status)