Sfoglia il codice sorgente

fixed: 处理批量延期,延期状态异常问题

xf 1 settimana fa
parent
commit
a5da12a201

+ 1 - 3
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -342,18 +342,16 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     var delay = await _orderDelayRepository.GetAsync(workflow.ExternalId, cancellationToken);
                     if (delay != null)
                     {
-                        _logger.LogInformation("延期流程结束, 工单编号: {no}", delay.No);
                         //delay.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
                         delay.DelayState = isReviewPass ? EDelayState.Pass : EDelayState.NoPass;
                         await _orderDelayRepository.Updateable(delay)
-                            .UpdateColumns(d => new { d.DelayState })
+                            .UpdateColumns(d => d.DelayState)
                             .ExecuteCommandAsync(cancellationToken);
                         if (isReviewPass)
                         {
                             //处理工单延期
                             await _orderApplication.DelayOrderExpiredTimeAsync(delay.OrderId, delay.DelayNum,
                                 delay.DelayUnit, delay.IsProDelay, cancellationToken);
-                            _logger.LogInformation("延期流程结束更新期满时间, 工单编号: {no}", delay.No);
                         }
                     }
                     break;

+ 6 - 1
src/Hotline.Application/OrderApp/Handlers/OrderDelayHandler/OrderDelayBatchReviewTaskCompetedHandler.cs

@@ -13,6 +13,7 @@ using Hotline.Orders;
 using Hotline.Share.Dtos.Article;
 using Hotline.Share.Enums.Article;
 using Hotline.Share.Enums.Order;
+using Microsoft.Extensions.Logging;
 using XF.Domain.Authentications;
 using XF.Domain.Repository;
 
@@ -26,15 +27,18 @@ public class OrderDelayBatchReviewTaskCompetedHandler : INotificationHandler<App
     private readonly IRepository<Apptask> _apptaskRepository;
     private readonly IOrderDelayRepository _orderDelayRepository;
     private readonly ICircularRecordDomainService _circularRecordDomainService;
+    private readonly ILogger<OrderDelayBatchReviewTaskCompetedHandler> _logger;
 
     public OrderDelayBatchReviewTaskCompetedHandler(
         IRepository<Apptask> apptaskRepository,
         IOrderDelayRepository orderDelayRepository,
-        ICircularRecordDomainService circularRecordDomainService)
+        ICircularRecordDomainService circularRecordDomainService,
+        ILogger<OrderDelayBatchReviewTaskCompetedHandler> logger)
     {
         _apptaskRepository = apptaskRepository;
         _orderDelayRepository = orderDelayRepository;
         _circularRecordDomainService = circularRecordDomainService;
+        _logger = logger;
     }
 
     /// <summary>Handles a notification</summary>
@@ -47,6 +51,7 @@ public class OrderDelayBatchReviewTaskCompetedHandler : INotificationHandler<App
         var apptask = await _apptaskRepository.Queryable()
             .Includes(d => d.ApptaskItems)
             .FirstAsync(d => d.Id == notification.ApptaskItem.ApptaskId, cancellationToken);
+        _logger.LogInformation("批量延期审批任务执行完毕:{name}", apptask.Name);
         var unSuccessItems = apptask.ApptaskItems
             .Where(d => d.TaskStatus != ETaskStatus.Succeeded)
             .ToList();

+ 4 - 4
src/Hotline/BatchTask/ApptaskDomainService.cs

@@ -97,9 +97,9 @@ public class ApptaskDomainService : IApptaskDomainService, IScopeDependency
     public async Task<bool> IsCompletedAsync(string taskId, CancellationToken cancellation)
     {
         var anyUnCompleted = await _apptaskItemRepository.Queryable()
-            .AnyAsync(d => d.Tries < d.TryLimit
-                           && (d.TaskStatus == ETaskStatus.Waiting || d.TaskStatus == ETaskStatus.Processing)
-                           && d.ApptaskId == taskId, cancellation);
+              .AnyAsync(d => d.ApptaskId == taskId
+                              && (d.TaskStatus == ETaskStatus.Waiting || d.TaskStatus == ETaskStatus.Processing),
+                  cancellation);
         return !anyUnCompleted;
     }
 
@@ -179,7 +179,7 @@ public class ApptaskDomainService : IApptaskDomainService, IScopeDependency
                 throw new UserFriendlyException($"任务参数反序列化失败, taskItemId: {apptaskItem.Id}");
 
             _sessionContextManager.ChangeSessionContext(request.SessionContext);
-            
+
             //if (request is IApptaskRequest reqWithSession)
             //    _sessionContextProvider.ChangeSession(reqWithSession.SessionContext);
             var result = await executor.ExecuteAsync(request, cancellation);