📄 transact.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml ;
namespace OI.transferDocument
{
/// <summary>
/// transact 的摘要说明。
/// </summary>
public class transact : System.Web.UI.Page
{
protected string documentid;
protected string mCuenceNodeId,mTitle;
protected int nCount ,nAgree;
protected cs.readStream rs;
protected OI.DatabaseOper .DatabaseConnect dc=new OI.DatabaseOper.DatabaseConnect ();
private void Page_Load(object sender, System.EventArgs e)
{
if (Session["userid"]==null)
{
Response.Write ("{alert('超时,请重新登录!');top.location.href='../userpass.aspx';}");
return ;
}
if (!Page.IsPostBack )
{
try
{
XmlDocument d = new System.Xml.XmlDocument();
d.Load (Request.InputStream );
XmlNode DocumentID =d.SelectSingleNode ("//DocumentID");
documentid=DocumentID.InnerText ;
nAgree=int.Parse (d.SelectSingleNode ("//ngree").InnerText);
Transact(int.Parse (documentid));
}
catch(Exception er)
{
Response.Write ("{document.write('"+er.Message+"')}" );
}
}
}
private void Transact(int documentid)
{
rs=new OI.cs.readStream ();
rs.doucmentID =documentid;
if (!hasNextTransactMan(documentid))
{
return ;
}
mCuenceNodeId=dc.GetObjectBySql ("select CurrentStepID from document where documentid="+documentid.ToString ()).ToString ();
mTitle=dc.GetObjectBySql ("select title from document where documentid="+documentid.ToString ()).ToString ();
string strCount="select max(backstate) from dbo.DocumentTransact where documentid="+documentid.ToString () ;
nCount=int.Parse (dc.GetValueBySql( strCount));
//dc.addData (sql);
//向下一节点发送消息。
endOpration( documentid);
sendMessage( documentid);
Response.Write ("{window.location.href='willTransfer.aspx';}");
}
private bool hasNextTransactMan(int documentid)
{
OI.cs.getUsersByNextID Un=new OI.cs.getUsersByNextID (documentid) ;
if (!Un.hasUserByNextID ())//判断下一节点是否有处理人
{
Response.Write ("{alert('请选择下一节点的处理人');}");
return false;
}
return true;
}
/// <summary>
/// 发送消息
/// </summary>
private void sendMessage(int documentid)
{
string sendmessageNodeID="2";
int Senduserid=int.Parse (Session["userid"].ToString ());
OI.cs.transactDocumentStream tds=new OI.cs.transactDocumentStream (documentid);
if (nAgree==0)
{
sendmessageNodeID=rs.GetPrivateNodeID (mCuenceNodeId).ToString ();
tds.SendMessageToPrivNext (int.Parse( sendmessageNodeID),"公文《"+mTitle+"》“公文中转”完毕,请你处理!",Senduserid,mTitle);
}
else
{
sendmessageNodeID=rs.GetNextNodeIdByID (mCuenceNodeId);
if (sendmessageNodeID=="2")
{
return ;
}
tds.SendMessageToNode (int.Parse (sendmessageNodeID),"公文《"+mTitle+"》“公文中转”完毕,请你处理!",Senduserid,mTitle);
}//发送消息“小精灵”的接收人的节点id
}
/// <summary>
/// 结束本节点中的操作,即在message表中将待办事宜置为己办理, document 表中置换节点id.
/// </summary>
private void endOpration(int documentid)
{
int Senduserid=int.Parse (Session["userid"].ToString ());
int currentnodeid=int.Parse (mCuenceNodeId);
OI.cs.transactDocumentStream tds=new OI.cs.transactDocumentStream (documentid);
tds.finishCurrentNodeOprate (currentnodeid,Senduserid);
string []sqls =new string [2];
string goNodeID ;
if (nAgree==0)
{
goNodeID=rs.GetPrivateNodeID (mCuenceNodeId).ToString (); //不同意把id置为 上一节点ID。
if (rs.GetNodeTypeByID(goNodeID)=="公文起草")//如果上一节点为公文起草,则id置为0.
{
goNodeID="0";
}
}
else //同意id置为下一个节点id
{
goNodeID=rs.GetNextNodeIdByID (mCuenceNodeId);
}
sqls[0] ="UPDATE document SET CurrentStepID='"+goNodeID+"' WHERE DocumentID='"+documentid.ToString ()+"'"; //置document表中的节点。
if(goNodeID=="2" )//“同意”并且下一个节点是“完成”结点
{
sqls[0]="UPDATE document SET completesign='1' WHERE DocumentID='"+documentid.ToString ()+"'";
}
//在DocumentTransact表中插入处理记录
string s=" select count(*) from DocumentTransact where DocumentID="+documentid.ToString ()+" and stepid="+mCuenceNodeId +" and backstate="+ nCount.ToString ()+" and userid="+Session["userid"] ;
string o=dc.GetObjectBySql (s).ToString ();
if (int.Parse ( o)>0)
{
nCount++;
}
sqls[1]="INSERT INTO DocumentTransact(StepID,ManageID,DocumentID,UserID,TransactSign,Idea,TransactDate,TransactLimitDate,backstate,transtype) "+
"VALUES('"+mCuenceNodeId +"',4,'"+documentid.ToString () +"','"+Session["userid"].ToString ()+"','2','"+""+
"','"+DateTime.Now +"',null,'"+nCount+"','中转')";
dc.ExcuteSqls (sqls);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -