.net之工作流工程展示及代码分享(二)工作流引擎
在介绍完表单类的时候,接下来介绍工作流引擎,主要由四个类组成,分别是流程、流程步骤、流程实例、流程步骤实例类。
流程类:
1 [Serializable] 2 public class Flow 3 { 4 [XmlAttribute] 5 public Guid FlowId { get; set; } 6 [XmlAttribute] 7 public string FlowName { get; set; } 8 public List<FlowStep> FlowSteps { get; set; } 9 [XmlAttribute] 10 public string FlowCategory { get; set; } 11 [XmlAttribute] 12 public bool Enabled { get; set; } 13 [XmlAttribute] 14 public DateTime CreateDate { get; set; } 15 public Person Creator { get; set; } 16 17 public DateTime? CanRequestDateStart { get; set; } 18 19 public DateTime? CanRequestDateEnd { get; set; } 20 21 public string CreaterName 22 { 23 get 24 { 25 if(Creator!=null) 26 return Creator.PersonName; 27 return string.Empty; 28 } 29 } 30 [XmlAttribute] 31 public Guid FormId { get; set; } 32 [XmlAttribute] 33 public string FormName { get; set; } 34 public WorkflowConstant.AccessMode AccessMode { get; set; } 35 [XmlAttribute] 36 public short PeriodTime { get; set; } 37 [XmlAttribute] 38 public string RequestRights { get; set; } 39 [XmlAttribute] 40 public string RequestGroup { get; set; } 41 public string AccessModeDesc 42 { 43 get 44 { 45 switch (RequestRights) 46 { 47 case "-不限-": 48 return "所有人"; 49 default: 50 return RequestRights+": "; 51 } 52 } 53 } 54 55 [XmlAttribute] 56 public string RoleGroups { 57 get 58 { 59 if (!string.IsNullOrEmpty(RequestGroup)) 60 { 61 return string.Join("、", RequestGroup.Split(',').Select(g => g.Split('|')[0])); 62 } 63 else 64 { 65 return string.Empty; 66 } 67 } 68 } 69 }
流程步骤类:
1 [Serializable] 2 public class FlowStep 3 { 4 [XmlAttribute] 5 public Guid StepId { get; set; } 6 [XmlAttribute] 7 public Guid PreviousStepId { get; set; } 8 [XmlAttribute] 9 public Guid NextStepId { get; set; } 10 [XmlAttribute] 11 public int SequenceId { get; set; } 12 [XmlAttribute] 13 public string StepName { get; set; } 14 [XmlAttribute] 15 public string RightGroupTitle { get; set; } 16 public List<Guid> CanWriteFormContolIds { get; set; } 17 [XmlAttribute] 18 public bool CanReturnToPreviousStep { get; set; } 19 [XmlAttribute] 20 public bool CanReturnToFirstStep { get; set; } 21 [XmlAttribute] 22 public bool AllowSelectAuditor { get; set; } 23 public WorkflowConstant.CounterSignatureMode CounterSignatureMode { get; set; } 24 [XmlAttribute] 25 public bool IsStartStep { get; set; } 26 [XmlAttribute] 27 public bool IsLastStep { get; set; } 28 [XmlAttribute] 29 public bool CanUploadFile { get; set; } 30 [XmlAttribute] 31 public bool MustUploadFile { get; set; } 32 [XmlAttribute] 33 public int UploadFileCount { get; set; } 34 }