⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transact.aspx.cs

📁 很不错的公文流转系统
💻 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 + -