YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统

  今天有空更新博客才发现快一年没有写博客了,不得不感叹时间过得真快。过去的一年确实也挺忙的,在此祝各位博友们新的一年工作顺利。权限模型在过去一年进行了不少的升级,主要集成了公文流转系统、多家手机短信接口的集成、CMS动态路由的实现、以及Hangfire消息队列与任务调度组件的集成等,本章主要对公文流转系统进行总体的介绍,感兴趣的可进一步交流或访问http://pjdemo.yellbuy.com。

  公文流转系统是国内企事业单位的普遍需求,具有很强的中国特色。通常其核心需求如下:

  • 具备公文流程审批,流程支持多人并批(有时需要考虑审批人的权重)、打回当前审批人之前任意人(包括起草人)
  • 有权限的审批人能在审批过程中能前插、后插审批人进行审批,审批人可提前浏览本人将审批的公文。
  • 每个公文流程可设置传阅人,传阅人只能看流程的公文信息,不参与审批
  • 公司(子公司)可分别创建不同的审批流程,根据公司(子公司)、公文类别来确定流程
  • 公文起草和审批时能上传多个附件
  • 菜单中有起草公文、已发公文、送阅公文、待办公文、已批公文、公文一览等。

  权限模型以组织机构为中心,更加符合国内实际情况,也非常适合公文流转系统的开发。在权限模型框架的基础之上,能对模块、按钮、数据权限进行全方位的控制,可对各个组织不同类型的权限进行授权和管理。使用权限模型,就需要根据权限模型的开发规范对数据库进行建模,其中需要进行数据权限控制的业务功能模块需要具有(:DeleteStatus,CreatedFID和CreatedFName三个默认的字段)。如下为公文流转系统的数据库设计表结构:

WorkflowTemplate - 公文流程模板

表名

WorkflowTemplate

描述

公文流程模板

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

标识

2

Code

nvarchar

255

 

 

编码

3

Name

nvarchar

255

 

 

名称

4

WorkflowType

nvarchar

255

 

 

类型

5

Value

nvarchar

-1

 

 

6

FormTemplate

nvarchar

-1

 

 

表单模板

7

LargeImage

nvarchar

-1

 

 

保留

8

SmallImage

nvarchar

-1

 

 

保留

9

Description

nvarchar

-1

 

 

描述

10

Comment

nvarchar

-1

 

 

备注

11

QuanPin

nvarchar

-1

 

 

保留

12

JianPin

nvarchar

255

 

 

保留

13

ExtensionDataType

nvarchar

255

 

 

扩展数据类型的名称

14

ExtensionData

nvarchar

-1

 

 

扩展数据类型存储值

15

Status

int

 

 

 

状态(无效,有效,预定义)

16

DisplayOrder

decimal

 

 

 

显示顺序

17

CreatedFID

nvarchar

2048

 

 

创建者完整标识路径

18

CreatedFName

nvarchar

2048

 

 

创建者完整名称路径

19

CreatedDate

datetime

 

 

 

创建时间

20

LastUpdatedFID

nvarchar

2048

 

 

最后修改人完整标识路径

21

LastUpdatedFName

nvarchar

2048

 

 

最后修改人完整名称路径

22

LastUpdatedDate

datetime

 

 

 

最后修改时间

23

DeleteStatus

int

 

 

 

删除状态

24

Owner

nvarchar

255

 

 

Owner

25

ApplicationName

nvarchar

255

 

 

ApplicationName

                 

 

WorkflowCreator - 流程所允许发起的组织

表名

WorkflowCreator

描述

流程所允许发起的组织

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

标识

2

WorkflowId

nvarchar

36

 

流程模板标识

3

OrgFID

nvarchar

2048

 

 

可发起人组织标识全路径

4

OrgFName

nvarchar

2048

 

 

可发起人组织名称全路径

5

CreatedFID

nvarchar

2048

 

 

创建人组织标识全路径

6

CreatedFName

nvarchar

2048

 

 

创建人组织名称全路径

7

Version

int

 

 

 

版本号

8

ApplicationName

nvarchar

64

 

 

应用程序标识

                 

 

ActivityTemplate - 活动模板

表名

ActivityTemplate

描述

活动模板

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

