/// <summary> /// 驳回流程,将流程状态置为驳回 /// </summary> /// <param name="processInsUid"></param> internal void Revoke(string processInsUid) { var processIns = _dataAccessor.Get <WfProcessInstance>(processInsUid, false); if (processIns.ProcessState == WfProcessInstanceState.Running) { processIns.ProcessState = WfProcessInstanceState.Revoked; processIns.ApproveResult = WfApproveState.Disagree; //processIns.IsHandling = 0; _dataAccessor.Update <WfProcessInstance>(processIns); MessageManager msgManager = new MessageManager(_dataAccessor, _loggerFactory); msgManager.SendMessageWhenProcessCompleted(processIns, "驳回"); IWriteBackRule bwb = new BillWriteBack(_dataAccessor); //改变单据状态为驳回 bwb.Rejected(processIns.BillTable, processIns.BillUid); } else { throw new ProcessInstanceException("流程不在运行状态,不能被驳回!"); } }