|
@@ -2323,24 +2323,32 @@ public class OrderController : BaseController
|
|
|
[HttpPost("handle")]
|
|
|
public async Task Handle([FromBody] OrderHandleFlowDto dto)
|
|
|
{
|
|
|
- if (await _orderDelayRepository.AnyAsync(x => x.OrderId == dto.OrderId && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
|
|
|
+ Order order;
|
|
|
+ if (string.IsNullOrEmpty(dto.Data?.Id))
|
|
|
{
|
|
|
- throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
|
|
|
+ order = await _orderRepository.Queryable()
|
|
|
+ .FirstAsync(d => d.WorkflowId == dto.Workflow.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ if (order is null)
|
|
|
+ throw new UserFriendlyException("流程无对应工单");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ order = await _orderRepository.Queryable()
|
|
|
+ .FirstAsync(d => d.Id == dto.Data.Id, HttpContext.RequestAborted);
|
|
|
}
|
|
|
- var order = await _orderDomainService.GetOrderAsync(dto.OrderId, withExtension: true,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
- if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
- throw new UserFriendlyException("该工单未发起流程");
|
|
|
|
|
|
+ if (await _orderDelayRepository.AnyAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
|
|
|
+ }
|
|
|
+
|
|
|
if(dto.Data is not null && !string.IsNullOrEmpty(dto.Data.Id))
|
|
|
{
|
|
|
_mapper.Map(dto.Data, order);
|
|
|
await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
- var nextWorkflowDto = _mapper.Map<NextWorkflowDto>(dto.Workflow);
|
|
|
- nextWorkflowDto.WorkflowId = order.WorkflowId;
|
|
|
- await _workflowApplication.NextAsync(nextWorkflowDto, HttpContext.RequestAborted);
|
|
|
+ await _workflowApplication.NextAsync(dto.Workflow, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|