|
@@ -2107,45 +2107,57 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
.FirstAsync(d => d.WorkflowId == workflowId
|
|
|
&& d.TraceStyle == ETraceStyle.Publish
|
|
|
&& d.Status == EWorkflowStepStatus.WaitForAccept, cancellation);
|
|
|
- if (pubTrace is null) throw new UserFriendlyException($"未查询到待办的发布节点, workflowId:{workflowId}");
|
|
|
- pubTrace.OrderPublishId = orderPublishId;
|
|
|
- pubTrace.AcceptorId = acceptor.UserId;
|
|
|
- pubTrace.AcceptorName = acceptor.UserName;
|
|
|
- pubTrace.AcceptorOrgId = acceptor.OrgId;
|
|
|
- pubTrace.AcceptorOrgName = acceptor.OrgName;
|
|
|
- pubTrace.HandlerId = handler.UserId;
|
|
|
- pubTrace.HandlerName = handler.UserName;
|
|
|
- pubTrace.HandlerOrgId = handler.OrgId;
|
|
|
- pubTrace.HandlerOrgName = handler.OrgName;
|
|
|
- pubTrace.HandleTime = handleTime;
|
|
|
- pubTrace.Status = EWorkflowStepStatus.Handled;
|
|
|
+ if (pubTrace is not null)
|
|
|
+ {
|
|
|
+ pubTrace.OrderPublishId = orderPublishId;
|
|
|
+ pubTrace.AcceptorId = acceptor.UserId;
|
|
|
+ pubTrace.AcceptorName = acceptor.UserName;
|
|
|
+ pubTrace.AcceptorOrgId = acceptor.OrgId;
|
|
|
+ pubTrace.AcceptorOrgName = acceptor.OrgName;
|
|
|
+ pubTrace.HandlerId = handler.UserId;
|
|
|
+ pubTrace.HandlerName = handler.UserName;
|
|
|
+ pubTrace.HandlerOrgId = handler.OrgId;
|
|
|
+ pubTrace.HandlerOrgName = handler.OrgName;
|
|
|
+ pubTrace.HandleTime = handleTime;
|
|
|
+ pubTrace.Status = EWorkflowStepStatus.Handled;
|
|
|
|
|
|
- await _workflowTraceRepository.UpdateAsync(pubTrace, cancellation);
|
|
|
+ await _workflowTraceRepository.UpdateAsync(pubTrace, cancellation);
|
|
|
|
|
|
- //create visit trace
|
|
|
- await CreateVisitTraceAsync(pubTrace, visitAcceptor, orderVisitId, cancellation);
|
|
|
+ //create visit trace
|
|
|
+ await CreateVisitTraceAsync(pubTrace, visitAcceptor, orderVisitId, cancellation);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //throw new UserFriendlyException($"未查询到待办的发布节点, workflowId:{workflowId}");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public async Task HandleVisitTraceAsync(string orderVisitId, UserInfo visitor, DateTime visitTime, CancellationToken cancellation)
|
|
|
{
|
|
|
var visitTrace = await _workflowTraceRepository.GetAsync(d => d.OrderVisitId == orderVisitId,
|
|
|
cancellationToken: cancellation);
|
|
|
- if (visitTrace is null) throw new UserFriendlyException($"未查询到待办的发布节点, orderVisitId:{orderVisitId}");
|
|
|
- visitTrace.AcceptorId = visitor.UserId;
|
|
|
- visitTrace.AcceptorName = visitor.UserName;
|
|
|
- visitTrace.AcceptorOrgId = visitor.OrgId;
|
|
|
- visitTrace.AcceptorOrgName = visitor.OrgName;
|
|
|
- visitTrace.HandlerId = visitor.UserId;
|
|
|
- visitTrace.HandlerName = visitor.UserName;
|
|
|
- visitTrace.HandlerOrgId = visitor.OrgId;
|
|
|
- visitTrace.HandlerOrgName = visitor.OrgName;
|
|
|
- visitTrace.HandleTime = visitTime;
|
|
|
- visitTrace.Status = EWorkflowStepStatus.Handled;
|
|
|
+ if (visitTrace is not null)
|
|
|
+ {
|
|
|
+ visitTrace.AcceptorId = visitor.UserId;
|
|
|
+ visitTrace.AcceptorName = visitor.UserName;
|
|
|
+ visitTrace.AcceptorOrgId = visitor.OrgId;
|
|
|
+ visitTrace.AcceptorOrgName = visitor.OrgName;
|
|
|
+ visitTrace.HandlerId = visitor.UserId;
|
|
|
+ visitTrace.HandlerName = visitor.UserName;
|
|
|
+ visitTrace.HandlerOrgId = visitor.OrgId;
|
|
|
+ visitTrace.HandlerOrgName = visitor.OrgName;
|
|
|
+ visitTrace.HandleTime = visitTime;
|
|
|
+ visitTrace.Status = EWorkflowStepStatus.Handled;
|
|
|
|
|
|
- await _workflowTraceRepository.UpdateAsync(visitTrace, cancellation);
|
|
|
+ await _workflowTraceRepository.UpdateAsync(visitTrace, cancellation);
|
|
|
|
|
|
- //create append end trace
|
|
|
- await CreateTrashEndTraceAsync(visitTrace, cancellation);
|
|
|
+ //create append end trace
|
|
|
+ await CreateTrashEndTraceAsync(visitTrace, cancellation);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //throw new UserFriendlyException($"未查询到待办的发布节点, orderVisitId:{orderVisitId}");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#region private method
|
|
@@ -3235,30 +3247,30 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(orderVisitId))
|
|
|
throw new UserFriendlyException($"参数异常,orderVisitId不能为空, pubTraceId: {pubTrace.Id}");
|
|
|
- var visitTrace = new WorkflowTrace
|
|
|
- {
|
|
|
- OrderVisitId = orderVisitId,
|
|
|
- TraceStyle = ETraceStyle.Visit,
|
|
|
- Name = "中心回访",
|
|
|
- Status = EWorkflowStepStatus.WaitForAccept,
|
|
|
- Code = "visit",
|
|
|
- CreationTime = pubTrace.HandleTime ?? DateTime.Now,
|
|
|
- PrevStepId = pubTrace.Id,
|
|
|
- PrevStepCode = pubTrace.Code,
|
|
|
- PrevStepName = pubTrace.Name,
|
|
|
- AssignerId = pubTrace.HandlerId,
|
|
|
- AssignerName = pubTrace.HandlerName,
|
|
|
- AssignerOrgId = pubTrace.HandlerOrgId,
|
|
|
- AssignerOrgName = pubTrace.HandlerOrgName,
|
|
|
- AssignerOrgIsCenter = pubTrace.HandlerOrgIsCenter ?? false,
|
|
|
-
|
|
|
- AcceptorId = acceptor.UserId,
|
|
|
- AcceptorName = acceptor.UserName,
|
|
|
- AcceptorOrgId = acceptor.OrgId,
|
|
|
- AcceptorOrgName = acceptor.OrgName,
|
|
|
-
|
|
|
- StepExpiredTime = null,
|
|
|
- };
|
|
|
+ var visitTrace = _mapper.Map<WorkflowTrace>(pubTrace);
|
|
|
+
|
|
|
+ visitTrace.OrderPublishId = null;
|
|
|
+ visitTrace.OrderVisitId = orderVisitId;
|
|
|
+ visitTrace.TraceStyle = ETraceStyle.Visit;
|
|
|
+ visitTrace.Name = "中心回访";
|
|
|
+ visitTrace.Status = EWorkflowStepStatus.WaitForAccept;
|
|
|
+ visitTrace.Code = "visit";
|
|
|
+ visitTrace.CreationTime = pubTrace.HandleTime ?? DateTime.Now;
|
|
|
+ visitTrace.PrevStepId = pubTrace.Id;
|
|
|
+ visitTrace.PrevStepCode = pubTrace.Code;
|
|
|
+ visitTrace.PrevStepName = pubTrace.Name;
|
|
|
+ visitTrace.AssignerId = pubTrace.HandlerId;
|
|
|
+ visitTrace.AssignerName = pubTrace.HandlerName;
|
|
|
+ visitTrace.AssignerOrgId = pubTrace.HandlerOrgId;
|
|
|
+ visitTrace.AssignerOrgName = pubTrace.HandlerOrgName;
|
|
|
+ visitTrace.AssignerOrgIsCenter = pubTrace.HandlerOrgIsCenter ?? false;
|
|
|
+
|
|
|
+ visitTrace.AcceptorId = acceptor.UserId;
|
|
|
+ visitTrace.AcceptorName = acceptor.UserName;
|
|
|
+ visitTrace.AcceptorOrgId = acceptor.OrgId;
|
|
|
+ visitTrace.AcceptorOrgName = acceptor.OrgName;
|
|
|
+
|
|
|
+ visitTrace.StepExpiredTime = null;
|
|
|
|
|
|
await _workflowTraceRepository.AddAsync(visitTrace, cancellation);
|
|
|
|
|
@@ -3269,6 +3281,11 @@ namespace Hotline.FlowEngine.Workflows
|
|
|
{
|
|
|
var now = DateTime.Now;
|
|
|
var TrashEndTrace = _mapper.Map<WorkflowTrace>(visitTrace);
|
|
|
+ TrashEndTrace.Id = null;
|
|
|
+ TrashEndTrace.StepId = null;
|
|
|
+ TrashEndTrace.OrderPublishId = null;
|
|
|
+ TrashEndTrace.OrderVisitId = null;
|
|
|
+
|
|
|
TrashEndTrace.TraceStyle = ETraceStyle.TrashEnd;
|
|
|
TrashEndTrace.Name = "结束";
|
|
|
TrashEndTrace.Status = EWorkflowStepStatus.Handled;
|