使用说明
使用说明
- 审批扩展写在 [表Service.cs] 的
Audit中。
审批
/// <summary>
/// 审批
/// </summary>
/// <param name="keys"></param>
/// <param name="auditStatus"></param>
/// <param name="auditReason"></param>
/// <returns></returns>
public override WebResponseContent Audit(object[] keys, int? auditStatus, string auditReason)
{
WebResponseContent webResponse = new WebResponseContent();
//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();
};
return base.Audit(keys, auditStatus, auditReason);
}
审批(异步 async)
/// <summary>
/// 审批异步
/// </summary>
/// <param name="keys"></param>
/// <param name="auditStatus"></param>
/// <param name="auditReason"></param>
/// <returns></returns>
public override async Task<WebResponseContent> AuditAsync(object[] keys,
int? auditStatus, string auditReason)
{
WebResponseContent webResponse = new WebResponseContent();
//审批流程审批前异步,配置同上Audit方法AuditWorkFlowExecuting
AuditWorkFlowExecutingAsync = async (表 order, AuditStatus status, bool lastAudit) =>
{
//await xxx异步操作
return webResponse.OK();
};
//审批流程审批后,参数配置获取同上Audit方法
//status当前审批状态,nextUserIds下一个节点审批人的帐号id(可以从sys_user表中查询用户具体信息)
//lastAudit是否最后一个审批节点
AuditWorkFlowExecuted = (表 order, AuditStatus status,
List<int> nextUserIds, bool lastAudit) =>
{
return webResponse.OK();
};
//审批流程审批后异步,配置同上AuditWorkFlowExecuted
AuditWorkFlowExecutedAsync = async (表 order, AuditStatus status,
List<int> nextUserIds, bool lastAudit) =>
{
//await xxx异步操作
return webResponse.OK();
};
//审批保存前处理(不是审批流程)
//AuditOnExecuting = (List<表> order) =>
//{
// return webResponse.OK();
//};
////审批后处理(不是审批流程)
//AuditOnExecuted = (List<表> order) =>
//{
// return webResponse.OK();
//};
return await base.AuditAsync(keys, auditStatus, auditReason);
}
