Kaynağa Gözat

fix:
1. 修复批量延期审核时取值相同的workflowId
2. BatchOrderDelayReviewRequest增加参数workflowId

xf 1 hafta önce
ebeveyn
işleme
064dd10d4d

+ 19 - 13
src/Hotline.Application/OrderApp/OrderDelayApp/OrderDelayApplication.cs

@@ -181,10 +181,10 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
     /// <returns></returns>
     public async Task BatchReviewAsync(BatchOrderDelayReviewRequest request, CancellationToken cancellation)
     {
-        var delayIds = request.DelayWithStepIds.Select(d => d.DelayId).Distinct().ToList();
-        var delays = await _orderDelayRepository.Queryable()
-            .Where(d => delayIds.Contains(d.Id))
-            .ToListAsync(cancellation);
+        //var delayIds = request.DelayWithStepIds.Select(d => d.DelayId).Distinct().ToList();
+        //var delays = await _orderDelayRepository.Queryable()
+        //    .Where(d => delayIds.Contains(d.Id))
+        //    .ToListAsync(cancellation);
 
         var apptaskItems = new List<AddApptaskItemRequest>();
         var req = new OrderDelayReviewWithSessionRequest
@@ -193,12 +193,13 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
             IsPass = request.IsPass,
             NextWorkflow = request.NextWorkflow
         };
-        foreach (var delay in delays)
+        foreach (var delay in request.DelayWithStepIds)
         {
-            req.NextWorkflow.StepId = request.DelayWithStepIds.First(d => d.DelayId == delay.Id).StepId;
+            req.NextWorkflow.WorkflowId = delay.WorkflowId;
+            req.NextWorkflow.StepId = delay.StepId;//request.DelayWithStepIds.First(d => d.DelayId == delay.Id).StepId;
             apptaskItems.Add(new AddApptaskItemRequest
             {
-                BusinessId = delay.Id,
+                BusinessId = delay.DelayId,
                 TaskParams = req
             });
         }
@@ -212,12 +213,17 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
 
         if (!string.IsNullOrEmpty(taskId))
         {
-            foreach (var orderDelay in delays)
-            {
-                orderDelay.DelayState = EDelayState.BatchProcessing;
-            }
-            await _orderDelayRepository.Updateable(delays)
-                .UpdateColumns(d=>new {d.DelayState})
+            //foreach (var orderDelay in delays)
+            //{
+            //    orderDelay.DelayState = EDelayState.BatchProcessing;
+            //}
+            //await _orderDelayRepository.Updateable(delays)
+            //    .UpdateColumns(d => new { d.DelayState })
+            //    .ExecuteCommandAsync(cancellation);
+            var delayIds = request.DelayWithStepIds.Select(d => d.DelayId).ToList();
+            await _orderDelayRepository.Updateable()
+                .SetColumns(d => d.DelayState == EDelayState.BatchProcessing)
+                .Where(d => delayIds.Contains(d.Id))
                 .ExecuteCommandAsync(cancellation);
         }
     }

+ 1 - 0
src/Hotline.Share/Dtos/Order/OrderDelay/DelayWithStepId.cs

@@ -3,5 +3,6 @@
 public class DelayWithStepId
 {
     public string DelayId { get; set; }
+    public string WorkflowId { get; set; }
     public string StepId { get; set; }
 }