业务流程自定义的实现.docx

上传人:b****4 文档编号:4077929 上传时间:2023-05-06 格式:DOCX 页数:41 大小:181.13KB
下载 相关 举报
业务流程自定义的实现.docx_第1页
第1页 / 共41页
业务流程自定义的实现.docx_第2页
第2页 / 共41页
业务流程自定义的实现.docx_第3页
第3页 / 共41页
业务流程自定义的实现.docx_第4页
第4页 / 共41页
业务流程自定义的实现.docx_第5页
第5页 / 共41页
业务流程自定义的实现.docx_第6页
第6页 / 共41页
业务流程自定义的实现.docx_第7页
第7页 / 共41页
业务流程自定义的实现.docx_第8页
第8页 / 共41页
业务流程自定义的实现.docx_第9页
第9页 / 共41页
业务流程自定义的实现.docx_第10页
第10页 / 共41页
业务流程自定义的实现.docx_第11页
第11页 / 共41页
业务流程自定义的实现.docx_第12页
第12页 / 共41页
业务流程自定义的实现.docx_第13页
第13页 / 共41页
业务流程自定义的实现.docx_第14页
第14页 / 共41页
业务流程自定义的实现.docx_第15页
第15页 / 共41页
业务流程自定义的实现.docx_第16页
第16页 / 共41页
业务流程自定义的实现.docx_第17页
第17页 / 共41页
业务流程自定义的实现.docx_第18页
第18页 / 共41页
业务流程自定义的实现.docx_第19页
第19页 / 共41页
业务流程自定义的实现.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

业务流程自定义的实现.docx

《业务流程自定义的实现.docx》由会员分享,可在线阅读,更多相关《业务流程自定义的实现.docx(41页珍藏版)》请在冰点文库上搜索。

业务流程自定义的实现.docx

业务流程自定义的实现

业务流程定义创建的表:

XT_LCXX:

流程信息表

XT_JDXX:

节点信息表

(原)

(改过)

XT_LCSL:

流程实例

(原)

(改过)

流程实例表中添加了节点顺序,不再用上节点id,下节点id,功能类似,这样可以方便一个节点的下一个步骤允许两个节点同时操作的情况。

所以稍做了改变。

但是不太确定在其他情况是否都能够满足要求,还在观察中。

LC_LSJL:

历史记录

逻辑顺序:

定义流程时:

1、定义流程客体,即流程中流转被操作的对象;

2、流程中需要经过的步骤,即节点,注意节点的先后顺序;

3、每个步骤中操作该对象的主体,即人员或角色;

这样一个完整的流程就定义好了。

实现界面:

1、

列表为已存在的流程,图片按钮为创建新流程。

2、

点击空的流程时出现起点。

点击已有流程时则展示流程示意图

3、

点击起点按钮时,开始定义节点(第一个)。

4、

第一个节点出现后,鼠标悬停在节点之上时,提示操作人员和操作类型,点击按钮时则出现菜单有3个选择:

添加,修改和删除。

5、

点击增加时,弹出设置节点的窗口,在节点顺序的下拉框中可以选择要添加的节点的顺序,是与当前节点属于同一时间段进行的,还是下一步骤。

点击删除时,直接删除掉该节点。

操作流程时:

1、在创建流程信息表中包含对象的时候,同时向历史记录表中插入一条记录,并标明状态;

2、根据节点表中的操作人员和历史记录中待处理事件列表,选出待“我”处理的任务;

3、处理完成后,相应增加历史记录,表明目前状态,并把本流程上一个状态注销,(若有并行步骤则需添加多条记录);

4、最终完成后该流程的所有记录的状态都注销。

工作流类的设计:

实体类:

有属性:

id,名称等等

有方法:

add、edit、delete,添加的部分有选择添加下个节点是什么类型的有编制、审核、审批、结束

添加的时候,更新到数据库

有三个类:

publicclassLC

publicclassJD

publicclassLCSL

分别是流程类,节点类,和流程实例类。

一、在流程类中

有一个字段:

privatestring_lcid;

有四个属性:

publicstringBz

publicstringLcmc

publicstringLczt

publicstringLcyhid

实例化流程是有两种方法:

1是创建一个数据库中不存在的新流程,需要传入参数:

publicLC(stringlcmc,stringlczt,stringbz,stringyhid)

2是实例化一个数据库中已存在的流程,则只需传入LCID即可:

publicLC(stringlcid)

stringSql_Select="selectt.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bzfromxt_lcxxtwheret.lc_id='"+lcid+"'";

DataTableDt=DBHelper.GetDataSet(Sql_Select);

if(Dt.Rows.Count==1)

