VOL框架 流程审批 驳回 拒绝 的处理(框架中未对拒绝做处理)
VOL框架 流程审批 驳回 拒绝 的处理(框架中未对拒绝做处理)
将路径\.Net6\VOL.Core\WorkFlow内的WorkFlowManager.cs中的CheckAuditStatus方法更新为如下代码
private static bool CheckAuditStatus(Sys_WorkFlowTable workFlow, FilterOptions filterOptions, Sys_WorkFlowTableStep currentStep, AuditStatus status) { //如果审核拒绝或驳回并退回上一步,待完 //重新配置流程待完 if (status != AuditStatus.审核未通过 && status != AuditStatus.驳回) { return true; } //流程驳回拒绝处理 by wishit 20241104 if ((status== AuditStatus.驳回 && filterOptions.AuditBack == (int)AuditBack.流程结束) ||(status == AuditStatus.审核未通过 && filterOptions.AuditRefuse == (int)AuditBack.流程结束)) { currentStep.AuditStatus = (int)AuditStatus.审核未通过; workFlow.CurrentStepId = "流程结束"; workFlow.AuditStatus = (int)AuditStatus.审核未通过; //DBServerProvider.DbContext.Update(currentStep); return false; } else if ((status == AuditStatus.驳回 && filterOptions.AuditBack == (int)AuditBack.返回上一节点) || (status == AuditStatus.审核未通过 && filterOptions.AuditRefuse == (int)AuditBack.返回上一节点)) { var preStep = workFlow.Sys_WorkFlowTableStep.Where(x => x.NextStepId == currentStep.StepId && x.StepAttrType == StepType.node.ToString()).FirstOrDefault(); if (preStep != null) { preStep.AuditStatus = null; preStep.AuditId = null; preStep.AuditDate = null; preStep.Auditor = null; workFlow.CurrentStepId = preStep.StepId; workFlow.StepName = preStep.StepName; workFlow.AuditStatus = (int)AuditStatus.审核中; currentStep.StepId = preStep.StepId; currentStep.StepValue = preStep.StepValue; DBServerProvider.DbContext.Update(preStep); } return false; } else if ((status == AuditStatus.驳回 && filterOptions.AuditBack == (int)AuditBack.流程重新开始) || (status == AuditStatus.审核未通过 && filterOptions.AuditRefuse == (int)AuditBack.流程重新开始)) { var steps = workFlow.Sys_WorkFlowTableStep.Where(x => x.StepAttrType == StepType.node.ToString() && (x.AuditStatus >= 0)).ToList(); if (steps.Count > 0) { foreach (var item in steps) { item.AuditStatus = null; item.AuditId = null; item.AuditDate = null; item.Auditor = null; } //重新指向第一个节点 workFlow.CurrentStepId = steps.OrderBy(c => c.OrderId).Select(c => c.StepId).FirstOrDefault(); workFlow.StepName = steps.OrderBy(c => c.OrderId).Select(c => c.StepName).FirstOrDefault(); workFlow.AuditStatus = (int)AuditStatus.审核中; currentStep.StepId = workFlow.CurrentStepId; currentStep.StepValue = steps.OrderBy(c => c.OrderId).Select(c => c.StepValue).FirstOrDefault(); DBServerProvider.DbContext.UpdateRange(steps); } return false; } return true; }

浙公网安备 33010602011771号