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;
        }

 

posted @ 2024-11-04 15:41  中国结  阅读(227)  评论(0)    收藏  举报