ID

2

WorkflowId

nvarchar

36

 

所属公文流程模板标识

3

Code

nvarchar

255

 

 

活动编码

4

Name

nvarchar

255

 

 

活动名称

5

Value

nvarchar

-1

 

 

6

ActivityKind

int

 

 

 

活动类型

7

TopValue

int

 

 

 

Y坐标

8

LeftValue

int

 

 

 

X坐标

9

WidthValue

int

 

 

 

宽度

10

HeightValue

int

 

 

 

高度

11

IsStartActivity

bit

 

 

 

是否开始活动

12

IsFinishActivity

bit

 

 

 

是否结束活动

13

ExpirationTime

int

 

 

 

默认过期时间

14

Description

nvarchar

-1

 

 

描述

15

Comment

nvarchar

-1

 

 

备注

16

QuanPin

nvarchar

-1

 

 

保留

17

JianPin

nvarchar

255

 

 

保留

18

DisplayOrder

decimal

 

 

 

显示顺序

19

LargeImage

nvarchar

-1

 

 

保留

20

SmallImage

nvarchar

-1

 

 

保留

21

ExtensionDataType

nvarchar

255

 

 

扩展数据类型名

22

ExtensionData

nvarchar

-1

 

 

扩展数据值

23

EntryExecuteTypeName

nvarchar

255

 

 

入口点执行外部方法类的信息

24

EntryExecuteMethodName

nvarchar

255

 

 

入口点执行外部方法的方法名

25

ExitExecuteTypeName

nvarchar

255

 

 

出口点执行外部方法类的信息

26

ExitExecuteMethodName

nvarchar

255

 

 

出口点执行外部方法的方法名

27

DeleteStatus

int

 

 

 

删除状态

28

CreatedFID

nvarchar

2048

 

 

CreatedFID

29

CreatedFName

nvarchar

2048

 

 

CreatedFName

30

CreatedDate

datetime

 

 

 

CreatedDate

31

LastUpdatedFID

nvarchar

2048

 

 

LastUpdatedFID

32

LastUpdatedFName

nvarchar

2048

 

 

LastUpdatedFName

33

LastUpdatedDate

datetime

 

 

 

LastUpdatedDate

34

Owner

nvarchar

255

 

 

Owner

35

ApplicationName

nvarchar

255

 

 

ApplicationName

                 

 

ActivityAuditor -活动步骤模板所允许审批的组织

表名

ActivityAuditor

描述

活动步骤模板所允许审批的组织

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

 

标识

2

ActivityId

nvarchar

36

 

活动模板标识

3

AuditingFID

nvarchar

2048

 

 

审批人完整标识路径

4

AuditingFName

nvarchar

2048

 

 

审批人完整名称路径

5

Weight

decimal

 

 

 

默认审批权重

6

ExperitionTime

int

 

 

 

默认过期时间,小时

7

Comment

ntext

1073741823

 

 

备注

                 

 

WorkflowInstance - 公文实例

表名

WorkflowInstance

描述

公文实例(每个流程发起的实例)

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

标识

2

WorkflowId

nvarchar

36

 

所属公文流程模板标识

3

WorkflowName

ntext

1073741823

 

 

所属公文流程模板名称

4

No

nvarchar

255

 

 

文号

5

Subject

nvarchar

255

 

 

标题

6

Kind

nvarchar

255

 

 

类型

7

Abstract

nvarchar

1024

 

 

摘要

8

Body

ntext

1073741823

 

 

内容

9

SafeLevel

int

 

 

 

密级

10

UrgencyDegree

int

 

 

 

紧急程度

10

DeleteStatus

bit

 

 

 

逻辑删除状态

11

DocStatus

int

 

 

 

当前状态,0开始 1运行 2结束

12

AuditedStatus

int

 

 

 

当前审核状态 0:未通过 1:已通过

13

SourceActivityId

nvarchar

36

 

 

当前已执行活动标识

14

SourceActivityName

nvarchar

50

 

 

当前已执行活动名称

15

TargetActivityId

nvarchar

36

 

 

当前待执行活动标识

16

TargetActivityName

nvarchar

50

 

 

当前待执行活动名称

17

Version

int

 

 

 

版本号

18

ExtensionDataType

