今天有空更新博客才發現快一年沒有寫博客了,不得不感嘆時間過得真快。過去的一年確實也挺忙的,在此祝各位博友們新的一年工做順利。權限模型在過去一年進行了很多的升級,主要集成了公文流轉系統、多家手機短信接口的集成、CMS動態路由的實現、以及Hangfire消息隊列與任務調度組件的集成等,本章主要對公文流轉系統進行整體的介紹,感興趣的可進一步交流或訪問http://pjdemo.yellbuy.com。數據庫
公文流轉系統是國內企事業單位的廣泛需求,具備很強的中國特點。一般其核心需求以下:框架
權限模型以組織機構爲中心,更加符合國內實際狀況,也很是適合公文流轉系統的開發。在權限模型框架的基礎之上,能對模塊、按鈕、數據權限進行全方位的控制,可對各個組織不一樣類型的權限進行受權和管理。使用權限模型,就須要根據權限模型的開發規範對數據庫進行建模,其中須要進行數據權限控制的業務功能模塊須要具備(:DeleteStatus,CreatedFID和CreatedFName三個默認的字段)。以下爲公文流轉系統的數據庫設計表結構:數據庫設計
WorkflowTemplate - 公文流程模板編碼
表名spa |
WorkflowTemplate設計 |
描述日誌 |
公文流程模板orm |
|||||
序號blog |
列名接口 |
字段類型 |
長度 |
可空 |
主鍵 |
外鍵 |
描述 |
|
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中實現動態自定義路由