{

this._lcmc=Dt.Rows[0]["lc_mc"].ToString();

this._lczt=Dt.Rows[0]["lc_lczt"].ToString();

this._lcyhid=Dt.Rows[0]["lc_yhid"].ToString();

this._bz=Dt.Rows[0]["lc_bz"].ToString();

}

会将其他信息添加到流程类的属性中。

流程类中有方法:

///增加基本流程信息

publicstringAdd_CL()

///修改流程基本信息

publicstringEdit_CL(stringLcid)

publicstringDelete_CL(stringLcid)

在节点类中:

有属性:

publicstringJdid

publicstringCzlx

publicstringCzry

publicstringYhid

publicstringBz

有方法:

///增加一个新节点

publicstringAdd_JD()

///修改节点

publicstringEdit_JD(stringJdid)

///删除节点

publicstringDelete_JD(stringjdid)

实例化节点时,有三种方法1实例化一个空的节点,2实例化一个新的节点(没有节点id),根据节点id实例化一个数据库中已存在的节点(其他属性自动添加)。

三、流程实例类

有属性:

publicstringLcid

publicstringYhid

publicstringBz

有方法:

///向流程添加节点(流程id必须提前设定好)

///节点的层次,001是与上节点同一层次,002是下一层次

publicstringAdd_JdtoLc(stringJdid,stringJdcc)

publicstringDelete_JdFromLc(stringJdid)

必须注意一点,在流程实例中,添加节点和删除节点有点不同:

添加的时候是先用节点类添加一个节点,然后再用流程实例类向流程添加这个节点,而删除的时候直接用流程实例类删除掉节点,因为在Delete_JdFromLc方法中已经调用了Delete_JD方法。

附类的全部代码:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.HtmlControls;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Xml.Linq;

usingSystem.Data.OracleClient;

usingSystem.Collections.Generic;

//usingSystem.ComponentModel;

///

///WorkFlow的摘要说明

///

publicclassWorkFlow

{

publicWorkFlow()

{

//

//TODO:

在此处添加构造函数逻辑

//

}

}

///

///流程(基本信息)实体类,实现流程的增删改

///

publicclassLC

