📄 dotransact.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;
namespace OI.Document
{
/// <summary>
/// doTransact 的摘要说明。
/// </summary>
public class doTransact : OI.PageBase
{
private OI.DatabaseOper .DatabaseConnect dc = new OI.DatabaseOper.DatabaseConnect();
private string mifagree;
private string mider;
private string mdocumentid;
private string mCuenceNodeId;
private string mTitle;
protected OI.cs .readStream rs;
protected DateTime dtNodeDone;
protected int nCount;
protected string strCurType ;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Session["userid"]==null)
{
Response.Write ("<script>alert('超时,请重新登录');top.location.href='../userpass.aspx';</script>");
Response.End ();
}
if (!IsPostBack)
{
mifagree = Request.Params ["ifagree"].ToString();
mider = Request.Params ["ider"].ToString ();
mdocumentid = Request.Params ["documentid"].ToString ();
mCuenceNodeId = Request.Params ["CuenceNodeId"].ToString ();
mTitle = Request.Params ["title"].ToString ();
if (SaveInfo())
//Response.Redirect("inCollate.aspx",true);
{
if (strCurType=="公文校核")
{
Page.RegisterStartupScript("a","<script>window.location.href='../Document/inCollate.aspx';</script>");
}
if(strCurType=="公文签发")
{
Page.RegisterStartupScript("a","<script>window.location.href='../document/inIdiograph.aspx';</script>");
}
if(strCurType=="公文中转")
{
Page.RegisterStartupScript("a","<script>window.location.href='../transferDocument/willtransfer.aspx';</script>");
}
}
else
{
Page.RegisterStartupScript ("","<script>window.locatin.href='dispTransact.aspx?documentid='"+mdocumentid+"';</script>");
}
}
}
#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
private bool SaveInfo()
{
if(Session["userid"]==null||Session["userid"].ToString ()=="")
{
Page.RegisterStartupScript ("","<script>alert(\"操作时间过长,请重新登录\")</script>");
return false;
}
int nAgree=1;//1为同意,0为不同意
rs=new OI.cs.readStream ();
rs.doucmentID =int.Parse (mdocumentid.Trim ());
int nPreNode=rs.GetPrivateNodeID (mCuenceNodeId );
string sql="SELECT TOP 1 TransactDate FROM DocumentTransact WHERE StepID='"+nPreNode.ToString ()+"' and DocumentID='"+ mdocumentid.Trim ()+"'";
ArrayList al=dc.getData (sql);
if(al.Count >0)
dtNodeDone=DateTime.Parse (al[0].ToString ());
else
{
//Page.RegisterStartupScript ("","<script>alert(\"没有前一个节点\")</script>");
dtNodeDone=DateTime.Today ;
//return;
}
if(mifagree == "同意" ) // modified by lb by 12.20
{
nAgree=1;
}
else
nAgree=0;
//蒲丰增加判断下一个节点是否有人 by 1.11
if(nAgree==1)
{
OI.cs.getUsersByNextID Un=new OI.cs.getUsersByNextID (int.Parse (mdocumentid)) ;
if (!Un.hasUserByNextID ())//判断下一节点是否有处理人
{
Page.RegisterStartupScript ("","<script>alert('请选择下一节点的处理人');window.location.href='dispTransact.aspx?documentid="+mdocumentid+"';</script>");
return false;
}
}
string strCount="select max(backstate) from dbo.DocumentTransact where documentid="+mdocumentid .Trim ();
nCount=int.Parse (dc.GetValueBySql( strCount));
//dc.addData (sql);
//向下一节点发送消息。
endOpration(nAgree);
sendMessage(nAgree);
return true;
}
/// <summary>
/// 发送消息
/// </summary>
private void sendMessage(int nAgree)
{
strCurType=rs.GetCurrentOprateTypeByNodeID (mCuenceNodeId);
string sendmessageNodeID="2";
int Senduserid=int.Parse (Session["userid"].ToString ());
OI.cs.transactDocumentStream tds=new OI.cs.transactDocumentStream (int.Parse (mdocumentid));
if (nAgree==0)
{
sendmessageNodeID=rs.GetPrivateNodeID (mCuenceNodeId).ToString ();
tds.SendMessageToPrivNext (int.Parse( sendmessageNodeID),"公文《"+mTitle+"》“"+strCurType+"”完毕,请你处理!",Senduserid,mTitle);
}
else
{
sendmessageNodeID=rs.GetNextNodeIdByID (mCuenceNodeId);
if (sendmessageNodeID=="2")
{
return ;
}
tds.SendMessageToNode (int.Parse (sendmessageNodeID),"公文《"+mTitle+"》“"+strCurType+"”完毕,请你处理!",Senduserid,mTitle);
}//发送消息“小精灵”的接收人的节点id
}
/// <summary>
/// 结束本节点中的操作,即在message表中将待办事宜置为己办理, document 表中置换节点id.
/// </summary>
private void endOpration(int nAgree)
{
int Senduserid=int.Parse (Session["userid"].ToString ());
int currentnodeid=int.Parse (mCuenceNodeId);
OI.cs.transactDocumentStream tds=new OI.cs.transactDocumentStream (int.Parse (mdocumentid));
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='"+mdocumentid .Trim ()+"'"; //置document表中的节点。
if(goNodeID=="2" )//“同意”并且下一个节点是“完成”结点
{
sqls[0]="UPDATE document SET completesign='1' WHERE DocumentID='"+mdocumentid .Trim ()+"'";
}
//在DocumentTransact表中插入处理记录
string s=" select count(*) from DocumentTransact where DocumentID="+mdocumentid+" 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 +"','"+nAgree+"','"+mdocumentid +"','"+Session["userid"].ToString ()+"','2','"+mider .Trim ().Replace ("'","")+
"','"+DateTime.Now +"','"+ dtNodeDone.AddDays (rs.GetTimeLength (mCuenceNodeId ))+"','"+nCount+"','"+mifagree+"')";
dc.ExcuteSqls (sqls);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -