當前位置:首頁 » 操作系統 » 審批流程資料庫設計

審批流程資料庫設計

發布時間: 2022-08-30 22:16:34

A. 多級審核的資料庫怎麼設計啊

多級審核,這個最好通過許可權模塊來做。這樣,銷售部門,在查看市場部的時候,給予許可權不足的提示即可。至於多級審核,一樣,也可以通過表的設計來實現,沒見到你的架構如何,不好多說。

B. 審核流程的資料庫一般怎麼設計

1、用戶表
用戶ID
用戶角色(1:業務員,2:經理,3:總經理,4:總裁。。。)
用戶姓名
2、客戶表
客戶ID
客戶名稱
3、業務員客戶表
用戶ID(其實就是用戶表裡的用戶角色為業務員的用戶)
客戶ID
4、業務員移交客戶申請表
申請人用戶ID
申請移交的客戶ID
審批狀態(0:審批中,1:已審批。。。。)
移交後用戶ID
5、請假表
用戶ID
請假開始時間
請假結束時間
請假類別(1:事假、2:病假、3:婚假。。。。。)
審批狀態(0:審批中,1:已審批。。。。)

C. jbpm4.4開發審批流實現一個主任務流轉根據單據行項目分發不同人審核(請問這樣如何設計流程)

第一步 創建流程模板(通過畫圖得到xml描述文件) jbpm1會在資料庫Execution表中插入一條數據
* 第二步 獲取工作流引擎並指定啟動某個流程模板的實例,
* 1.啟動實例
* 2.流程變數(例如,申請人,申請內容,申請信息等)
* 3.提交流程(completeTask)
* 4.指定下一個處理任務的人(通過task = processEngine.getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).uniqueResult();
* 獲取當前實例的最後一個任務,任務每一次提交後都會被移除到歷史任務中,所以要根據實例id才能找到最後一個任務)
* 用processEngine.getTaskService().assignTask(task.getId(),"2222");指定下一處理人
* 5.把申請信息插入業務表(非jbpm中的表)查詢此表獲取申請人申請信息
*
* 第三部 獲取任務列表(待審批)
* 1. List<Task> list = processEngine.getTaskService().findPersonalTasks(userId); 傳入用戶ID用此方法獲取任務列表
*
* 第四部 提交任務
* 1.傳入taskid或(通過task = processEngine.getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).uniqueResult();)獲取
* taskid提交流程(completeTask)
* 2.傳入processInstanceID指定下一個處理任務的人(通過task = processEngine.getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).uniqueResult();
* 獲取當前實例的最後一個任務,任務每一次提交後都會被移除到歷史任務中,所以要根據實例id才能找到最後一個任務)
* 用processEngine.getTaskService().assignTask(task.getId(),"2222");指定下一處理人

D. 關於工作流的資料庫設計

項目(Item)
項目ID(ItemId) 項目描述(ItemName) 流程ID (RoutID) 申請人ID (ApplyUserID) 狀態(State) 項目類型(ItemType)
1 鄭州出差借款 1 1 借款單
2 鄭州出差報銷 3 1 報銷單 這里的項目,是泛指,可以是公文,借款單,報銷單等等需要流轉的數據.

任務列表(TaskList)
任務ID(taskId) 項目ID (itemId) 步驟ID (actorId) 狀態(state) 版本(version) 1 1 1 檢出 100
2 2 3 檢出 1001
3 3 3 待檢出 1002項目申請後,任務列表插入一條記錄.用戶審批通過或者拒絕後,update當前步驟ID(上一步驟或者下一步驟).某個步驟可能有多個審批人,如果要審批,必須先檢出.version欄位是為了樂觀鎖控制,保證只能有一人檢出.

任務歷史記錄(TaskHistory)
ID(id) 項目ID (itemId) 步驟ID (actorId) 備注(memo) 操作人ID (operateUserId) 創建時間(createDate)1 1 1 成都出差 1
1 1 2 批准 2
1 1 3 批准 3
每個步驟的操作,都寫入任務歷史記錄

流程(Rout)
流程ID(routId) 流程描述(routName) 部門ID (deptID) 版本號(version) 狀態(State)
1 借款流程 1 1 發布
2 報銷流程 1 1 草稿
2 預算審批流程 1 1 停止 流程草稿狀態是可以修改刪除,發布狀態就不能修改和刪除,只能新增一個版本,或者新增一個流程,或者停止流程。

步驟(Actor)
步驟ID(actorID) 步驟序號(sortNo) 步驟描述(actorName) 流程ID (routId) 1 1 借款申請 1
2 2 部門經理審批 1
3 3 財務經理審批 1 步驟序號是步驟執行的順序,審批的時候,根據當前序號,查找下一步驟,然後將下一步驟update任務列表的步驟ID,審批拒絕,則查找上一步驟,然後update任務列表的步驟ID

步驟處理人(actorUser)
步驟ID(actorId) 處理人ID (operateUserId)
1 1
2 2
2 3 一個步驟,是有多個處理人。處理人先檢出任務列表,然後才能審批。

