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

OA系统

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  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_WorkAdd : 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.     public string BiaoDanSelect
  41.     {
  42.         get { return ViewState["LiuChengBiaoDanSelect"].ToString(); }
  43.         set { ViewState["LiuChengBiaoDanSelect"] = value; }
  44.     
  45.     }
  46.     /// <summary>
  47.     /// 被选步骤项
  48.     /// </summary>
  49.     public string StepID
  50.     {
  51.         get { return ViewState["LiuChengStepID"].ToString(); }
  52.         set { ViewState["LiuChengStepID"] = value; }
  53.     }
  54.     /// <summary>
  55.     /// 流程ID
  56.     /// </summary>
  57.     public string LiuChengID
  58.     {
  59.         get { return ViewState["LiuChengID"].ToString(); }
  60.         set { ViewState["LiuChengID"] = value; }
  61.     }
  62.     protected void Page_Load(object sender, EventArgs e)
  63.     {
  64.         LoginLogic.MatchLoad("../", "Work_WorkAdd");
  65.         if (!IsPostBack)
  66.         {
  67.             DropLoadSet();
  68.             //传过来的ID为流程
  69.             if (Request.QueryString["id"] != null)
  70.             {
  71.                 LiuChengID = Request.QueryString["id"].ToString();
  72.                 //流程ID
  73.                 int BfInt = int.Parse(LiuChengID);
  74.                 MF = BF.GetModel(BfInt);//工作流
  75.                 BiaoDanSelect = MF.BDID.ToString();//表单ID
  76.                 #region 获取第一步
  77.                 MR = BR.GetPageList(1, 1, "BZSXH", true, "LCID=" + BfInt.ToString() + " and BZSXH=1")[0];//BZSXH步骤顺序号,新建,所以第一步为1
  78.                 #endregion
  79.                 KeyValue_LCMC.Text = MF.LCMC;
  80.                 StepID= MR.ID.ToString();//步骤ID
  81.                 KeyValue_BZMC.Text = MR.BZMC;//步骤名称
  82.                 KeyValue_BDID.SelectedValue =BiaoDanSelect= MR.BDID.ToString();//表单被选项
  83.                 KeyValue_BZSXH.Text = MR.BZSXH.ToString();//步骤顺序号
  84.                 KeyValue_XYBID.Items.Clear();
  85.                 string XYBXHStr = MR.XYBXH;//下一步顺序列表
  86.                 string[] LIS = XYBXHStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
  87.                 foreach (string LI in LIS)
  88.                 {
  89.                     ListItem MyItem = new ListItem();
  90.                     MyItem.Text = GetBZMC(LI, BfInt.ToString());
  91.                     MyItem.Value = LI;
  92.                     KeyValue_XYBID.Items.Add(MyItem);
  93.                 }
  94.                 GetYQLSCCBZRY(KeyValue_XYBID.Items[0].Value,BfInt.ToString());//下一步可以监督的人
  95.           
  96.             }
  97.         }
  98.     }
  99.     /// <summary>
  100.     /// 获取下一步步骤名称
  101.     /// </summary>
  102.     /// <param name="XYBXH">下一步序号</param>
  103.     /// <param name="LCID">流程ID</param>
  104.     public string GetBZMC(string XYBXH, string LCID)
  105.     {
  106.         string YQLSCCBZRYStr = "";
  107.         KeyValue_YQLSCCBZRY.Items.Clear();
  108.         Model.FlowBaseStep MyMR = new Model.FlowBaseStep();
  109.         BLL.FlowBaseStep MyBR = new BLL.FlowBaseStep();
  110.         MyMR = MyBR.GetPageList(1, 1, "BZSXH", true, "LCID=" + LCID.ToString() + " and BZSXH=" + XYBXH)[0];//BZSXH步骤顺序号,新建,所以第一步为1
  111.       YQLSCCBZRYStr=MyMR.BZMC;//下一步顺序列表
  112.       return YQLSCCBZRYStr;
  113.     
  114.     }
  115.     /// <summary>
  116.     /// 获取下一步监督执行人
  117.     /// </summary>
  118.     /// <param name="XYBXH">下一步序号</param>
  119.     /// <param name="LCID">流程ID</param>
  120.     public void GetYQLSCCBZRY(string XYBXH,string LCID)
  121.     {
  122.         KeyValue_YQLSCCBZRY.Items.Clear();
  123.         Model.FlowBaseStep MyMR = new Model.FlowBaseStep();
  124.         BLL.FlowBaseStep MyBR = new BLL.FlowBaseStep();
  125.         MyMR = MyBR.GetPageList(1, 1, "BZSXH", true, "LCID=" + LCID.ToString() + " and BZSXH=" + XYBXH)[0];//BZSXH步骤顺序号,新建,所以第一步为1
  126.         string YQLSCCBZRYStr = MyMR.YQLSCCBZRY;//下一步顺序列表
  127.         string[] LIS = YQLSCCBZRYStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
  128.         foreach (string LI in LIS)
  129.         {
  130.             KeyValue_YQLSCCBZRY.Items.Add(LI);
  131.         }
  132.     }
  133.     public void DropLoadSet()
  134.     {
  135.         //流程分类
  136.         KeyValue_LCFL.DataTextField = "FLMC";
  137.         KeyValue_LCFL.DataValueField = "ID";
  138.         KeyValue_LCFL.DataSource = EnumGet.FlowBaseTypeGetEnum();
  139.         KeyValue_LCFL.DataBind();
  140.         KeyValue_LCFL.SelectedIndex = KeyValue_LCFL.Items.Count - 1;
  141.         //表单分类
  142.         KeyValue_BDID.DataTextField = "BDMC";
  143.         KeyValue_BDID.DataValueField = "ID";
  144.         KeyValue_BDID.DataSource = EnumGet.FlowBaseFormGetEnum();
  145.         KeyValue_BDID.DataBind();
  146.         KeyValue_BDID.SelectedIndex = KeyValue_BDID.Items.Count - 1;
  147.     }
  148.     protected void Button1_Click(object sender, EventArgs e)
  149.     {
  150.         try
  151.         {
  152.           //表单
  153.           string FormStr= CONTENT.Value;
  154.           //笔迹
  155.           string PenStr=PenCONTENT.Value;  
  156.           //意见
  157.           if (MyIdea.Text == "")
  158.           {
  159.               throw new Exception("我的意见不能为空!");
  160.           }
  161.           #region 流程运行表
  162.           Model.FlowRun FLR = new Model.FlowRun();
  163.           BLL.FlowRun BLR = new BLL.FlowRun();
  164.           FLR.FQR = SessionInclude.SessionId;//(发起人)
  165.           FLR.XBR = KeyValue_YQLSCCBZRY.Text;//(现办人)
  166.           FLR.JSR = "";//(结束人)
  167.           FLR.LCID =int.Parse(LiuChengID);//(现在已经办道的步骤ID)
  168.           FLR.BZID =int.Parse(KeyValue_XYBID.SelectedValue);//就是顺序号
  169.           FLR.BDNR = FormStr;//表单内容
  170.           FLR.FQSJ = DateTime.Now;//发起时间
  171.           FLR.ZHCZSJ = DateTime.Now;//最后操作时间
  172.           FLR.JSSJ = DateTime.Parse("1985-10-29");//结束时间)
  173.           FLR.YXZT = "运行中";
  174.           BLR.Add(FLR);          
  175.           #endregion
  176.           int YXID= BLR.GetPageList(1, 1, "id", false, "")[0].ID;//运行表的ID
  177.           
  178.           #region 意见会签表
  179.           Model.FlowRunMark MFRM = new Model.FlowRunMark();
  180.           BLL.FlowRunMark BFRM = new BLL.FlowRunMark();
  181.           MFRM.YXID = YXID;//运行表的ID
  182.           MFRM.BZID = int.Parse(StepID);//就是顺序号-步骤ID
  183.           MFRM.LCID =int.Parse(LiuChengID);//流程ID
  184.           MFRM.QSYJR = SessionInclude.SessionId;//签署意见人
  185.           MFRM.QSYJ = MyIdea.Text;//签署意见
  186.           MFRM.BJ = PenStr;//笔迹)
  187.           //上传附件 
  188.           MFRM.FJDZ = UPdateFile();
  189.           BFRM.Add(MFRM);
  190.           #endregion
  191.           #region 消息发送 
  192.           SMSSend.Send(SessionInclude.SessionId, KeyValue_YQLSCCBZRY.Text,"有工作需要您办理!", "Work/WorkEdit.aspx?id=" + YXID.ToString(), SMSType.普通发送);
  193.           if (CheckBox_Tel.Checked)
  194.           {
  195.               SMSSend.Send(SessionInclude.SessionId, KeyValue_YQLSCCBZRY.Text, "有工作需要您办理!", "Work/WorkEdit.aspx?id=" + YXID.ToString(), SMSType.短信发送);
  196.           }      
  197.           #endregion
  198.           MessageBox.Show("添加成功!", "WorkList.aspx");
  199.         }
  200.         catch(Exception exp)
  201.         {
  202.             MessageBox.Show(exp.Message);
  203.         }
  204.     }
  205.     /// <summary>
  206.     /// 上传一个文件
  207.     /// </summary>
  208.     /// <returns></returns>
  209.     public string UPdateFile()
  210.     {
  211.         if (!string.IsNullOrEmpty(this.KeyValue_FJPath.PostedFile.FileName))
  212.         {
  213.             string fulname = this.KeyValue_FJPath.PostedFile.FileName;
  214.             string filename = fulname.Substring(fulname.LastIndexOf("\") + 1);
  215.             string type = fulname.Substring(fulname.LastIndexOf(".") + 1);
  216.             if (type == "aspx" || type == "asp" || type == "exe")
  217.             {
  218.                 throw new Exception("不允许上传执行性文件");
  219.             }
  220.             string GuidStr = Guid.NewGuid().ToString() + "-" + filename;
  221.             string FileUpdatePathFull = AppDomain.CurrentDomain.BaseDirectory + "Work\UpLoadFiles\" + GuidStr;
  222.             this.KeyValue_FJPath.PostedFile.SaveAs(FileUpdatePathFull);
  223.             return GuidStr;
  224.         }
  225.         else
  226.         {
  227.             return "";
  228.         }
  229.     }
  230.     protected void KeyValue_XYBID_SelectedIndexChanged(object sender, EventArgs e)
  231.     {
  232.         GetYQLSCCBZRY(KeyValue_XYBID.SelectedValue, LiuChengID);//下一步可以监督的人
  233.     }
  234. }