|
@@ -3585,9 +3585,9 @@ public class OrderController : BaseController
|
|
|
var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderHandle;
|
|
|
startDto.Title = order.Title;
|
|
|
- var startStep = await _workflowDomainService.StartAsync(startDto, order.Id, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
+ var (workflow,startStep) = await _workflowDomainService.StartAsync(startDto, order.Id, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
|
|
|
- await HandleOrderAsync(order, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
+ await HandleOrderAsync(order, workflow, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -3635,43 +3635,10 @@ public class OrderController : BaseController
|
|
|
|
|
|
var workflow = await _workflowDomainService.GetWorkflowAsync(dto.Workflow.WorkflowId, withSteps: true, withTraces: true,
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
- //1.是否是判断节点 2.是否存在历史派单节点 3.存在获取上个派单节点 4.不存在走平均派单
|
|
|
- if (dto.Data.OrderAssignMode is EOrderAssignMode.AdjoinLevel && dto.Workflow.BusinessType == EBusinessType.Send)
|
|
|
- {
|
|
|
- var sendOrderTraces = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send);
|
|
|
- if (sendOrderTraces.Any())
|
|
|
- {
|
|
|
- var sendOrderTrace = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send)
|
|
|
- .OrderByDescending(x => x.CreationTime)
|
|
|
- .FirstOrDefault();
|
|
|
- dto.Workflow.NextHandlers = new List<FlowStepHandler>
|
|
|
- {
|
|
|
- new FlowStepHandler()
|
|
|
- {
|
|
|
- Key = sendOrderTrace.HandlerId, Value = sendOrderTrace.HandlerName,
|
|
|
- UserId = sendOrderTrace.HandlerId, Username = sendOrderTrace.HandlerName,
|
|
|
- OrgId = sendOrderTrace.HandlerOrgId, OrgName = sendOrderTrace.HandlerOrgName
|
|
|
- }
|
|
|
- };
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- if (averageSendOrder)
|
|
|
- {
|
|
|
- if (!dto.Workflow.NextHandlers.Any())
|
|
|
- {
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- dto.Workflow.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
//await _workflowApplication.NextAsync(dto.WorkflowDto, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
var startStep = workflow.Steps.First(d => d.Id == dto.Workflow.StepId);
|
|
|
- await HandleOrderAsync(order, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
+ await HandleOrderAsync(order, workflow, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
|
|
|
if (_appOptions.Value.IsZiGong && dto.Data.Transpond.HasValue && dto.Data.Transpond.Value)
|
|
|
{
|
|
@@ -3684,7 +3651,8 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private async Task HandleOrderAsync(Order order, WorkflowStep startStep, OrderHandleFlowDto orderHandleFlowDto, BasicWorkflowDto workflowDto,
|
|
|
+ private async Task HandleOrderAsync(Order order, Workflow workflow, WorkflowStep startStep, OrderHandleFlowDto orderHandleFlowDto,
|
|
|
+ BasicWorkflowDto workflowDto,
|
|
|
CancellationToken cancellationToken)
|
|
|
{
|
|
|
switch (orderHandleFlowDto.OrderAssignMode)
|
|
@@ -3694,15 +3662,53 @@ public class OrderController : BaseController
|
|
|
nextDto.WorkflowId = startStep.WorkflowId;
|
|
|
nextDto.StepId = startStep.Id;
|
|
|
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder)
|
|
|
- .SettingValue[0]);
|
|
|
- if (workflowDto.BusinessType == EBusinessType.Send && averageSendOrder)
|
|
|
+ // 宜宾需求: 1.是否是判断节点 2.是否存在历史派单节点 3.存在获取上个派单节点 4.不存在走平均派单
|
|
|
+ if (workflowDto.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
- if (!nextDto.NextHandlers.Any())
|
|
|
+ if (_appOptions.Value.IsYiBin)
|
|
|
{
|
|
|
- var handler = await _orderDomainService.AverageOrder(cancellationToken);
|
|
|
- nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ var sendOrderTraces = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send);
|
|
|
+ if (sendOrderTraces.Any())
|
|
|
+ {
|
|
|
+ var sendOrderTrace = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send)
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .FirstOrDefault();
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler>
|
|
|
+ {
|
|
|
+ new FlowStepHandler()
|
|
|
+ {
|
|
|
+ Key = sendOrderTrace.HandlerId, Value = sendOrderTrace.HandlerName,
|
|
|
+ UserId = sendOrderTrace.HandlerId, Username = sendOrderTrace.HandlerName,
|
|
|
+ OrgId = sendOrderTrace.HandlerOrgId, OrgName = sendOrderTrace.HandlerOrgName
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 平均派单
|
|
|
+ var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ if (averageSendOrder)
|
|
|
+ {
|
|
|
+ if (!nextDto.NextHandlers.Any())
|
|
|
+ {
|
|
|
+ var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 平均派单
|
|
|
+ var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ if (averageSendOrder)
|
|
|
+ {
|
|
|
+ if (!nextDto.NextHandlers.Any())
|
|
|
+ {
|
|
|
+ var handler = await _orderDomainService.AverageOrder(cancellationToken);
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|