Browse Source

fixed: 发布重办异常:pgsql one command is in process

xf 1 tháng trước cách đây
mục cha
commit
7a015c083e

+ 7 - 8
src/Hotline.Api/Controllers/OrderController.cs

@@ -6227,15 +6227,14 @@ public class OrderController : BaseController
             var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) = await _workflowDomainService.RecallAsync(recall,
                 dto.NextHandlers.FirstOrDefault(), EWorkflowTraceType.Recall,
                 order.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.Recall,
-                async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
+                (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
                 {
                     var basicWorkflowDto = _mapper.Map<BasicWorkflowDto>(dto);
                     var stepAssignInfo = _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
-                        basicWorkflowDto, HttpContext.RequestAborted).Result;
+                        basicWorkflowDto, HttpContext.RequestAborted).Result; //todo 优化异步
                     if (stepAssignInfo is null) return;
                     var validator = new StepAssignInfoValidator();
-                    await validator.ValidateAndThrowAsync(stepAssignInfo, HttpContext.RequestAborted);
-
+                    validator.ValidateAndThrow(stepAssignInfo);
                     targetStepNew.Assign(stepAssignInfo);
                 },
                 HttpContext.RequestAborted);
@@ -6466,14 +6465,14 @@ public class OrderController : BaseController
                 await _workflowDomainService.RecallAsync(
                     recall, recall.NextHandlers.FirstOrDefault(), EWorkflowTraceType.Redo,
                     endTime, order.Status >= EOrderStatus.Filed, EHandleMode.Redo,
-                    async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
+                    (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
                     {
                         var stepAssignInfo = recall.NextHandlers.FirstOrDefault()
-                                             ?? await _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
-                                                 recall, HttpContext.RequestAborted);
+                                             ?? _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
+                                                 recall, HttpContext.RequestAborted).Result; //todo 优化异步
                         if (stepAssignInfo is null) return;
                         var validator = new StepAssignInfoValidator();
-                        await validator.ValidateAndThrowAsync(stepAssignInfo, HttpContext.RequestAborted);
+                        validator.ValidateAndThrow(stepAssignInfo);
                         targetStepNew.Assign(stepAssignInfo);
                     }, HttpContext.RequestAborted);
 

+ 6 - 7
src/Hotline.Application/Orders/OrderApplication.cs

@@ -4245,14 +4245,14 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             await _workflowDomainService.RecallAsync(
                 recall, recall.NextHandlers.FirstOrDefault(), EWorkflowTraceType.Recall,
                 order.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.Recall,
-                async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
+                (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
                 {
                     var stepAssignInfo = recall.NextHandlers.FirstOrDefault()
                                          ?? GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
-                                             recall, cancellation).Result;
+                                             recall, cancellation).Result; //todo 优化异步
                     if (stepAssignInfo is null) return;
                     var validator = new StepAssignInfoValidator();
-                    await validator.ValidateAndThrowAsync(stepAssignInfo, cancellation);
+                    validator.ValidateAndThrow(stepAssignInfo);
                     targetStepNew.Assign(stepAssignInfo);
                 },
                 cancellation);
@@ -5331,13 +5331,12 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             (_, currentStep, _, prevStep, newStep, flowDirection) =
                 await _workflowApplication.PreviousAsync(sendBack.SendBackData,
                     userId, orgId, roles, handleMode,
-                    async (workflow1, currentStep1, prevStepDefine, prevStep1, newStep) =>
+                    (workflow1, currentStep1, prevStepDefine, prevStep1, newStep) =>
                     {
-                        var stepAssignInfo =
-                            GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1, cancellationToken).Result;
+                        var stepAssignInfo = GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1, cancellationToken).Result;//todo 优化异步
                         if (stepAssignInfo is null) return;
                         var validator = new StepAssignInfoValidator();
-                        await validator.ValidateAndThrowAsync(stepAssignInfo);
+                        validator.Validate(stepAssignInfo);
                         newStep.Assign(stepAssignInfo);
                     },
                     cancellationToken);

+ 3 - 4
src/Hotline.Application/Orders/OrderSecondaryHandlingApplication.cs

@@ -236,15 +236,14 @@ namespace Hotline.Application.Orders
                 var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) = await _workflowDomainService.RecallAsync(recall,
                         recall.NextHandlers.FirstOrDefault(), EWorkflowTraceType.SecondHandle,
                         order.ExpiredTime, order.Status >= EOrderStatus.Filed, EHandleMode.SecondaryHandle,
-                        async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
+                        (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
                         {
                             var basicWorkflowDto = _mapper.Map<BasicWorkflowDto>(dto);
                             var stepAssignInfo = _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
-                                basicWorkflowDto, cancellationToken).Result;
+                                basicWorkflowDto, cancellationToken).Result; //todo 优化异步
                             if (stepAssignInfo is null) return;
                             var validator = new StepAssignInfoValidator();
-                            await validator.ValidateAndThrowAsync(stepAssignInfo, cancellationToken);
-
+                            validator.ValidateAndThrow(stepAssignInfo);
                             targetStepNew.Assign(stepAssignInfo);
                         },
                         cancellationToken);

+ 4 - 2
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -1728,7 +1728,8 @@ namespace Hotline.FlowEngine.Workflows
                 //     stepAssignInfo, traceType, expiredTime, stepConfig, cancellationToken);
 
                 targetStepNew = CreateStartStep(workflow, targetStepDefine, dto, assigner, stepAssignInfo, expiredTime);
-                await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew), cancellationToken);
+                //await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew), cancellationToken);
+                newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew);
                 await _workflowStepRepository.AddAsync(targetStepNew, cancellationToken);
                 workflow.Steps.Add(targetStepNew);
                 await CreateTraceAsync(workflow, targetStepNew, traceType, cancellationToken);
@@ -1742,7 +1743,8 @@ namespace Hotline.FlowEngine.Workflows
                 targetStepNew = CreateStep(workflow, targetStepDefine, targetPrevStep, stepAssignInfo, assigner,
                     dto.NextStepCode, null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, expiredTime,
                     dto.NextStepName, true, true, null, dto.BusinessType, dto.FlowDirection);
-                await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew), cancellationToken);
+                //await Task.Run(() => newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew), cancellationToken);
+                newStepConfig?.Invoke(workflow, currentStep, targetStepDefine, targetStep, targetStepNew);
                 await _workflowStepRepository.AddAsync(targetStepNew, cancellationToken);
                 workflow.Steps.Add(targetStepNew);
                 await CreateTraceAsync(workflow, targetStepNew, traceType, cancellationToken);