視圖:待我處理的工作
select t1.taskId,t1.itemId,t3.operateUserId from taskList t1 join actor t2 on t1.actorId=t2.actorId join actorUser t3 on t2.actorId=t3.actorId where t1.state='待檢出'

視圖:我申請的工作
select t1.itemId,t1.itemName,t1.state,t1.applyUserId,t2.actorId from item t1 join taskList t2 on t1.itemId=t2.itemId

申請時
"1--查找所選流程的第一個步驟
select actorId from actor
where routId =1
order by sortNo
limit 0,12--插入任務列表taskList
insert into tasklist(actorId,state,version,itemId)
values()3--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
4--修改項目Item的狀態為待審批
update item set state='wait_to_approve' where itemId=1"

審批通過
"1--update任務列表的步驟ID為下一步驟ID
update taskList set actorId=
(select actorId from actor
where routId = (select routId from actor where actorID=1)
and actorID>1
order by sortNo
limit 0,1
)
where taskId
2--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
3--修改項目Item的狀態為審批中
update item set state='approveing' where itemId=1"

審批拒絕
"1--update任務列表的步驟ID為第一步的ID
update taskList set actorId=
(select actorId from actor
where routId =(select routId from actor where actorID=1)
order by sortNo
limit 0,1)
where taskId=1
2--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
3--修改項目Item的狀態為審批拒絕
update item set state='jujue' where itemId=1"

E. 資料庫設計問題(業務審批流程)

1、用戶表
用戶ID
用戶角色(1:業務員,2:經理,3:總經理,4:總裁。。。)
用戶姓名
2、客戶表
客戶ID
客戶名稱
3、業務員客戶表
用戶ID(其實就是用戶表裡的用戶角色為業務員的用戶)
客戶ID
4、業務員移交客戶申請表
申請人用戶ID
申請移交的客戶ID
審批狀態(0:審批中,1:已審批。。。。)
移交後用戶ID
5、請假表
用戶ID
請假開始時間
請假結束時間
請假類別(1:事假、2:病假、3:婚假。。。。。)
審批狀態(0:審批中,1:已審批。。。。)
6、周報表
用戶ID
周報月份
審批狀態(0:臨時保存,1:已提交,2:經理已審批,3:總經理已審批。。。。)

其實具體控制,你要在程序里進行流程式控制制,並沒有你說的那種自動控制,不過這樣的表結構設計是可以滿足你後期不用再動資料庫,只用修改業務流程即可

F. 要做一個資料庫的畢設

資料庫表的設計是在需求分析的基礎上才進行的,先做分析,然後E-R,然後才是真正建表(當然這步可以通過ER工具完成)。
舉個最簡單的例子:
學生表(記錄學生信息)
教職工表(記錄輔導員、班主任等教職工信息)
審批規則表(確定誰先審批,下一個審批人是誰,每個審批人用編號表示,比如教職工編號,外鍵到教職工表)
請假申請表(編號、發起人、事由、起止時間等)
審批流程(請假申請編號、審批人、審批時間、審批結果、備注/理由等)!

G. 如何實現OA系統的自定議審批流程的資料庫設計

我舉一個例子:有的OA系統是要公司客戶自己有伺服器,然後裝到客戶的伺服器上。可是客戶嫌麻煩,所以我想將OA系統(PHP+Mysql)放在自己的伺服器上,讓公司客戶及其員工來注冊使用。那麼問題來了,原來在客戶自己的伺服器上資料庫也就十幾張表,但都放到我的伺服器上,每注冊一個公司就得增加十幾張表,那如果有一萬家公司注冊資料庫不得有幾十萬張表?跟樓主一樣的問題,有一些老牌廠商早就給出來完美答案了,比如華為、天翎都有過類似的問題,這些企業提出的解決方案就很不錯,就針對上面的問題,最簡單的辦法是給每張表加個實例ID,一個公司對應一個實例ID,然後在你的MVC架構中跟DB最近的這一層加個攔截器,每個SQL查詢都自動帶上實例ID,這樣不用對代碼做很大改動。後期再根據需要優化,哪些公司合用一張表,哪些單獨佔用一張表甚至一個資料庫,總之具體問題具體對待,需要在運營的過程中根據用戶量和業務情況來分析採取對策。

熱點內容
19投籃腳本 發布:2025-05-14 23:36:57 瀏覽:511
編譯器怎麼處理c變長數組 發布:2025-05-14 23:31:46 瀏覽:662
存摺每天可以輸錯多少次密碼 發布:2025-05-14 23:22:06 瀏覽:908
安卓手機怎麼找微信隱藏對話 發布:2025-05-14 23:07:47 瀏覽:337
怎麼查看泰拉伺服器ip 發布:2025-05-14 23:03:29 瀏覽:73
c語言學生成績查詢系統 發布:2025-05-14 22:58:30 瀏覽:5
怎麼進別人的伺服器 發布:2025-05-14 22:45:55 瀏覽:773
用編程寫音樂 發布:2025-05-14 22:45:08 瀏覽:782
如何識別電腦的網路配置 發布:2025-05-14 22:38:46 瀏覽:848
pipforpython3 發布:2025-05-14 22:38:34 瀏覽:350