Преглед на файлове

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 преди 1 месец
родител
ревизия
523374256a

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

@@ -1335,7 +1335,7 @@ public class OrderController : BaseController
             IsCanUpdate = isCanUpdate
         };
         if (_appOptions.Value.IsLuZhou 
-            && _sessionContext.OrgIsCenter
+            && !_sessionContext.OrgIsCenter
             && rsp.OrderVisitModel.Order.IsSecret)
         {
             rsp.OrderVisitModel.Order.FromPhone = "****";//rsp.OrderVisitModel.Order.FromPhone?.Replace(rsp.OrderVisitModel.Order.FromPhone.Substring(3, 4), "****");
@@ -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);
 

+ 21 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -19,6 +19,7 @@ using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.TrCallCenter;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Tools;
 using Hotline.Snapshot.Notifications;
@@ -171,6 +172,26 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     order.FileOrgIsCenter = notification.Trace.HandlerOrgIsCenter;
                     order.FileOpinion = notification.Dto.Opinion;
 
+                    /*
+                     *需求:
+                     *1、判断工单属于哪种归档类型,需由谁归档来判断,热线中心归档的就叫中心归档件,部门归档就叫做部门归档件
+                       2、若工单发起过部门会签,最后由热线中心归档,应属于叫中心归档件和非会签件
+                       3、若工单发起过中心会签,最后由部门归档,应属于部门归档件和非会签件
+                     */
+                    if (_appOptions.Value.IsYiBin)
+                    {
+                        if (order.FileOrgIsCenter.Value)
+                        {
+                            if (order.CounterSignType is ECounterSignType.Department)
+                                order.CounterSignType = null;
+                        }
+                        else
+                        {
+                            if (order.CounterSignType is ECounterSignType.Center)
+                                order.CounterSignType = null;
+                        }
+                    }
+
                     //记录冗余归档数据
                     if (notification.Workflow.Steps.Any(x => x.BusinessType == Share.Enums.FlowEngine.EBusinessType.Send))
                     {

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

@@ -4247,14 +4247,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);
@@ -5333,13 +5333,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);