(關(guān)聯(lián)角色表與員工表)
5)、步驟角色關(guān)系表S_action_role(action_role_id,action_id,role_id)
(關(guān)聯(lián)角色表與步驟表)
6)、下一處理人表L_loan_next_emp(loan_next_emp_id,loan_id,next_emp_id,step_id)
(其中next_emp_id關(guān)聯(lián)操作員工表E_emp_info,step_id關(guān)聯(lián)S_action_info)
其中數據流向如下:
1)業(yè)務(wù)最開(kāi)始發(fā)生時(shí),數據主表L_loan_info插入數據,其step_id為其所在流程的第一個(gè)步驟的編號,可根據下一步驟的重復次數來(lái)去將下一處理人的操作員編號插入到下一處理人表L_loan_next_emp中;插入流程處理明細表中數據,step_id為當前步驟編號;更新主表 L_loan_info的step_id為下一步驟編號;
2)流程進(jìn)入下一步驟;
3)下一處理人可查看當前待處理數據(以及本環(huán)節待處理數據),選定進(jìn)行處理,將處理結果(0:不通過(guò),1:通過(guò),2:退回,3:否決)插入到流程處理明細表中,若為通過(guò)由更新主表L_loan_info的step_id為下一步驟編號,退回更新為上一步驟編號,否決則更新到第一個(gè)步驟編號;
4)在本人已處理數據中可查看已處理過(guò)的數據,若下一步驟中操作員還沒(méi)有進(jìn)行操作,則可對數據操作進(jìn)行撤回,撤回時(shí)將處理結果(4:撤回)插入到流程處理明細表中,其中的next_emp_id為本人操作員工編號);更新主表L_loan_info的step_id為流程的第一步驟的編號;
5)下一處理人繼續3)、4)的循環(huán),直至流程的結束;
6)流程最后一個(gè)步驟,將處理結果中step_id值為0插入至流程處理明細中。
第三部分、實(shí)現細節
1、第一步驟中獲得數據列表代碼如下:
?
1
|
SELECT * FROM L_loan_info WHERE step_id=@step_id |
其中@step_id使用代碼得到當前數據的第一步驟編號
2、第一步驟獲得已處理數據列表代碼:
?
1
|
SELECT * FROM L_loan_info WHERE loan_id IN ( SELECT DISTINCT loan_id<br> FROM l_tranct_proc WHERE step_id=@step_id) |
3、獲得任一步驟數據列表(含未處理和已處理)
View Code
以上為核心代碼,當然由于工作流的具體需求不同,可調整相應代碼。
第四部分、運行結果
1、系統參數配置
2、待處理列表
3、處理頁(yè)面
(注:當前為最后一處理,下一處理人選擇不可見(jiàn))
4、撤回頁(yè)面
原文轉自:http://kb.cnblogs.com/page/70376/