using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class NWorkFlow_NWorkToDoAdd : System.Web.UI.Page
{
public string PiLiangSet = "";//批量设置字段的可写、保密属性
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ZWL.Common.PublicMethod.CheckSession();
//设置上传的附件为空
ZWL.Common.PublicMethod.SetSessionValue("WenJianList", "");
//加载表单内容
GetFormContent(Request.QueryString["FormID"].ToString());
//绑定工作名称
this.txtWorkName.Text = ZWL.Common.PublicMethod.GetSessionValue("UserName") + "--" + ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 WorkFlowName from ERPNWorkFlow where ID=" + Request.QueryString["WorkFlowID"].ToString()) + "(" + DateTime.Now.ToShortDateString() + ")";
//绑定下一节点
string[] NextStrList = ZWL.DBUtility.DbHelperSQL.GetSHSL("select NextNode from ERPNWorkFlowNode where WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString() + " and NodeAddr='开始'").Split(',');
for (int i = 0; i < NextStrList.Length; i++)
{
ListItem MyItem = new ListItem();
MyItem.Value = ZWL.DBUtility.DbHelperSQL.GetSHSL("select ID from ERPNWorkFlowNode where NodeSerils='" + NextStrList[i].ToString() + "' and WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString());//根据序号和workflowID获得节点ID
MyItem.Text = "节点序号:" + NextStrList[i].ToString() + "--节点名称:" + ZWL.DBUtility.DbHelperSQL.GetSHSL("select NodeName from ERPNWorkFlowNode where NodeSerils='" + NextStrList[i].ToString() + "' and WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString());
if (MyItem.Value.ToString().Length > 0)
{
this.DropDownList3.Items.Add(MyItem);
}
}
SetNodeInfoAndSet();
}
//刷新界面后,将label1赋值
this.Label1.Text = this.TextBox3.Text;
}
///
/// 设置下一节点具体属性、当前判断权限、可写、保密等
///
public void SetNodeInfoAndSet()
{
try
{
//根据选择的节点,绑定人员等信息。
ZWL.BLL.ERPNWorkFlowNode MyJieDian = new ZWL.BLL.ERPNWorkFlowNode();
MyJieDian.GetModel(int.Parse(this.DropDownList3.SelectedItem.Value.ToString()));
this.TextBox1.Text = MyJieDian.PSType;
this.TextBox2.Text = MyJieDian.SPType;
//根据审批模式设置页面
SetPageFromPSStr(MyJieDian.SPType, MyJieDian.SPDefaultList);
//当前开始节点是否有查看、编辑、删除按钮?当前按钮属性
string NowNodeID = ZWL.DBUtility.DbHelperSQL.GetSHSLInt("select ID from ERPNWorkFlowNode where WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString() + " and NodeAddr='开始'");
ZWL.BLL.ERPNWorkFlowNode MyJieDianNow = new ZWL.BLL.ERPNWorkFlowNode();
MyJieDianNow.GetModel(int.Parse(NowNodeID));
if (MyJieDianNow.IFCanDel == "否")
{
this.ImageButton3.Visible = false;
}
if (MyJieDianNow.IFCanView == "否")
{
this.ImageButton5.Visible = false;
}
if (MyJieDianNow.IFCanEdit == "否")
{
this.ImageButton6.Visible = false;
}
//获取当前表单对应的工作数据列
string[] FormItemList = ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 ItemsList from ERPNForm where ID=" + Request.QueryString["FormID"].ToString()).Split('|');
//获取当前节点的可写权限、保密权限
string CanWriteStr = MyJieDianNow.CanWriteSet;
string SecretStr = MyJieDianNow.SecretSet;
for (int ItemNum = 0; ItemNum < FormItemList.Length; ItemNum++)
{
if (FormItemList[ItemNum].ToString().Trim().Length > 0)
{
if (ZWL.Common.PublicMethod.StrIFIn(FormItemList[ItemNum].ToString(), CanWriteStr) == false)//不属于可写字段
{
PiLiangSet = PiLiangSet + "document.getElementById(\"" + FormItemList[ItemNum].ToString().Split('_')[0] + "\").disabled=true;";//readOnly
}
else
{
PiLiangSet = PiLiangSet + "document.getElementById(\"" + FormItemList[ItemNum].ToString().Split('_')[0] + "\").disabled=false;";//readOnly
}
if (ZWL.Common.PublicMethod.StrIFIn(FormItemList[ItemNum].ToString(), SecretStr) == true)//属于保密字段
{
PiLiangSet = PiLiangSet + "document.getElementById(\"" + FormItemList[ItemNum].ToString().Split('_')[0] + "\").style.visibility=\"hidden\";";
}
else
{
PiLiangSet = PiLiangSet + "document.getElementById(\"" + FormItemList[ItemNum].ToString().Split('_')[0] + "\").style.visibility=\"visible\";";
}
}
}
}
catch (Exception ex)
{
ZWL.Common.MessageBox.ShowAndRedirect(this, "该流程下一节点未定义完整,请配置完整!"+ex.Message, "NWorkToDoSelect.aspx");
}
}
///
/// 根据审批模式字符串设置页面显示
///
///
public void SetPageFromPSStr(string SPStr, string DefultStr)
{
if (SPStr == "审批时自由指定")
{
this.TextBox5.Text = "";
}
else if (SPStr == "从默认审批人中选择")
{
this.TextBox5.Text = DefultStr;
}
else if (SPStr == "从默认审批部门中选择")
{
string SqlWhere = "";
string[] DefultList = DefultStr.Split(',');
for (int i = 0; i < DefultList.Length; i++)
{
if (SqlWhere.Trim().Length > 0)
{
SqlWhere = SqlWhere + " or " + " ','+Department+',' like '%," + DefultList[i].ToString() + ",%' ";
}
else
{
SqlWhere = " ','+Department+',' like '%," + DefultList[i].ToString() + ",%' ";
}
}
this.TextBox5.Text = ZWL.DBUtility.DbHelperSQL.GetStringList("select UserName from ERPUser where " + SqlWhere).Replace("|", ",");
}
else if (SPStr == "从默认审批角色中选择")
{
string SqlWhere = "";
string[] DefultList = DefultStr.Split(',');
for (int i = 0; i < DefultList.Length; i++)
{
if (SqlWhere.Trim().Length > 0)
{
SqlWhere = SqlWhere + " or " + " ','+JiaoSe+',' like '%," + DefultList[i].ToString() + ",%' ";
}
else
{
SqlWhere = " ','+JiaoSe+',' like '%," + DefultList[i].ToString() + ",%' ";
}
}
this.TextBox5.Text = ZWL.DBUtility.DbHelperSQL.GetStringList("select UserName from ERPUser where " + SqlWhere).Replace("|", ",");
}
else if (SPStr == "自动选择流程发起人")
{
this.TextBox5.Text = ZWL.Common.PublicMethod.GetSessionValue("UserName");
}
else if (SPStr == "自动选择本部门主管")
{
this.TextBox5.Text = ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 ChargeMan from ERPBuMen where BuMenName='" + ZWL.Common.PublicMethod.GetSessionValue("Department") + "'");
}
else if (SPStr == "自动选择上级部门主管")
{
this.TextBox5.Text = ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 ChargeMan from ERPBuMen where ID=(select top 1 DirID from ERPBuMen where BuMenName='" + ZWL.Common.PublicMethod.GetSessionValue("Department") + "')");
}
}
///
/// 加载表单内容、初始化表单
///
///
protected void GetFormContent(string FormID)
{
this.TextBox3.Text = ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 ContentStr from ERPNForm where ID=" + FormID);
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-用户部门", ZWL.Common.PublicMethod.GetSessionValue("Department"));
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-用户姓名", ZWL.Common.PublicMethod.GetSessionValue("UserName"));
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-用户角色", ZWL.Common.PublicMethod.GetSessionValue("JiaoSe"));
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-用户职位", ZWL.Common.PublicMethod.GetSessionValue("ZhiWei"));
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-当前日期", DateTime.Now.ToShortDateString());
this.TextBox3.Text = this.TextBox3.Text.Replace("宏控件-部门主管", ZWL.DBUtility.DbHelperSQL.GetSHSL("select top 1 ChargeMan from ERPBuMen where BuMenName='" + ZWL.Common.PublicMethod.GetSessionValue("Department") + "'"));
}
///
/// 检测条件,然后返回下一字段,否则返回默认节点ID
///
///
public int CheckCondition(string DefaultNodeID)
{
//格式如:DEFG_请假天数→大于→10→3|ABCD_请假天数→大于→10→3
string[] TiaoJianList = ZWL.DBUtility.DbHelperSQL.GetSHSL("select ConditionSet from ERPNWorkFlowNode where WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString() + " and NodeAddr='开始'").Split('|');
for (int i = 0; i < TiaoJianList.Length; i++)
{
if (TiaoJianList[i].Trim().Length > 0)
{
string NextIDStr = CheckTiaoJian(TiaoJianList[i].ToString());
if (NextIDStr != "0")
{
return int.Parse(NextIDStr);
}
}
}
return int.Parse(DefaultNodeID);
}
///
/// 比较两个字符串,返回结果是否正确
///
///
///
///
///
///
protected bool BiaoJiaoTwoStr(string Str1, string Str2, string BiJiaoTiaoJian)
{
try
{
double A1 = double.Parse(Str1);
double A2 = double.Parse(Str2); //大于 大于等于 小于 小于等于 等于 不等于 包含 不包含
if (BiJiaoTiaoJian == "大于" && A1 > A2)
{
return true;
}
else if (BiJiaoTiaoJian == "大于等于" && A1 >= A2)
{
return true;
}
else if (BiJiaoTiaoJian == "小于" && A1 < A2)
{
return true;
}
else if (BiJiaoTiaoJian == "小于等于" && A1 <= A2)
{
return true;
}
else if (BiJiaoTiaoJian == "等于" && A1 == A2)
{
return true;
}
else if (BiJiaoTiaoJian == "不等于" && A1 != A2)
{
return true;
}
else if (BiJiaoTiaoJian == "包含" && ZWL.Common.PublicMethod.StrIFIn(Str2, Str1))
{
return true;
}
else if (BiJiaoTiaoJian == "不包含")
{
if (ZWL.Common.PublicMethod.StrIFIn(Str2, Str1))
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
catch
{
if (BiJiaoTiaoJian == "等于" && Str1 == Str2)
{
return true;
}
else if (BiJiaoTiaoJian == "不等于" && Str1 != Str2)
{
return true;
}
else if (BiJiaoTiaoJian == "包含" && ZWL.Common.PublicMethod.StrIFIn(Str2, Str1))
{
return true;
}
else if (BiJiaoTiaoJian == "不包含")
{
if (ZWL.Common.PublicMethod.StrIFIn(Str2, Str1))
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
}
///
/// 判断条件,返回下一节点ID
///
///
///
///
///
protected string CheckTiaoJian(string TiaoJianStr)
{
//条件格式如:ABCD_请假天数→大于→10→3
string ZiDuanStrEN = TiaoJianStr.Split('_')[0]; //字段名称EN 如:ABCD
string ZiDuanStrCN = TiaoJianStr.Split('_')[1]; //字段名称CN 如:请假天数
string BiJiaoStr = TiaoJianStr.Split('→')[1]; //条件比较 如:大于
string ZhiStr = TiaoJianStr.Split('→')[2];//比较的值,如: 10
string JieDianXuHaoStr = TiaoJianStr.Split('→')[3];//跳转的节点序号,如: 3
string NowValue = "";
try
{
NowValue = Request.Form[ZiDuanStrEN].ToString();
}
catch
{ }
if (BiaoJiaoTwoStr(NowValue, ZhiStr, BiJiaoStr) == true)
{
return ZWL.DBUtility.DbHelperSQL.GetSHSLInt("select top 1 ID from ERPNWorkFlowNode where NodeSerils='" + JieDianXuHaoStr + "' and WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString());
}
else
{
return "0";
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ZWL.BLL.ERPNWorkToDo Model = new ZWL.BLL.ERPNWorkToDo();
Model.WorkName = this.txtWorkName.Text;
Model.FormID = int.Parse(Request.QueryString["FormID"].ToString());
Model.WorkFlowID = int.Parse(Request.QueryString["WorkFlowID"].ToString());
Model.UserName = ZWL.Common.PublicMethod.GetSessionValue("UserName");
Model.TimeStr = DateTime.Now;
Model.FormContent = this.TextBox3.Text;
Model.FuJianList = ZWL.Common.PublicMethod.GetSessionValue("WenJianList");
Model.ShenPiYiJian = "";
try
{
if (CheckBox1.Checked == true)
{
//条件未找到或者没有匹配项时,采用选择好的节点
Model.JieDianID = int.Parse(this.DropDownList3.SelectedValue.ToString());
try
{
///////////根据条件获取下一审批节点信息
Model.JieDianID = CheckCondition(this.DropDownList3.SelectedValue.ToString());
}
catch
{
Model.JieDianID = int.Parse(this.DropDownList3.SelectedValue.ToString());
}
}
else
{
Model.JieDianID = int.Parse(this.DropDownList3.SelectedValue.ToString());
}
Model.JieDianName = ZWL.DBUtility.DbHelperSQL.GetSHSL("select NodeName from ERPNWorkFlowNode where ID=" + Model.JieDianID.ToString());
Model.StateNow = "正在办理";
}
catch
{
Model.JieDianName = "结束";
Model.StateNow = "强制结束";
}
Model.ShenPiUserList = ZWL.Common.PublicMethod.WorkWeiTuoUserList(this.TextBox5.Text.Trim());
Model.ChaoSongUserList = ZWL.Common.PublicMethod.WorkWeiTuoUserList(this.txtChaoSong.Text.Trim());
Model.OKUserList = "默认";
Model.LateTime = DateTime.Now.AddHours(double.Parse(ZWL.DBUtility.DbHelperSQL.GetSHSLInt("select top 1 JieShuHours from ERPNWorkFlowNode where ID=" + Model.JieDianID.ToString())));
Model.Add();
if (Model.StateNow == "正在办理")
{
//发送短信
SendMainAndSms.SendMessage(CHKSMS, CHKMOB, "您有新的工作需要办理!(" + this.txtWorkName.Text + ")", ZWL.Common.PublicMethod.WorkWeiTuoUserList(this.TextBox5.Text.Trim()));
SendMainAndSms.SendMessage(CHKSMS1, CHKMOB1, "您有新的抄送工作!(" + this.txtWorkName.Text + ")", ZWL.Common.PublicMethod.WorkWeiTuoUserList(this.txtChaoSong.Text.Trim()));
}
else
{
SendMainAndSms.SendMessage(CHKSMS, CHKMOB, "您的工作已经被强制结束!(" + this.txtWorkName.Text + ")", ZWL.Common.PublicMethod.GetSessionValue("UserName"));
}
//写系统日志
ZWL.BLL.ERPRiZhi MyRiZhi = new ZWL.BLL.ERPRiZhi();
MyRiZhi.UserName = ZWL.Common.PublicMethod.GetSessionValue("UserName");
MyRiZhi.DoSomething = "用户添加新工作信息(" + this.txtWorkName.Text + ")";
MyRiZhi.IpStr = System.Web.HttpContext.Current.Request.UserHostAddress.ToString();
MyRiZhi.Add();
ZWL.Common.MessageBox.ShowAndRedirect(this, "审批工作添加成功!", "NWorkToDo.aspx?FormID=" + Request.QueryString["FormID"].ToString() + "&WorkFlowID=" + Request.QueryString["WorkFlowID"].ToString());
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
string FileNameStr = ZWL.Common.PublicMethod.UploadFileIntoDir(this.FileUpload1, DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName));
if (ZWL.Common.PublicMethod.GetSessionValue("WenJianList").Trim() == "")
{
ZWL.Common.PublicMethod.SetSessionValue("WenJianList", FileNameStr);
}
else
{
ZWL.Common.PublicMethod.SetSessionValue("WenJianList", ZWL.Common.PublicMethod.GetSessionValue("WenJianList") + "|" + FileNameStr);
}
ZWL.Common.PublicMethod.BindDDL(this.CheckBoxList1, ZWL.Common.PublicMethod.GetSessionValue("WenJianList"));
}
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
try
{
for (int i = 0; i < this.CheckBoxList1.Items.Count; i++)
{
if (this.CheckBoxList1.Items[i].Selected == true)
{
ZWL.Common.PublicMethod.SetSessionValue("WenJianList", ZWL.Common.PublicMethod.GetSessionValue("WenJianList").Replace(this.CheckBoxList1.Items[i].Value, "").Replace("||", "|"));
}
}
ZWL.Common.PublicMethod.BindDDL(this.CheckBoxList1, ZWL.Common.PublicMethod.GetSessionValue("WenJianList"));
}
catch
{ }
}
protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
{
SetNodeInfoAndSet();
}
protected void ImageButton5_Click(object sender, ImageClickEventArgs e)
{
try
{
if (this.CheckBoxList1.SelectedItem.Text.Trim().Length > 0)
{
Response.Write("");
}
}
catch
{ }
}
protected void ImageButton6_Click(object sender, ImageClickEventArgs e)
{
try
{
if (this.CheckBoxList1.SelectedItem.Text.Trim().Length > 0)
{
Response.Write("");
}
}
catch
{ }
}
}