業(yè)務(wù)流程自定義的實(shí)現(xiàn)精_第1頁
業(yè)務(wù)流程自定義的實(shí)現(xiàn)精_第2頁
業(yè)務(wù)流程自定義的實(shí)現(xiàn)精_第3頁
業(yè)務(wù)流程自定義的實(shí)現(xiàn)精_第4頁
業(yè)務(wù)流程自定義的實(shí)現(xiàn)精_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、業(yè)務(wù)流程定義創(chuàng)建的表:XT_LCXX:流程信息表XT_JDXX:節(jié)點(diǎn)信息表(原)(改過)XT_LCSL:流程實(shí)例(原)(改過)流程實(shí)例表中添加了節(jié)點(diǎn)順序,不再用上節(jié)點(diǎn)id,下節(jié)點(diǎn)id,功能類似,這樣可以方便一個(gè)節(jié)點(diǎn)的下一個(gè)步驟允許兩個(gè)節(jié)點(diǎn)同時(shí)操作的情況。所以稍做了改變。但是不太確定在其他情況是否都能夠滿足要求,還在觀察中。LC_LSJL:歷史記錄邏輯順序:定義流程時(shí):1、 定義流程客體,即流程中流轉(zhuǎn)被操作的對(duì)象;2、 流程中需要經(jīng)過的步驟,即節(jié)點(diǎn),注意節(jié)點(diǎn)的先后順序;3、 每個(gè)步驟中操作該對(duì)象的主體,即人員或角色;這樣一個(gè)完整的流程就定義好了。實(shí)現(xiàn)界面:1、列表為已存在的流程,圖片按鈕為創(chuàng)建新

2、流程。2、點(diǎn)擊空的流程時(shí)出現(xiàn)起點(diǎn)。點(diǎn)擊已有流程時(shí)則展示流程示意圖3、點(diǎn)擊起點(diǎn)按鈕時(shí),開始定義節(jié)點(diǎn)(第一個(gè))。4、第一個(gè)節(jié)點(diǎn)出現(xiàn)后,鼠標(biāo)懸停在節(jié)點(diǎn)之上時(shí),提示操作人員和操作類型,點(diǎn)擊按鈕時(shí)則出現(xiàn)菜單有3個(gè)選擇:添加,修改和刪除。5、點(diǎn)擊增加時(shí),彈出設(shè)置節(jié)點(diǎn)的窗口,在節(jié)點(diǎn)順序的下拉框中可以選擇要添加的節(jié)點(diǎn)的順序,是與當(dāng)前節(jié)點(diǎn)屬于同一時(shí)間段進(jìn)行的,還是下一步驟。點(diǎn)擊刪除時(shí),直接刪除掉該節(jié)點(diǎn)。操作流程時(shí):1、 在創(chuàng)建流程信息表中包含對(duì)象的時(shí)候,同時(shí)向歷史記錄表中插入一條記錄,并標(biāo)明狀態(tài);2、 根據(jù)節(jié)點(diǎn)表中的操作人員和歷史記錄中待處理事件列表,選出待“我”處理的任務(wù);3、 處理完成后,相應(yīng)增加歷史記錄,

3、表明目前狀態(tài),并把本流程上一個(gè)狀態(tài)注銷,(若有并行步驟則需添加多條記錄);4、 最終完成后該流程的所有記錄的狀態(tài)都注銷。工作流類的設(shè)計(jì):實(shí)體類:有屬性:id,名稱等等有方法:add、edit、delete,添加的部分有選擇添加下個(gè)節(jié)點(diǎn)是什么類型的有編制、審核、審批、結(jié)束添加的時(shí)候,更新到數(shù)據(jù)庫有三個(gè)類:public class LCpublic class JDpublic class LCSL分別是流程類,節(jié)點(diǎn)類,和流程實(shí)例類。一、在流程類中 有一個(gè)字段: private string _lcid;有四個(gè)屬性: public string Bz public string Lcmc publ

4、ic string Lcztpublic string Lcyhid實(shí)例化流程是有兩種方法:1是創(chuàng)建一個(gè)數(shù)據(jù)庫中不存在的新流程,需要傳入?yún)?shù): public LC(string lcmc,string lczt,string bz,string yhid)2是實(shí)例化一個(gè)數(shù)據(jù)庫中已存在的流程,則只需傳入LCID即可: public LC(string lcid) string Sql_Select = select t.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bz from xt_lcxx t where t.lc_i

5、d= + lcid + ; DataTable Dt = DBHelper.GetDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._lcmc = Dt.Rows0lc_mc.ToString(); this._lczt = Dt.Rows0lc_lczt.ToString(); this._lcyhid = Dt.Rows0lc_yhid.ToString(); this._bz = Dt.Rows0lc_bz.ToString(); 會(huì)將其他信息添加到流程類的屬性中。流程類中有方法:/ 增加基本流程信息public string Add_CL