{

///

///实例化空流程

///

publicLC()

{}

///

///实例化准备添加的新流程

///

///

///

///

///

publicLC(stringlcmc,stringlczt,stringbz,stringyhid)

{

this._lcmc=lcmc;

this._lczt=lczt;

this._bz=bz;

this._lcyhid=yhid;

}

///

///实例化数据库中已存在的流程,得到该流程的所有属性

///

///

publicLC(stringlcid)

{

this._lcid=lcid;

try

{

stringSql_Select="selectt.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bzfromxt_lcxxtwheret.lc_id='"+lcid+"'";

DataTableDt=DBHelper.GetDataSet(Sql_Select);

if(Dt.Rows.Count==1)

{

this._lcmc=Dt.Rows[0]["lc_mc"].ToString();

this._lczt=Dt.Rows[0]["lc_lczt"].ToString();

this._lcyhid=Dt.Rows[0]["lc_yhid"].ToString();

this._bz=Dt.Rows[0]["lc_bz"].ToString();

}

}

catch(Exceptione)

{

throwe;

}

}

privatestring_lcid;

privatestring_bz;

publicstringBz

{

get{return_bz;}

set{_bz=value;}

}

privatestring_lcmc;

///

///流程名称

///

publicstringLcmc

{

get{return_lcmc;}

set{_lcmc=value;}

}

privatestring_lczt;

publicstringLczt

{

get{return_lczt;}

set{_lczt=value;}

}

///

///或许在类中可以直接得到登陆的用户id,就不需要再传值了。

///

privatestring_lcyhid;

publicstringLcyhid

{

get{return_lcyhid;}

set{_lcyhid=value;}

}

///

///增加基本流程信息

///

///数据库操作信息或错误信息

publicstringAdd_CL()

{

stringinfo=string.Empty;

try

{

_lcid=DBHelper.GetScalar("selectget_next_id('xt_lcxx','lc_id','LCXX')fromdual").ToString();

stringSql_Insert="insertintoxt_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(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

///

///修改流程基本信息

///

///准备修改的流程id

///

publicstringEdit_CL(stringLcid)

{

stringinfo=string.Empty;

try

{

stringSql_Update="updatext_lcxxsetlc_mc='"+_lcmc+"',lc_yhid='"+_lcyhid+"',lc_xgrq=trunc(sysdate,'dd'),lc_bz='"+_bz+"'wherelc_id='"+Lcid+"'";//流程的id对应主体,不可变

info=DBHelper.ExecuteCommand(Sql_Update).ToString();

}

catch(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

publicstringDelete_CL(stringLcid)

{

stringinfo=string.Empty;

try

{

stringSql_Delete="deletxt_lcxxwherelc_id='"+Lcid+"'";

info=DBHelper.ExecuteCommand(Sql_Delete).ToString();

}

catch(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

}

///

///节点实体类,实现节点的增删改

///

publicclassJD

{

publicJD()

{}

///

///实例化节点实体(已存在的节点)

///

///节点id

publicJD(stringjdid)

{

this._jdid=jdid;

try

{

stringSql_Select="selecta.jd_czry,a.jd_yhdw,a.jd_yhid,a.jd_cjrq,a.jd_bz,a.jd_czlx,a.jd_xgrq,a.jd_scbjfromxt_jdxxawherea.jd_id='"+jdid+"'";

DataTableDt=DBHelper.GetDataSet(Sql_Select);

if(Dt.Rows.Count==1)

{

this._czry=Dt.Rows[0]["jd_czry"].ToString();

this._czlx=Dt.Rows[0]["jd_czlx"].ToString();

this._yhid=Dt.Rows[0]["jd_yhid"].ToString();

this._bz=Dt.Rows[0]["jd_bz"].ToString();

}

}

catch(Exceptione)

{

throwe;

}

}

///

///实例化新节点,(准备添加到数据库)

///

///节点的操作人员

///该记录的添加人员

///备注

publicJD(stringczry,stringczlx,stringyhid,stringbz)

{

this._czry=czry;

this._czlx=czlx;

this._yhid=yhid;

this._bz=bz;

}

privatestring_jdid;

publicstringJdid

{

get{return_jdid;}

set{_jdid=value;}

}

privatestring_czlx;

publicstringCzlx

{

get{return_czlx;}

set{_czlx=value;}

}

privatestring_czry;

publicstringCzry

{

get{return_czry;}

set{_czry=value;}

}

privatestring_yhid;

publicstringYhid

{

get{return_yhid;}

set{_yhid=value;}

}

privatestring_bz;

publicstringBz

{

get{return_bz;}

set{_bz=value;}

}

///

///增加节点

///

///

publicstringAdd_JD()

{

stringinfo=string.Empty;

try

{

_jdid=DBHelper.GetScalar("selectget_next_id('xt_jdxx','jd_id','JDXX')fromdual").ToString();

//this.Jdid=_jdid;

stringSql_Insert="insertintoxt_jdxx(jd_id,jd_czry,jd_yhdw,jd_yhid,jd_cjrq,jd_bz,jd_czlx)values('"+_jdid+"','"+_czry+"',(selectyhxx_yhdwfromxt_yhxxwhereyhxx_id='"+_czry+"'),'"+_yhid+"',trunc(sysdate,'dd'),'"+_bz+"','"+_czlx+"')";

info=DBHelper.ExecuteCommand(Sql_Insert).ToString();

}

catch(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

///

///修改节点

///

///

///

publicstringEdit_JD(stringJdid)

{

stringinfo=string.Empty;

try

{

stringSql_Update="updatext_jdxxxsetx.jd_czry='"+_czry+"',x.jd_yhdw=(selectyhxx_yhdwfromxt_yhxxwhereyhxx_id='"+_czry+"'),x.jd_yhid='"+_yhid+"',x.jd_xgrq=trunc(sysdate,'dd'),x.jd_bz='"+_bz+"',jd_czlx='"+_czlx+"'wherex.jd_id='"+_jdid+"'";

info=DBHelper.ExecuteCommand(Sql_Update).ToString();

}

catch(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

///

///删除节点

///

///

///

publicstringDelete_JD(stringjdid)

{

stringinfo=string.Empty;

try

{

stringSql_Delete="deletext_jdxxwherejd_id='"+jdid+"'";

info=DBHelper.ExecuteCommand(Sql_Delete).ToString();

}

catch(Exceptione)

{

info=e.Message.ToString();

}

returninfo;

}

}

///

///流程实例实体类,实现流程过程的连接

///

publicclassLCSL

{

publicLCSL()

{}

//属性

privatestring_yhid;//用户id

publicstringYhid

{

get{return_yhid;}

set{_yhid=value;}

}

privatestring_bz;//备注

publicstringBz

{

get{return_bz;}

set{_bz=value;}

}

privatestring_lcid;

publicstringLcid

{

get{return_lcid;}

set{_lcid=value;}

}

//方法

///

///向流程添加节点(流程id必须提前设定好)

///

///节点id

///节点的层次,001是与上节点同一层次,002是下一层次

///

publicstringAdd_JdtoLc(stringJdid,stringJdcc)

{

string

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2