审批流程设置

在表中新增字段:

image

 生成界面:

image

 

image

 后端要与是基于一致。

image

 配置表

image

 实现新增方法添加,在新增的时候设置条件,是否需求进行审核

image

审批发生邮件

image

 重写审批方法,对当前审批人的操作做处理》

public override WebResponseContent Audit(object[] keys, int? auditStatus, string auditReason)
    {
        //status当前审批状态,lastAudit是否最后一个审批节点
        AuditWorkFlowExecuting = (表 order, AuditStatus status, bool lastAudit) =>
        {
            //1.获取当前数据完整的审批信息
            // Sys_WorkFlowTable flow = order.GetTableWorkflow();
            // //所有审批节点信息
            // var steps= flow.Sys_WorkFlowTableStep;

            // //2.获取正在审批的节点信息
            // List<Sys_WorkFlowTableStep> steps1= order.GetTableCurrentFlowStep();

            // //3.获取上一个审批节点信息
            // List<Sys_WorkFlowTableStep> steps2 = order.GetTablePreFlowStep();

            // //4.获取下一个审批节点信息
            // List<Sys_WorkFlowTableStep> steps3 = order.GetTablePreFlowStep();

            return webResponse.OK();
        };
        //status当前审批状态,nextUserIds下一个节点审批人的帐号id(可以从sys_user表中查询用户具体信息),lastAudit是否最后一个审批节点
        AuditWorkFlowExecuted = (表 order, AuditStatus status, List<int> nextUserIds, bool lastAudit) =>
        {
            //获取审批节点信息看上面[AuditWorkFlowExecuting]
            
            //lastAudit=true时,流程已经结束
            if (!lastAudit)
            {
                //这里可以给下一批审批发送邮件通知
                //var userInfo = repository.DbContext.Set<Sys_User>()
                //             .Where(x => nextUserIds.Contains(x.User_Id))
                //             .Select(s => new { s.User_Id, s.UserTrueName, s.Email, s.PhoneNo }).ToList();
            }

            //审批流程回退功能,回到第一个审批人重新审批(重新生成审批流程)
            //if (status==AuditStatus.审批未通过||status==AuditStatus.驳回)
            //{
            //    base.RewriteFlow(order);
            //}
            return webResponse.OK();
        };

        //审批保存前处理(不是审批流程)
        AuditOnExecuting = (List<表> order) =>
        {
            return webResponse.OK();
        };
        //审批后处理(不是审批流程)
        AuditOnExecuted = (List<表> order) =>
        {
            return webResponse.OK();
        };
        return base.Audit(keys, auditStatus, auditReason);
    }

 



posted @ 2026-04-21 15:23  舒然  阅读(22)  评论(0)    收藏  举报