6、() / 修改流程基本信息 public string Edit_CL(string Lcid) public string Delete_CL(string Lcid)在節(jié)點(diǎn)類中:有屬性: public string Jdid public string Czlx public string Czry public string Yhid public string Bz有方法: / 增加一個(gè)新節(jié)點(diǎn) public string Add_JD() / 修改節(jié)點(diǎn) public string Edit_JD(string Jdid) / 刪除節(jié)點(diǎn) public string Delete_JD(s

7、tring jdid)實(shí)例化節(jié)點(diǎn)時(shí),有三種方法1實(shí)例化一個(gè)空的節(jié)點(diǎn),2實(shí)例化一個(gè)新的節(jié)點(diǎn)(沒有節(jié)點(diǎn)id),根據(jù)節(jié)點(diǎn)id實(shí)例化一個(gè)數(shù)據(jù)庫中已存在的節(jié)點(diǎn)(其他屬性自動(dòng)添加)。三、流程實(shí)例類有屬性: public string Lcid public string Yhid public string Bz有方法:/ 向流程添加節(jié)點(diǎn)(流程id必須提前設(shè)定好)/ 節(jié)點(diǎn)的層次,001是與上節(jié)點(diǎn)同一層次,002是下一層次public string Add_JdtoLc(string Jdid,string Jdcc)public string Delete_JdFromLc(string Jdid)必須注

8、意一點(diǎn),在流程實(shí)例中,添加節(jié)點(diǎn)和刪除節(jié)點(diǎn)有點(diǎn)不同:添加的時(shí)候是先用節(jié)點(diǎn)類添加一個(gè)節(jié)點(diǎn),然后再用流程實(shí)例類向流程添加這個(gè)節(jié)點(diǎn),而刪除的時(shí)候直接用流程實(shí)例類刪除掉節(jié)點(diǎn),因?yàn)樵贒elete_JdFromLc方法中已經(jīng)調(diào)用了Delete_JD方法。附類的全部代碼:using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;

9、using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.OracleClient;using System.Collections.Generic;/using System.ComponentModel;/ /WorkFlow 的摘要說明/ public class WorkFlowpublic WorkFlow()/TODO: 在此處添加構(gòu)造函數(shù)邏輯/ / 流程(基本信息)實(shí)體類,實(shí)現(xiàn)流程的增刪改/ public clas

10、s LC / / 實(shí)例化空流程 / public LC() / / 實(shí)例化準(zhǔn)備添加的新流程 / / / / / public LC(string lcmc,string lczt,string bz,string yhid) this._lcmc = lcmc; this._lczt = lczt; this._bz = bz; this._lcyhid = yhid; / / 實(shí)例化數(shù)據(jù)庫中已存在的流程,得到該流程的所有屬性 / / public LC(string lcid) this._lcid = lcid; try string Sql_Select = select t.lc_mc

11、,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bz from xt_lcxx t where t.lc_id= + lcid + ; DataTable Dt = DBHelper.GetDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._lcmc = Dt.Rows0lc_mc.ToString(); this._lczt = Dt.Rows0lc_lczt.ToString(); this._lcyhid = Dt.Rows0lc_yhid.ToString(); this._bz

12、 = Dt.Rows0lc_bz.ToString(); catch (Exception e) throw e; private string _lcid; private string _bz; public string Bz get return _bz; set _bz = value; private string _lcmc; / / 流程名稱 / public string Lcmc get return _lcmc; set _lcmc = value; private string _lczt; public string Lczt get return _lczt; se

13、t _lczt = value; / / 或許在類中可以直接得到登陸的用戶id,就不需要再傳值了。 / private string _lcyhid; public string Lcyhid get return _lcyhid; set _lcyhid = value; / / 增加基本流程信息 / / 數(shù)據(jù)庫操作信息或錯(cuò)誤信息 public string Add_CL() string info=string.Empty; try _lcid = DBHelper.GetScalar(select get_next_id(xt_lcxx,lc_id,LCXX) from dual).To

14、String(); string Sql_Insert = insert into xt_lcxx(lc_id,lc_mc,lc_zt,lc_yhid,lc_cjrq,lc_bz) values( + _lcid + , + _lcmc + , + _lczt + , + _lcyhid + ,trunc(sysdate,dd), + _bz + ); info = DBHelper.ExecuteCommand(Sql_Insert).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / / 修

15、改流程基本信息 / / 準(zhǔn)備修改的流程id / public string Edit_CL(string Lcid) string info = string.Empty; try string Sql_Update = update xt_lcxx set lc_mc= + _lcmc + ,lc_yhid= + _lcyhid + ,lc_xgrq=trunc(sysdate,dd),lc_bz=+_bz+ where lc_id=+Lcid+ ;/流程的id對(duì)應(yīng)主體,不可變 info = DBHelper.ExecuteCommand(Sql_Update).ToString(); ca

16、tch (Exception e) info = e.Message.ToString(); return info; public string Delete_CL(string Lcid) string info = string.Empty; try string Sql_Delete = delet xt_lcxx where lc_id= + Lcid + ; info = DBHelper.ExecuteCommand(Sql_Delete).ToString(); catch (Exception e) info = e.Message.ToString(); return in

