tijian_tieying/web/Web/NWorkFlow/NWorkToDoAdd.aspx.cs
2025-02-20 12:14:39 +08:00

461 lines
20 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
/// <summary>
/// 设置下一节点具体属性、当前判断权限、可写、保密等
/// </summary>
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");
}
}
/// <summary>
/// 根据审批模式字符串设置页面显示
/// </summary>
/// <param name="SPStr"></param>
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") + "')");
}
}
/// <summary>
/// 加载表单内容、初始化表单
/// </summary>
/// <param name="FormName"></param>
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") + "'"));
}
/// <summary>
/// 检测条件然后返回下一字段否则返回默认节点ID
/// </summary>
/// <returns></returns>
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);
}
/// <summary>
/// 比较两个字符串,返回结果是否正确
/// </summary>
/// <param name="Str1"></param>
/// <param name="Str2"></param>
/// <param name="BiJiaoTiaoJian"></param>
/// <param name="LeiXing"></param>
/// <returns></returns>
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;
}
}
}
/// <summary>
/// 判断条件返回下一节点ID
/// </summary>
/// <param name="FormCcontent"></param>
/// <param name="TiaoJianStr"></param>
/// <param name="WorkFlowIDStr"></param>
/// <returns></returns>
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("<script>window.open('../DsoFramer/ReadFile.aspx?FilePath=" + this.CheckBoxList1.SelectedItem.Value + "');</script>");
}
}
catch
{ }
}
protected void ImageButton6_Click(object sender, ImageClickEventArgs e)
{
try
{
if (this.CheckBoxList1.SelectedItem.Text.Trim().Length > 0)
{
Response.Write("<script>window.open('../DsoFramer/EditFile.aspx?FilePath=" + this.CheckBoxList1.SelectedItem.Value + "');</script>");
}
}
catch
{ }
}
}