nvarchar

255

 

 

扩展数据类型

19

ExtensionData

ntext

1073741823

 

 

扩展数据

20

CreatedFID

nvarchar

2048

 

 

起草人完整标识路径

21

CreatedFName

nvarchar

2048

 

 

起草人完整名称路径

22

CreatedDate

datetime

 

 

 

起草时间

23

LastUpdatedFID

nvarchar

2048

 

 

最后修改人完整路径标识

24

LastUpdatedFName

nvarchar

2048

 

 

最后修改人完整名称描述

25

LastUpdatedDate

datetime

 

 

 

最后修改时间

                 

 

Attachment - 公文附件

表名

Attachment

描述

公文附件

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

标识

2

No

nvarchar

50

 

 

文号

3

Title

nvarchar

256

 

 

标题

4

FileName

nvarchar

256

 

 

文件名

5

FilePath

nvarchar

256

 

 

文件路径

6

ExtensionName

nvarchar

10

 

 

文件扩展名

7

Kind

int

 

 

 

附件类别

8

Type

nvarchar

256

 

 

类型

9

Abstract

nvarchar

1024

 

 

摘要

10

Body

ntext

1073741823

 

 

正文

11

Keyword

nvarchar

256

 

 

关键字

12

Tag

nvarchar

256

 

 

标记

13

Comment

ntext

1073741823

 

 

备注

14

FileContent

varbinary

-1

 

 

附件内容

15

PublishDate

datetime

 

 

 

发布日期

16

DeleteStatus

int

 

 

 

删除状态

17

CreatedFID

nvarchar

2048

 

 

创建人标识路径

18

CreatedFName

nvarchar

2048

 

 

创建人名称路径

19

CreatedDate

datetime

 

 

 

创建时间

20

LastUpdatedFID

nvarchar

2048

 

 

最后修改人标识路径

21

LastUpdatedFName

nvarchar

2048

 

 

最后修改人名称路径

22

LastUpdatedDate

datetime

 

 

 

最后修改时间

23

DisplayOrder

decimal

 

 

 

显示顺序

24

Version

int

 

 

 

版本号

25

ObjectId

nvarchar

255

 

 

所属记录标识

                 

 

ActivityInstance - 活动步骤实例

表名

ActivityInstance

描述

活动步骤实例

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

标识

2

WorkflowId

nvarchar

36

 

 

所属公文流程模板标识

3

WorkflowName

nvarchar

255

 

 

所属公文流程模板标识

4

WorkflowInstanceId

nvarchar

36

 

WorkflowInstanceId

5

WorkflowInstanceSubject

nvarchar

255

 

 

WorkflowInstanceSubject

6

Code

nvarchar

255

 

 

编码

7

Name

nvarchar

255

 

 

名称

8

Value

nvarchar

-1

 

 

9

Status

int

 

 

 

活动状态,未执行,未通过,已通过

10

ActivityKind

int

 

 

 

活动类型,保留

11

TopValue

int

 

 

 

Y坐标

12

LeftValue

int

 

 

 

X坐标

13

WidthValue

int

 

 

 

宽度值

14

HeightValue

int

 

 

 

高度值

15

IsStartActivity

bit

 

 

 

是否开始活动

16

IsFinishActivity

bit

 

 

 

是否结束活动

17

ExpirationTime

int

 

 

 

过期时间

18

Description

nvarchar

-1

 

 

描述

19

Comment

nvarchar

-1

 

 

备注

20

QuanPin

nvarchar

-1

 

 

保留

21

JianPin

nvarchar

255

 

 

保留

22

DisplayOrder

decimal

 

 

 

显示顺序

23

LargeImage

nvarchar

-1

 

 

保留

24

SmallImage

nvarchar

-1

 

 

保留

25

ExtensionDataType

nvarchar

255

 

 

扩展数据类型名

26

ExtensionData

nvarchar

-1

 

 

扩展数据值

27

EntryExecuteTypeName

nvarchar

255

 

 

入口点执行外部方法类的信息

28

EntryExecuteMethodName

nvarchar

255

 

 

入口点执行外部方法的方法名

29

ExitExecuteTypeName

nvarchar

255

 

 

出口点执行外部方法类的信息

30

