WorkEdit.aspx.cs
上传用户:simon2hong
上传日期:2021-11-18
资源大小:16746k
文件大小:14k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections.Generic;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. public partial class Work_WorkEdit : System.Web.UI.Page
  12. {
  13.     /// <summary>
  14.     /// 流程模板 
  15.     /// </summary>
  16.     Model.FlowBase MF = new Model.FlowBase();
  17.     /// <summary>
  18.     /// 流程业务
  19.     /// </summary>
  20.     BLL.FlowBase BF = new BLL.FlowBase();
  21.     /// <summary>
  22.     /// 基本步骤模型
  23.     /// </summary>
  24.     Model.FlowBaseStep MR = new Model.FlowBaseStep();
  25.     /// <summary>
  26.     /// 基本步骤业务
  27.     /// </summary>
  28.     BLL.FlowBaseStep BR = new BLL.FlowBaseStep();
  29.     /// <summary>
  30.     /// 基本表单模板
  31.     /// </summary>
  32.     Model.FlowBaseFormContent MFBFC = new Model.FlowBaseFormContent();
  33.     /// <summary>
  34.     /// 基本表单业务
  35.     /// </summary>
  36.     BLL.FlowBaseFormContent BFBFC = new BLL.FlowBaseFormContent();
  37.     /// <summary>
  38.     /// 运行中的工作流模板
  39.     /// </summary>
  40.     Model.FlowRun MoFR = new Model.FlowRun();
  41.     /// <summary>
  42.     /// 运行中的工作流业务
  43.     /// </summary>
  44.     BLL.FlowRun BlFR = new BLL.FlowRun();
  45.     /// <summary>
  46.     /// 会签模板
  47.     /// </summary>
  48.     Model.FlowRunMark MFRMK = new Model.FlowRunMark();
  49.     /// <summary>
  50.     /// 会签业务
  51.     /// </summary>
  52.     BLL.FlowRunMark BFRMK = new BLL.FlowRunMark();
  53.     /// <summary>
  54.     /// 表单被选项
  55.     /// </summary>
  56.     public string BiaoDanSelect
  57.     {
  58.         get { return ViewState["LiuChengBiaoDanSelect"].ToString(); }
  59.         set { ViewState["LiuChengBiaoDanSelect"] = value; }
  60.     
  61.     }
  62.     /// <summary>
  63.     /// 被选步骤项
  64.     /// </summary>
  65.     public string StepID
  66.     {
  67.         get { return ViewState["LiuChengStepID"].ToString(); }
  68.         set { ViewState["LiuChengStepID"] = value; }
  69.     }
  70.     /// <summary>
  71.     /// 流程ID
  72.     /// </summary>
  73.     public string LiuChengID
  74.     {
  75.         get { return ViewState["LiuChengID"].ToString(); }
  76.         set { ViewState["LiuChengID"] = value; }
  77.     }
  78.     /// <summary>
  79.     /// 运行ID
  80.     /// </summary>
  81.     public string RunID
  82.     {
  83.         get { return ViewState["RunID"].ToString(); }
  84.         set { ViewState["RunID"] = value; }
  85.     }
  86.     protected void Page_Load(object sender, EventArgs e)
  87.     {
  88.         LoginLogic.MatchLoad("../", "Work_WorkEdit");
  89.         if (!IsPostBack)
  90.         {
  91.             DropLoadSet();
  92.             MyDataBind();
  93.             //传过来的ID为流程
  94.             if (Request.QueryString["id"] != null)
  95.             {
  96.                 RunID = Request.QueryString["id"].ToString();
  97.                 //获取本运行工作流
  98.                 MoFR = BlFR.GetModel(int.Parse(RunID));
  99.                 
  100.                 //流程ID
  101.                 int BfInt = MoFR.LCID;
  102.                 LiuChengID = BfInt.ToString();
  103.                 MF = BF.GetModel(BfInt);//工作流
  104.                 BiaoDanSelect = MF.BDID.ToString();//表单ID
  105.                 #region 获取其步骤
  106.                 MR = BR.GetPageList(1, 1, "BZSXH", true, "LCID=" + BfInt.ToString() + " and BZSXH=" + MoFR.BZID)[0];//BZSXH步骤顺序号,新建,所以第一步为1
  107.                 #endregion
  108.                 KeyValue_LCMC.Text = MF.LCMC;//流程名称     
  109.                 StepID=MR.ID.ToString();//步骤ID号
  110.                 KeyValue_BZMC.Text = MR.BZMC;//步骤名称
  111.                 KeyValue_BDID.SelectedValue =BiaoDanSelect= MR.BDID.ToString();//表单被选项
  112.                 KeyValue_BZSXH.Text = MR.BZSXH.ToString();//步骤顺序号
  113.                 KeyValue_XYBID.Items.Clear();
  114.                 string XYBXHStr = MR.XYBXH;//下一步顺序列表
  115.                 string[] LIS = XYBXHStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
  116.                 if (LIS[0] != "0")//如果不为结束步骤则提取监督人
  117.                 {
  118.                     foreach (string LI in LIS)
  119.                     {
  120.                         ListItem MyItem = new ListItem();
  121.                         MyItem.Text = GetBZMC(LI, BfInt.ToString());
  122.                         MyItem.Value = LI;
  123.                         KeyValue_XYBID.Items.Add(MyItem);
  124.                     }
  125.                     GetYQLSCCBZRY(KeyValue_XYBID.Items[0].Value, BfInt.ToString());//下一步可以监督的人
  126.                 }
  127.                 else
  128.                 {
  129.                     KeyValue_XYBID.Items.Add("流程结束");
  130.                     KeyValue_YQLSCCBZRY.Items.Add("无");
  131.                     KeyValue_XYBID.Text = "流程结束";
  132.                     KeyValue_YQLSCCBZRY.Text = "无";
  133.                     Button1.Text = "工作结束";
  134.                 }
  135.           
  136.             }
  137.         }
  138.     }
  139.     /// <summary>
  140.     /// 获取下一步步骤名称
  141.     /// </summary>
  142.     /// <param name="XYBXH">下一步序号</param>
  143.     /// <param name="LCID">流程ID</param>
  144.     public string GetBZMC(string XYBXH, string LCID)
  145.     {
  146.         string YQLSCCBZRYStr = "";
  147.         KeyValue_YQLSCCBZRY.Items.Clear();
  148.         Model.FlowBaseStep MyMR = new Model.FlowBaseStep();
  149.         BLL.FlowBaseStep MyBR = new BLL.FlowBaseStep();
  150.         MyMR = MyBR.GetPageList(1, 1, "BZSXH", true, "LCID=" + LCID.ToString() + " and BZSXH=" + XYBXH)[0];//BZSXH步骤顺序号,新建,所以第一步为1
  151.       YQLSCCBZRYStr=MyMR.BZMC;//下一步顺序列表
  152.       return YQLSCCBZRYStr;
  153.     
  154.     }
  155.     /// <summary>
  156.     /// 获取下一步监督执行人
  157.     /// </summary>
  158.     /// <param name="XYBXH">下一步序号</param>
  159.     /// <param name="LCID">流程ID</param>
  160.     public void GetYQLSCCBZRY(string XYBXH,string LCID)
  161.     {
  162.         KeyValue_YQLSCCBZRY.Items.Clear();
  163.         Model.FlowBaseStep MyMR = new Model.FlowBaseStep();
  164.         BLL.FlowBaseStep MyBR = new BLL.FlowBaseStep();
  165.         MyMR = MyBR.GetPageList(1, 1, "BZSXH", true, "LCID=" + LCID.ToString() + " and BZSXH=" + XYBXH)[0];//BZSXH步骤顺序号,新建,所以第一步为1
  166.         string YQLSCCBZRYStr = MyMR.YQLSCCBZRY;//下一步顺序列表
  167.         string[] LIS = YQLSCCBZRYStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
  168.         foreach (string LI in LIS)
  169.         {
  170.             KeyValue_YQLSCCBZRY.Items.Add(LI);
  171.         }
  172.     }
  173.     public void DropLoadSet()
  174.     {
  175.         //流程分类
  176.         KeyValue_LCFL.DataTextField = "FLMC";
  177.         KeyValue_LCFL.DataValueField = "ID";
  178.         KeyValue_LCFL.DataSource = EnumGet.FlowBaseTypeGetEnum();
  179.         KeyValue_LCFL.DataBind();
  180.         KeyValue_LCFL.SelectedIndex = KeyValue_LCFL.Items.Count - 1;
  181.         //表单分类
  182.         KeyValue_BDID.DataTextField = "BDMC";
  183.         KeyValue_BDID.DataValueField = "ID";
  184.         KeyValue_BDID.DataSource = EnumGet.FlowBaseFormGetEnum();
  185.         KeyValue_BDID.DataBind();
  186.         KeyValue_BDID.SelectedIndex = KeyValue_BDID.Items.Count - 1;
  187.     }
  188.     protected void Button1_Click(object sender, EventArgs e)
  189.     {
  190.         
  191.         try
  192.         {
  193.           //表单
  194.           string FormStr= CONTENT.Value;
  195.           //笔迹
  196.           string PenStr=PenCONTENT.Value;  
  197.           //意见
  198.           if (MyIdea.Text == "")
  199.           {
  200.               throw new Exception("我的意见不能为空!");
  201.           }
  202.           #region 流程运行表
  203.           Model.FlowRun FLR = new Model.FlowRun();
  204.           BLL.FlowRun BLR = new BLL.FlowRun();
  205.           FLR = BLR.GetModel(int.Parse(RunID));
  206.           //FLR.FQR = SessionInclude.SessionId;//(发起人)
  207.           FLR.XBR = KeyValue_YQLSCCBZRY.Text;//(现办人)
  208.           //FLR.JSR = "";//(结束人)
  209.           // FLR.LCID =int.Parse(LiuChengID);//(现在已经办道的步骤ID)
  210.           if (Button1.Text == "工作结束")
  211.           {
  212.               FLR.BZID = 0;
  213.           }
  214.           else
  215.           {
  216.               FLR.BZID = int.Parse(KeyValue_XYBID.SelectedValue);//就是顺序号
  217.           }
  218.           FLR.BDNR = FormStr;//表单内容
  219.           //FLR.FQSJ = DateTime.Now;//发起时间
  220.           FLR.ZHCZSJ = DateTime.Now;//最后操作时间
  221.        
  222.           if (Button1.Text == "工作结束")
  223.           {
  224.               FLR.YXZT = "结束";
  225.               FLR.JSSJ = DateTime.Now;
  226.               FLR.JSR = SessionInclude.SessionId;
  227.           }
  228.           //FLR.ID = int.Parse(RunID);
  229.           BLR.Update(FLR);
  230.           #endregion
  231.           int YXID = int.Parse(RunID);//运行表的ID
  232.           
  233.           #region 意见会签表
  234.           Model.FlowRunMark MFRM = new Model.FlowRunMark();
  235.           BLL.FlowRunMark BFRM = new BLL.FlowRunMark();
  236.           MFRM.YXID = YXID;//运行表的ID
  237.           MFRM.BZID = int.Parse(StepID);//就是顺序号-步骤ID
  238.           MFRM.LCID = FLR.LCID;//流程ID
  239.           MFRM.QSYJR = SessionInclude.SessionId;//签署意见人
  240.           MFRM.QSYJ = MyIdea.Text;//签署意见
  241.           MFRM.BJ = PenStr;//笔迹)
  242.           //上传附件 
  243.           MFRM.FJDZ = UPdateFile();
  244.           BFRM.Add(MFRM);
  245.           #endregion
  246.           if (Button1.Text == "工作结束")
  247.           {
  248.               MessageBox.Show("工作结束!", "WorkList.aspx");
  249.               #region 消息发送
  250.               SMSSend.Send(SessionInclude.SessionId, FLR.FQR, "您有工作已经结束,请查看!", "Work/WorkView.aspx?id=" + YXID.ToString(), SMSType.普通发送);
  251.               if (CheckBox_Tel.Checked)
  252.               {
  253.                   SMSSend.Send(SessionInclude.SessionId, KeyValue_YQLSCCBZRY.Text, "您有工作已经结束,请查看!", "Work/WorkEdit.aspx?id=" + YXID.ToString(), SMSType.短信发送);
  254.               }
  255.               #endregion
  256.           }
  257.           else
  258.           {
  259.               MessageBox.Show("转交成功!", "WorkList.aspx");
  260.               #region 消息发送
  261.               SMSSend.Send(SessionInclude.SessionId, KeyValue_YQLSCCBZRY.Text, "有工作需要您办理!", "Work/WorkEdit.aspx?id=" + YXID.ToString(), SMSType.普通发送);
  262.               if (CheckBox_Tel.Checked)
  263.               {
  264.                   SMSSend.Send(SessionInclude.SessionId, KeyValue_YQLSCCBZRY.Text, "有工作需要您办理!", "Work/WorkEdit.aspx?id=" + YXID.ToString(), SMSType.短信发送);
  265.               }
  266.               #endregion              
  267.           }
  268.         }
  269.         catch(Exception exp)
  270.         {
  271.             MessageBox.Show(exp.Message);
  272.         }
  273.     }
  274.     /// <summary>
  275.     /// 上传一个文件
  276.     /// </summary>
  277.     /// <returns></returns>
  278.     public string UPdateFile()
  279.     {
  280.         if (!string.IsNullOrEmpty(this.KeyValue_FJPath.PostedFile.FileName))
  281.         {
  282.             string fulname = this.KeyValue_FJPath.PostedFile.FileName;
  283.             string filename = fulname.Substring(fulname.LastIndexOf("\") + 1);
  284.             string type = fulname.Substring(fulname.LastIndexOf(".") + 1);
  285.             if (type == "aspx" || type == "asp" || type == "exe")
  286.             {
  287.                 throw new Exception("不允许上传执行性文件");
  288.             }
  289.             string GuidStr = Guid.NewGuid().ToString() + "-" + filename;
  290.             string FileUpdatePathFull = AppDomain.CurrentDomain.BaseDirectory + "Work\UpLoadFiles\" + GuidStr;
  291.             this.KeyValue_FJPath.PostedFile.SaveAs(FileUpdatePathFull);
  292.             return GuidStr;
  293.         }
  294.         else
  295.         {
  296.             return "";
  297.         }
  298.     }
  299.     protected void KeyValue_XYBID_SelectedIndexChanged(object sender, EventArgs e)
  300.     {
  301.         GetYQLSCCBZRY(KeyValue_XYBID.SelectedValue, LiuChengID);//下一步可以监督的人
  302.     }
  303.     /// <summary>
  304.     /// 获取信息
  305.     /// </summary>
  306.     /// <param name="pidx">页号</param>
  307.     public void MyDataBind()
  308.     {
  309.         string TiaoJian = "";
  310.         if (Request.QueryString["id"] != null)
  311.         {
  312.             TiaoJian = "YXID=" + Request.QueryString["id"].ToString();
  313.         }
  314.         int RecordCount = BFRMK.GetCount(TiaoJian);
  315.         List<Model.FlowRunMark> LRData = BFRMK.GetPageList(RecordCount, 1, "ID", true, TiaoJian);
  316.         if (LRData.Count == 0)
  317.         {
  318.             Model.FlowRunMark MR = new Model.FlowRunMark();
  319.         
  320.             LRData.Add(MR);
  321.         }
  322.         GridView1.DataSource = LRData;
  323.         GridView1.DataBind();
  324.     }
  325.     /// <summary>
  326.     /// 获取顺序号
  327.     /// </summary>
  328.     /// <returns></returns>
  329.     public string ShunXuHao()
  330.     {
  331.         string RtStr = "";
  332.         int Bzid = int.Parse(Eval("BZID").ToString());
  333.         Model.FlowBaseStep MFBS = new BLL.FlowBaseStep().GetModel(Bzid);
  334.         RtStr = MFBS.BZSXH.ToString();
  335.         return RtStr ;
  336.     }
  337.     /// <summary>
  338.     /// 获取顺序号
  339.     /// </summary>
  340.     /// <returns></returns>
  341.     public string MingCheng()
  342.     {
  343.         string RtStr = "";
  344.         int Bzid = int.Parse(Eval("BZID").ToString());
  345.         Model.FlowBaseStep MFBS = new BLL.FlowBaseStep().GetModel(Bzid);
  346.         RtStr = MFBS.BZMC.ToString();
  347.         return RtStr;
  348.     }
  349.     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  350.     {
  351.         for (int i = 0; i < GridView1.Rows.Count; i++)
  352.         {
  353.             //首先判断是否是数据行
  354.             if (e.Row.RowType == DataControlRowType.DataRow)
  355.             {
  356.                 //当鼠标停留时更改背景色
  357.                 e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#F0F0F0'");
  358.                 //当鼠标移开时还原背景色
  359.                 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
  360.             }
  361.         }
  362.     }
  363. }