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

    1.placeholder placeholder="e.g. King Kong" 只需在input元素中加入placeholder属性,其属性值就会默认显示为占位符文字,输入框 ...

  3. Arduino.h

    #ifndef Arduino_h #define Arduino_h #include <stdlib.h> #include <stdbool.h> #include &l ...

  4. ASP.NET MVC 项目中 一般处理程序ashx 获取Session

    1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString( ...

  5. rem的使用

    浏览器的默认字体高是16px. 兼容性: 目前,IE9+,Firefox.Chrome.Safari.Opera 的主流版本都支持了rem. 对于不支持的浏览器,要多写一个绝对单位的声明,这样浏览器就 ...

  6. leetcode 383. Ransom Note

    
Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 all 
th ...

  7. uploadify使用教程

    <div> <input type="file" id="uploadify" name="uploadify" /> ...

  8. 分布式缓存Memcached---开篇的话

    大数据.高并发这是最近一段时间内被IT行业提的最为火热的概念,看过<大数据时代>的同学应该不会陌生大数据的概念,尤其是对于互联网行业来说,大数据是每天都要接触的问题,简单通俗地说,每天得大 ...

  9. log4j+mongodb

    maven 配置: <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java ...

  10. web app上传图片

    很就很久以前,web app上传图片需要通过cordova插件,那时候好像还叫phonegap. 后来一个html标签就可以了 <input type="file" clas ...