You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

340 lines
7.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

namespace DS.WMS.Core.Flow.Dtos;
/// <summary>
/// 工作流根节点
/// </summary>
public class FlowRoot
{
/// <summary>
/// 节点Id
/// </summary>
public string Id { get; set; }
/// <summary>
/// 上级Id
/// </summary>
public string Pid { get; set; }
/// <summary>
/// 节点类型 start end condition exclusive
/// </summary>
public string Type { get; set; }
/// <summary>
///
/// </summary>
public bool Def { get; set; }
/// <summary>
/// 节点名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 子节点
/// </summary>
public FlowChild Child { get; set; }
/// <summary>
/// 审批类型 指定user role
/// </summary>
public string? AssigneeType { get; set; }
/// <summary>
/// 指定用户
/// </summary>
public List<string> Users { get; set; }
/// <summary>
/// 指定角色
/// </summary>
public List<string> Roles { get; set; }
}
/// <summary>
/// 工作流节点
/// </summary>
public class FlowChild
{
public const string START = "start";
public const string END = "end";
public const string Approval = "approval";//审批人
public const string Copy = "cc";//抄送人
public const string Condition = "condition";//条件
public const string Exclusive = "exclusive";//互斥条件
public const string FORK = "fork"; //会签开始节点
public const string JOIN = "join"; //会签结束节点
/// <summary>
/// 动态节点
/// </summary>
public const string Dynamic = "dynamic";
/// <summary>
/// 节点Id
/// </summary>
public string Id { get; set; } = string.Empty;
/// <summary>
/// 上级Id
/// </summary>
public string? Pid { get; set; }
/// <summary>
/// 节点类型 start end condition exclusive
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 节点名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 子节点
/// </summary>
public FlowChild? Child { get; set; }
/// <summary>
/// 子节点列表
/// </summary>
public List<FlowChild>? Children { get; set; }
/// <summary>
/// 审批类型 指定user role
/// </summary>
public string AssigneeType { get; set; }
/// <summary>
/// 表单用户
/// </summary>
public string FormUser { get; set; }
/// <summary>
/// 表单角色
/// </summary>
public string FormRole { get; set; }
/// <summary>
/// 用户
/// </summary>
public List<string> Users { get; set; }
/// <summary>
/// 角色
/// </summary>
public List<string> Roles { get; set; }
/// <summary>
/// 上级
/// </summary>
public int Leader { get; set; }
/// <summary>
///
/// </summary>
public bool Choice { get; set; }
/// <summary>
///
/// </summary>
public bool Self { get; set; }
/// <summary>
/// 多人审批方式 sequential-依次审批 joint-会签 single-或签
/// </summary>
public string Multi { get; set; }
/// <summary>
/// 审批人为空时 pass 自动通过 reject 自动拒绝
/// </summary>
public string Nobody { get; set; }
/// <summary>
/// 节点的附加数据项
/// </summary>
/// <value>The set information.</value>
public Setinfo SetInfo { get; set; }
/// <summary>
///
/// </summary>
public Operations Operations { get; set; }
/// <summary>
/// 条件
/// </summary>
public FlowGroupConditions? Conditions { get; set; }
/// <summary>
/// 是否使用SQL语句条件默认为否
/// </summary>
public bool UseSQL { get; set; }
/// <summary>
/// SQL查询语句
/// </summary>
public string? SQLText { get; set; }
/// <summary>
/// 获取执行人的SQL查询语句
/// </summary>
public string? MarkerSQLText { get; set; }
}
/// <summary>
/// 操作
/// </summary>
public class Operations
{
/// <summary>
///
/// </summary>
public bool Complete { get; set; }
/// <summary>
///
/// </summary>
public bool Refuse { get; set; }
/// <summary>
///
/// </summary>
public bool Save { get; set; }
/// <summary>
///
/// </summary>
public bool Transfer { get; set; }
/// <summary>
///
/// </summary>
public bool AddMulti { get; set; }
/// <summary>
///
/// </summary>
public bool MinusMulti { get; set; }
}
/// <summary>
/// 条件
/// </summary>
public class FlowGroupConditions
{
/// <summary>
/// 逻辑操作符
/// </summary>
public string LogicalOperator { get; set; }
/// <summary>
/// 条件组
/// </summary>
public List<FlowConditions> Conditions { get; set; }
/// <summary>
/// 分组
/// </summary>
public List<FlowGroupConditions> Groups { get; set; }
}
public class FlowConditions
{
/// <summary>
/// 字段
/// </summary>
public string Field { get; set; }
/// <summary>
/// 操作符
/// </summary>
public string Operator { get; set; }
/// <summary>
/// 值
/// </summary>
public string Value { get; set; }
/// <summary>
/// 表单
/// </summary>
public string Tables { get; set; }
}
/// <summary>
/// 节点附加信息
/// </summary>
public class Setinfo
{
public const string ALL_USER = "ALL_USER"; //所有用户
public const string SPECIAL_ROLE = "SPECIAL_ROLE"; //指定角色
public const string SPECIAL_USER = "SPECIAL_USER"; //指定用户
public const string RUNTIME_SPECIAL_ROLE = "RUNTIME_SPECIAL_ROLE"; //运行时指定角色
public const string RUNTIME_SPECIAL_USER = "RUNTIME_SPECIAL_USER"; //运行时指定用户
/// <summary>
/// 节点执行权限类型
/// </summary>
public string NodeDesignate { get; set; }
/// <summary>
/// 驳回节点0"前一步"1"第一步"2"某一步" 3"不处理"
/// </summary>
public string NodeRejectType { get; set; }
public int? Taged { get; set; }
public string UserName { get; set; }
public string UserId { get; set; }
public string Description { get; set; }
public string TagedTime { get; set; }
//节点会签方式,
//all/空:默认为全部通过
//one :至少有一个通过
public string NodeConfluenceType { get; set; }
/// <summary>
/// 会签通过的个数
/// </summary>
public int? ConfluenceOk { get; set; }
/// <summary>
/// 会签拒绝的个数
/// </summary>
public int? ConfluenceNo { get; set; }
}
/// <summary>
/// 节点执行结果标签
/// </summary>
public class FlowTag
{
/// <summary>
/// 1: 通过
/// 2不通过
/// 3驳回
/// </summary>
public int Taged { get; set; }
public string UserId { get; set; }
public string UserName { get; set; }
public string Description { get; set; }
public string TagedTime { get; set; }
}
/// <summary>
/// 1: 通过
/// 2不通过
/// 3驳回
/// </summary>
public enum TagState
{
/// <summary>
/// 通过
/// </summary>
Ok = 1,
/// <summary>
/// 不通过
/// </summary>
No = 2,
/// <summary>
/// 驳回
/// </summary>
Reject = 3
}