做公文流轉的具體思路

2021-09-05 16:07:56 字數 3220 閱讀 7667

新建公文處理流程:  

1、 建新流程,首先指定流程步驟,未正式啟用的流程可以修改步驟。  

3、 指定每個步驟的簽署人(乙個或多個人)  

4、 將流程儲存在流程資料庫中。資料庫結構如下:  

流程庫  

欄位名稱 型別 key 說明  

proc_id varchar(6) primary   key 流程編號  

proc_name varchar   (255) 流程名稱  

isvalid char(1) 生效標誌:  

0:未生效  

1:已生效  

流程步驟庫  

proc_id varchar   (6) primary   key 流程編號  

step_id varchar   (6) 步驟編號  

usrid varchar   (6) 簽署人使用者號  

flag char(1) 簽署標誌  

:0--簽署  

:1—會簽    

舉例:  

流程表  

流程編號 流程名稱  

000001 a流程  

000002 b流程  

000003 c流程  

流程步驟表  

流程編號 步驟編號 使用者編號 (說明)  

000001 1 000003 使用者編號可以是真正的「使用者編號」(來自users),也可以是「職務編號(來自task)」,視程式設計時如何處理而定,  

1、如果按使用者編號處理,程式設計時少一道處理過程,但設定步驟不靈活,一旦人員調動,流程則需重新設定;  

2、按職務編號處理,無論人員如何變動,流程不需重新設定,只是在程式設計時,需按職務將工作分配給簽署人  

3、一般說來,乙個流程中,同乙個使用者不可能簽署兩次。  

5、 如果時間允許,建議按職務編號處理。  

6、 職務設定在系統設定中已作好。  

000001 2 000004  

000001 2 000002  

000001 2 000009  

000001 3 000008  

000001 4 000001  

000002 1 000001  

000002 1 000100  

000002 2 002102  

000002 2 000009  

000002 3 000002  

000003 1 000005  

000003 2 000008  

5、確定流程是否生效(生效後的流程不能修改)  

公文流程步驟  

1、 新建乙個公文(擬文)  

2、 輸入公文必要的資訊(3、 選擇合適的流程  

4、 儲存公文  

5、 按照流程所涉及的步驟及使用者(如果按職務處理,則需要轉換為使用者編號),生成公文審批表,如下表所示  

公文審批過程表  

欄位名稱 型別 key 說明  

id varchar     (12) primary   key 流水號  

document_id varchar(6) 公文號  

proc_id varchar   (6) 審批流程號  

step_id varchar   (6) 步驟號  

user_id varchar   (6) 使用者編號  

opinion varchar   (255) 簽署意見  

opinflag char(1) 意見  

0:不同意  

1:同意  

2:需進一步研究  

flag char(1) 簽署標誌  

0:未開始  

1:進入審批流程  

2:審批完成  

procflag char(1) 流程進展標誌  

0:審批完成  

1:否定  

2:發回重審  

6、 擬文完成後,用「進入審批流程」處理,將流程中序號為1的流程標誌設為「正在審批」狀態。每個流程步驟完成後,自動將下一審批過程(其公文號、審批流程號、審批步驟號完全相同,而且流程進展標誌不為2)的flag設為1,進入審批流程。如果沒有下一流程,將流程進展標誌設定為 0,表示審批完成,然後發回varchar   (6)擬稿人或辦公室,按審批意見決定是否發文。  

7、 如果決定發回重審,則將原審批過程表中的流程進展標誌設為2,然後在審批過程表中重新建乙個審批過程,重新審批。  

8、 當審批過程的簽署標誌為1(進入審批流程)時,在使用者提醒欄中顯示使用者有檔案要簽署。(在使用者登入時顯示提醒欄)

當使用者審批後的狀態要用觸發器實現  

具體的**如下:  

create   trigger   tr_complete_proc   on   [dbo].[proc_audit]    

for     update    

as  

declare   @all_proc   int,@completed_proc   int,@del_proc_id   varchar(6),@del_document_id   varchar(6)  

if   update(flag)  

begin  

select   @del_proc_id=proc_id,@del_document_id=document_id   from   deleted  

select   @all_proc=count(*)    

from   proc_audit  

where   proc_id=@del_proc_id   and   document_id=@del_document_id  

select   @completed_proc=count(*)  

from   proc_audit  

where   proc_id=@del_proc_id   and   document_id=@del_document_id   and   flag=2  

if   @all_proc=@completed_proc  

update   proc_audit  

set   procflag=0  

where   proc_id=@del_proc_id   and   document_id=@del_document_id  

end  

Big Num的具體實現和思路

關於bign模板那些事兒。由於個人寫演算法的時候基本不用別人寫的庫。所以一般來說,我只用三個標頭檔案。缺乏了string之後寫big num對於有些人來說就沒那麼簡單了。一直覺得大數模板在10min之內寫完絕對不是一件很簡單的事兒。大概所有人都會這樣認為吧。然而其實不一定!對於一般的大數模板來說,需...

java中的工作流流程管理和流轉思路

在做某個管理專案時,被要求實現一套流程管理,比如請假的申請審批流程等,在參考了很多資料,並和同事討論後,得到了乙個自主實現的流程管理。以下提供我的設計思路,知道了思路,實現起來就簡單很多了。首先我設計了5個類來實現流程的自主設定,主要是對流程的定義和流程流轉。注 這是設計的圖,並不是實現 dicti...

Oracle DBA做SQL優化的最佳思路

如何在 oracle資料庫裡寫出高質量的sql語句,如何在oracle資料庫裡對有效能問題的sql做診斷和調整,這是dba們在oracle資料庫實踐中不可避免的難題。下面就讓我們來分析一下拿到一條問題sql後我們可以如何去開始我們的優化思路。對於有問題的sql做sql優化的具體步驟一般為 1 檢視該...