17、fo; / / 節(jié)點(diǎn)實(shí)體類,實(shí)現(xiàn)節(jié)點(diǎn)的增刪改/ public class JD public JD() / / 實(shí)例化節(jié)點(diǎn)實(shí)體(已存在的節(jié)點(diǎn)) / / 節(jié)點(diǎn)id public JD(string jdid) this._jdid = jdid; try string Sql_Select = select a.jd_czry, a.jd_yhdw,a.jd_yhid,a.jd_cjrq,a.jd_bz, a.jd_czlx,a.jd_xgrq,a.jd_scbj from xt_jdxx a where a.jd_id= + jdid + ; DataTable Dt = DBHelper.G

18、etDataSet(Sql_Select); if (Dt.Rows.Count = 1) this._czry = Dt.Rows0jd_czry.ToString(); this._czlx = Dt.Rows0jd_czlx.ToString(); this._yhid = Dt.Rows0jd_yhid.ToString(); this._bz = Dt.Rows0jd_bz.ToString(); catch (Exception e) throw e; / / 實(shí)例化新節(jié)點(diǎn),(準(zhǔn)備添加到數(shù)據(jù)庫) / / 節(jié)點(diǎn)的操作人員 / 該記錄的添加人員 / 備注 public JD(strin

19、g czry, string czlx, string yhid, string bz) this._czry = czry; this._czlx = czlx; this._yhid = yhid; this._bz = bz; private string _jdid; public string Jdid get return _jdid; set _jdid = value; private string _czlx; public string Czlx get return _czlx; set _czlx = value; private string _czry; publi

20、c string Czry get return _czry; set _czry = value; private string _yhid; public string Yhid get return _yhid; set _yhid = value; private string _bz; public string Bz get return _bz; set _bz = value; / / 增加節(jié)點(diǎn) / / public string Add_JD() string info = string.Empty; try _jdid = DBHelper.GetScalar(select

21、 get_next_id(xt_jdxx,jd_id,JDXX) from dual).ToString(); / this.Jdid = _jdid; string Sql_Insert = insert into xt_jdxx(jd_id,jd_czry,jd_yhdw,jd_yhid,jd_cjrq,jd_bz,jd_czlx) values( + _jdid + , + _czry + ,(select yhxx_yhdw from xt_yhxx where yhxx_id= + _czry + ), + _yhid + ,trunc(sysdate,dd), + _bz + ,

22、+ _czlx + ); info = DBHelper.ExecuteCommand(Sql_Insert).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / / 修改節(jié)點(diǎn) / / / public string Edit_JD(string Jdid) string info = string.Empty; try string Sql_Update = update xt_jdxx x set x.jd_czry= + _czry + ,x.jd_yhdw=(select yhxx_yh

23、dw from xt_yhxx where yhxx_id= + _czry + ),x.jd_yhid= + _yhid + ,x.jd_xgrq=trunc(sysdate,dd),x.jd_bz= + _bz + ,jd_czlx= + _czlx + where x.jd_id= + _jdid + ; info = DBHelper.ExecuteCommand(Sql_Update).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / / 刪除節(jié)點(diǎn) / / / public stri

24、ng Delete_JD(string jdid) string info = string.Empty; try string Sql_Delete = delete xt_jdxx where jd_id= + jdid + ; info = DBHelper.ExecuteCommand(Sql_Delete).ToString(); catch (Exception e) info = e.Message.ToString(); return info; / / 流程實(shí)例實(shí)體類,實(shí)現(xiàn)流程過程的連接/ public class LCSL public LCSL() /屬性 private

25、 string _yhid;/用戶id public string Yhid get return _yhid; set _yhid = value; private string _bz;/備注 public string Bz get return _bz; set _bz = value; private string _lcid; public string Lcid get return _lcid; set _lcid = value; /方法 / / 向流程添加節(jié)點(diǎn)(流程id必須提前設(shè)定好) / / 節(jié)點(diǎn)id / 節(jié)點(diǎn)的層次,001是與上節(jié)點(diǎn)同一層次,002是下一層次 / pub

26、lic string Add_JdtoLc(string Jdid,string Jdcc) string info = string.Empty; string Sql_Jdsx = string.Empty; try switch (Jdcc) case 001: Sql_Jdsx = nvl(to_number(select max (lcsl_jdsx) from xt_lcsl where lcsl_id = + _lcid + ), 1) ; break; case 002: Sql_Jdsx = nvl(to_number(select max (lcsl_jdsx) from

27、xt_lcsl where lcsl_id = + _lcid + )+1, 1) ; break; string Jl_id = DBHelper.GetScalar(select get_next_id(xt_lcsl,jl_id,LCJD) from dual).ToString(); string Sql_Insert = insert into xt_lcsl(jl_id,lcsl_id,lcsl_jdid,lcsl_qsbj,lcsl_ljd_id,lcsl_njd_id,lcsl_yhid,lcsl_cjrq,lcsl_bz,lcsl_jdsx) values( + Jl_id + , + _lcid + , + Jdid + ,002,(select max(lcsl_jdid) from xt_lcsl where

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論