private async Task SendProgress(string nextStepId, string assignToUserIds, string assignToUserNames, JsonModel jsonModel, WfProcessInstance processInstance, WfProcess process, WfActivityInstance currActIns) { var nextAct = process.GetActivity(nextStepId); if (nextAct == null) { jsonModel.statusCode = 300; jsonModel.message = $"流程 {process.Name}的节点 {nextStepId} 找不到!"; return; } var nextActInstance = CreateActivityInstance(process, processInstance, nextAct, WfActivityState.Running, assignToUserIds, assignToUserNames); nextActInstance.PreActInstanceId = currActIns.Id; processInstance.CurrActivityName = nextActInstance.ActivityName; await WfActivityInstanceRepository.SaveAsync(nextActInstance); }
/// <summary> /// 生成回退节点 /// </summary> /// <param name="processInstance"></param> /// <param name="process"></param> /// <param name="currActIns"></param> /// <returns></returns> private async Task FallBackProgress(WfProcessInstance processInstance, WfProcess process, WfActivityInstance currActIns, string backStepId) { var preActInstance = await WfActivityInstanceRepository.GetLatestActivityAsync(processInstance.Id, backStepId); var backActivity = process.GetActivity(backStepId); var backActInstance = CreateActivityInstance(process, processInstance, backActivity, WfActivityState.Running, preActInstance.AssignToUserIds, preActInstance.AssignToUserNames); backActInstance.PreActInstanceId = preActInstance.PreActInstanceId; backActInstance.BackActivityInstanceId = currActIns.Id; processInstance.CurrActivityName = backActInstance.ActivityName; currActIns.ActivityState = WfActivityState.Sendbacked; await WfActivityInstanceRepository.SaveAsync(backActInstance); }