今天有空更新博客才发现快一年没有写博客了,不得不感叹时间过得真快。过去的一年确实也挺忙的,在此祝各位博友们新的一年工作顺利。权限模型在过去一年进行了不少的升级,主要集成了公文流转系统、多家手机短信接口的集成、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

起草日期

                 

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

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

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

  1. YbSoftwareFactory 代码生成插件【十三】:Web API 的安全性

    ASP.NET Web API 可非常方便地创建基于 HTTP 的 Services,这些服务可以非常方便地被几乎任何形式的平台和客户端(如浏览器.Windows客户端.Android设备.IOS等) ...

  2. YbSoftwareFactory 代码生成插件【十四】:通过 DynamicLinq 简单实现 N-Tier 部署下的服务端数据库通用分页

    YbSoftwareFactory 的 YbRapidSolution for WinForm 插件使用CSLA.NET作为业务层,CSLA.NET的一个强大的特性是支持 N-Tiers 部署.只需非 ...

  3. YbSoftwareFactory 代码生成插件【十五】:Show 一下最新的动态属性扩展功能与键值生成器功能

    YbSoftwareFactory 各种插件的基础类库中又新增了两个方便易用的功能:动态属性扩展与键值生成器,本章将分别介绍这两个非常方便的组件. 一.动态属性扩展 在实际的开发过程中,你肯定会遇到数 ...

  4. YbSoftwareFactory 代码生成插件【二十一】:Web Api及MVC性能提升的几个小技巧

    最近在进行 YbSoftwareFactory 的流程功能升级,目前已经基本完成,现将用到的一些关于 Web Api 及 MVC 性能提升的一些小技巧进行了总结,这些技巧在使用.配置上也相当的简单,但 ...

  5. YbSoftwareFactory 代码生成插件【二十】:DynamicObject的序列化

    DynamicObject 是 .NET 4.0以来才支持的一个类,但该类在.NET 4.0下未被标记为[Serializable] Attribute,而在.NET 4.5下则被标记了[Serial ...

  6. YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)

    程序=数据结构+算法,而企业级的软件=数据+流程,流程往往千差万别,客户自身有时都搞不清楚,随时变化的情况更是家常便饭,抛开功能等不谈,需求变化很大程度上就是流程的变化,流程的变化会给开发工作造成很大 ...

  7. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  8. YbSoftwareFactory 代码生成插件【二十二】:CMS基础功能的实现

    很多网友建议在YbRapidSolution for MVC框架的基础上实现CMS功能,以方便进行内容的管理,加快前端页面的开发速度.因此花了一段时间,实现了一套CMS内容发布系统并已集成至YbRap ...

  9. YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由

    上一篇介绍了 公文流转系统 的实现,本篇介绍下MVC下动态自定义路由的实现. 在典型的CMS系统中,通常需要为某个栏目指定个友链地址,通过指定友链地址,该栏目的地址更人性化.方便记忆,也有利用于搜索引 ...

随机推荐

  1. Unity3D连接sqlite数据库操作C#版

    unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...

  2. CI框架3

    1.CI不能像smarty那样直接{}访问,  <?php echo $ci;?> application\config\ config.php 日志查看      $config['lo ...

  3. 《实战Java虚拟机》,最简单的JVM入门书,京东活动,满200就减100了,该出手了

    #京东满200—100单# 图书放血大卖了 <实战Java虚拟机>http://item.jd.com/11670385.html 参加京东满200减 100的大促,就在6.1这一天,仅此 ...

  4. XSS攻击

    什么是XSS? http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html XSS攻击及防御? http://blog.csdn. ...

  5. HDU 1166 敌兵布阵(分块)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. CocoaPods for Xcode

    http://www.cnblogs.com/MrRed/p/5728933.html 非常方便的Xcode pods插件.可以很方便的在Xcode通过pods安装各种objective-c第三方库, ...

  7. ThinPHP基础

    注:约定([书写]规则)胜于配置 *测试连接是否成功:localhost/tp/index.php1.localhost/tp/index.php(入口文件)/Home(模块名)/Index(控制器名 ...

  8. 记录一次Tomcat内存泄露原因的追溯

    现象:WEB无法访问.SSH无法登陆.桌面登陆验证失败. 重启服务器后登陆正常. cat /var/log/message显示root用户创建了2000多个sessions后显示内存不足. 进入tom ...

  9. AsyncTask内的各个方法调用顺序

    |- AsyncTask内的各个方法调用顺序:|- 首先,用户调用execute方法,启动AsyncTask .然后在execute方法中:|- 首先调用onPreExecute方法,执行初始化操作. ...

  10. GridView实现方块布局

    效果如下: 先创建一个BaseViewHolder package com.example.griddemo; import android.util.SparseArray; import andr ...