ExitExecuteMethodName

nvarchar

255

 

 

出口点执行外部方法的方法名

31

DeleteStatus

int

 

 

 

删除状态

32

CreatedFID

nvarchar

2048

 

 

CreatedFID

33

CreatedFName

nvarchar

2048

 

 

CreatedFName

34

CreatedDate

datetime

 

 

 

CreatedDate

35

LastUpdatedFID

nvarchar

2048

 

 

LastUpdatedFID

36

LastUpdatedFName

nvarchar

2048

 

 

LastUpdatedFName

37

LastUpdatedDate

datetime

 

 

 

LastUpdatedDate

38

Owner

nvarchar

255

 

 

Owner

39

ApplicationName

nvarchar

255

 

 

ApplicationName

                 

 

ActivityInstanceAuditor - 活动步骤实例对应的审批人

表名

ActivityInstanceAuditor

描述

活动步骤实例对应的审批人(多个审批人则为并行模式,通过权重判断是否审批通过)

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

 

标识

2

ActivityInstanceId

nvarchar

36

 

所属活动步骤实例标识

3

ActivityInstanceName

nvarchar

255

 

 

所属活动步骤实例名称

4

AuditingFID

nvarchar

2048

 

 

活动审批人完整标识

5

AuditingFName

nvarchar

2048

 

 

审核人完整名称路径

6

ExperiationTime

int

 

 

 

过期时间(小时)

7

ExperiationResult

int

 

 

 

超时时自动执行的结果(是否通过)

8

Weight

decimal

 

 

 

权重

9

AuditedResult

int

 

 

 

审核结果(未审核,审核未通过,审核通过)

10

AuditedOpinion

ntext

1073741823

 

 

审核意见

11

AuditedFID

nvarchar

2048

 

 

审核人完整标识

12

AuditedFName

nvarchar

2048

 

 

AuditedFName

13

AuditedDate

datetime

 

 

 

AuditedDate

14

AuditedKind

int

 

 

 

人工审批,超时自动审批

15

Comment

ntext

1073741823

 

 

备注

                 

 

ActivityLogs - 活动日志

表名

ActivityLogs

描述

活动审批日志信息

序号

列名

字段类型

长度

可空

主键

外键

描述

1

ID

nvarchar

36

 

ID

2

WorkflowInstanceId

nvarchar

36

 

所属公文流程实例标识

3

WorkflowInstanceSubject

nvarchar

255

 

 

所属公文流程实例主题

4

WorkflowId

nvarchar

36

 

 

所属公文流程模板标识

5

WorkflowName

nvarchar

255

 

 

所属公文流程模板名称

6

SourceActivityInstanceId

nvarchar

36

 

 

执行的活动实例标识

7

SourceActivityInstanceName

nvarchar

255

 

 

执行的活动实例名称

8

SourceActivityInstanceKind

int

 

 

 

执行的活动实例类型

9

TargetActivityInstanceId

nvarchar

36

 

 

待执行的活动实例标识

10

TargetActivityInstanceName

nvarchar

255

 

 

待执行的活动实例名称

11

TargetActivityInstanceKind

int

 

 

 

待执行的活动实例类型

12

AuditedWeight

decimal

 

 

 

审核的权重结果

13

AuditedOpinion

nvarchar

-1

 

 

审核的意见

14

AuditedFID

nvarchar

-1

 

 

审核人完整标识路径

15

AuditedFName

nvarchar

-1

 

 

审核人完整名称路径

16

AuditedDate

datetime

 

 

 

审核日期

17

AuditedResult

int

 

 

 

审核的结果(未通过,正在并行审批,已通过)

18

AuditedKind

int

 

 

 

审核类别(人工审核,超时自动审核等)

19

Comment

nvarchar

-1

 

 

备注

20

CreatedFID

nvarchar

2048

 

 

起草人完整标识路径

21

CreatedFName

nvarchar

2048

 

 

起草人完整名称路径

22

CreatedDate

datetime

 

 

 

起草日期

                 

 最终实现的界面效果如下:

 YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统_第1张图片

YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统_第2张图片

YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统_第3张图片

YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统_第4张图片

下一章:MVC中实现动态自定义路由

你可能感兴趣的:(YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统)