關於基於流程的待辦事項的實現

2021-03-31 08:56:31 字數 2439 閱讀 2334

關於基於流程的待辦事項的實現

流程:工作流,一項工作的結束決定另一項工作的開始

步驟:流程中的每一步,每個工作

流動主體:步驟中,工作的物件

例如:員工建立乙份申請提交給經理,經理批示後下達給員工。這個過程就是乙個流程。它包括:建立申請、提交、批示、下達四個步驟,流動主體是申請。

這裡說的待辦事項是記錄在乙個流程中每個操作人員需要做的事項。

因此,它是基於流程的。要求在流程走到乙個步驟時,操作該步驟的人員的待辦事項中自動新增一項待辦事項,當走到下一步時,該項待辦事項自動取消。

待辦事項的問題複雜度主要取決於流程的複雜度。

影響流程的複雜度的因素有: 1

、是否有併發流程。 2

、流動的主體是否發生變化。

我們現在的流程中,有乙個併發流程;流動主體有4個:工程、專案、設計單、預算補充申請單。

給每個步驟設定乙個標誌(point)。建立標誌列表tbl_pending_notice

給流動主體新增三個屬性:當前使用者(cur_uid),當前標誌(cur_point),流動時間(pass_date)。

標誌(point):([流程號]/[步驟號]),如起始步驟(0/1) -> (0/2) 有併發流程後編為(1/1)、(2/1)。

當前使用者(cur_uid):([使用者編號]),使用者編號可以是單個使用者的編號如:(34),也可以是多個使用者編號的組合如:((12),(34),(56))三個併發流程,每個流程當前步驟的使用者編號分別為12、34、56。

當前標誌(cur_point):(([使用者編號])@([標誌位]))。如單流程((34)@(0/4)),三併發流程((12)@(1/1),(34)@(2/1),(56)@(3/1))。

流動時間(pass_date):時間型資料。

設:讀取使用者編號34的使用者(以下簡稱使用者34)在工程上的待辦事項 1

、在工程表中,查詢cur_uid中有沒有(34),有則表示使用者34在該工程中有待辦事項; 2

、檢查在cur_point中有沒有(34)@,如果沒有,則資料結構損壞 3

、在cur_point中,擷取從(34)@後一位開始到末尾的字串; 4

、在擷取的字串中,擷取從頭開始到第乙個「)」的字串,即步驟標誌位

從而得到使用者34在工程表中,當前的待辦事項。

sql:

declare @myid varchar(50)

set @myid = '(34)'

select my_point,pass_date

,replace(n.message,'',a.project_name_vchr)as cur_message

from (

select substring(my_point,1,charindex(')',my_point)) as my_point

,pass_date,project_name_vchr

from (

select pass_date,project_name_vchr,cur_point,substring(cur_point,charindex(''+ @myid +'@',cur_point)+len(''+ @myid +'@'),len(cur_point)) as my_point

from tbl_project_info

where cur_uid like '%'+ @myid +'%' and charindex(''+ @myid +'@',cur_point)>0

)as a

) as a

left outer join tbl_pending_notice n on a.my_point =n.point 1

、在cur_uid中,將我的使用者編碼替換為下一任的使用者編碼; 2

、在cur_point中,將我的標誌位替換為下一任的標誌位

例:當前使用者34在步驟(0/4),完成後傳給使用者25,步驟(0/5)

sql

declare @projectid bigint

declare @myid varchar(50)

declare @nextid varchar(50)

declare @mypoint varchar(50)

declare @nextpoint varchar(50)

set @projectid=0

set @myid='(34) '

set @nextid= '(25)'

set @mypoint='(34)@(0/4)'

set @nextpoint ='(25)@(0/5)'

update tbl_project_info set pass_date=getdate()

,cur_uid=replace(cur_uid,@myid,@nextid)

,cur_point=replace(cur_point,@mypoint,@nextpoint)

where id=@projectid

有沒有簡約的待辦事項便簽?

隨著生活和職場的節奏加快,很多人都發現自己的時間是越來越不夠用了,一天結束後,很多應該完成的待辦事項都沒有完成。而對於每個人來說,只有合理安排好每天的待辦事項和日程,才能夠掌控時間,從而獲得進步與成功。其實提前列出每日待辦事項清單,並且設定好提醒時間督促自己按時完成,很大程度上可以幫助我們提高辦事效...

Vuex 模組化實現待辦事項的狀態管理

在vue裡,元件之間的作用域是獨立的,父元件跟子元件之間的通訊可以通過prop屬性來傳參,但是在兄弟元件之間通訊就比較麻煩了。比如a元件要告訴一件事給b元件,那麼a就要先告訴他們的爸元件,然後爸元件再告訴b。當元件比較多,要互相通訊的事情很多的話,爸元件要管他們那麼多事,很累的。vuex正是為了解決...

隨時插入待辦事項的todonotes巨集包

在群裡看到有人推薦todonotes巨集包,研究了一下,感覺還不錯,該巨集包可以在文件的任意位置新增乙個待辦事項 todo 主要的語法有三個 todo命令用於在文章的任意位置插入乙個待辦事項,大致的樣子如下圖所示,通過可選引數可以調整其外觀。可選引數列表 key說明 disable 清除所有todo...