Пример #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     //需要加上验证权限,发起人,经办人,审核人可查看进程,只要任意一步骤有该权限
     userID = buser.GetLogin().UserID;
     if (function.isAjax())//处理AJAX
     {
         #region AJAX
         string action = Request.Form["action"];
         string value  = Request.Form["value"];
         string result = "0";
         switch (action)
         {
         case "PostDate":
             int      id   = Convert.ToInt32(value.Split(':')[0]);
             DateTime date = Convert.ToDateTime(value.Split(':')[1]);
             progBll.UpdateDate(userID, id, date);
             result = "1";
             break;
         }
         Response.Write(result); Response.Flush(); Response.End();
         #endregion
     }
     DataTable dt = buser.SelByUserID(userID);//用于验证是否有主办或经办权限,已改为与角色绑定,可以不需要使用dt
     oaMod = oaBll.SelReturnModel(appID);
     if (oaMod.Status == (int)ZLEnum.ConStatus.Filed)
     {
         Response.Redirect("FlowView.aspx?action=filed&appid=" + appID);
     }
     if (!IsPostBack)
     {
         #region 权限检测
         M_UserInfo sendmu = buser.GetSelect(oaMod.UserID);
         M_UserInfo mu     = buser.GetLogin();
         ascx = proceBll.SelReturnModel(oaMod.ProID).FlowTlp;
         //回退权限
         if (CurrentStep.HToption > 0)
         {
             if (oaMod.CurStepNum == 0)//如果为起始步,则不管是否有权限都不显示
             {
             }
             else
             {
                 rollBackSpan.Visible = true;
                 rollBackBtn.Visible  = true;
                 if (CurrentStep.HToption == 1)
                 {
                     rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                 }
                 else if (CurrentStep.HToption == 2)
                 {
                     FreeDPDataBind();
                     rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                 }
             }
         }
         //转交权限
         if (CurrentStep.Qzzjoption > 0)
         {
             if (stepBll.IsLastStep(CurrentStep))//如果是最后一步,则也不显示
             {
             }
             else
             {
                 zjSpan.Visible = true;
                 ZJDataBind();
                 zjDP.Items.Insert(0, new ListItem("下一步", "-1"));
             }
         }
         #region 签章
         DataTable signDT = signBll.SelByUserID(buser.GetLogin().UserID);
         if (oaMod.IsComplete)
         {
             signTr.Visible = false;
         }
         else if (signDT != null && signDT.Rows.Count > 0)
         {
             SignRadioBind(signDT);
         }
         else
         {
             signTrRemind.Visible = true;
         }
         SignImgBind();
         #endregion
         //-------------------经办,审阅等权限
         #region 是否是经办,抄送或发起人
         if (CurrentStep.Auth(M_MisProLevel.AuthEnum.Refer, dt))
         {
             //拥有经办权限
             agreeBtn.Visible  = true;
             rejectBtn.Visible = true;
             //检测用户有无修改编号或表单的权限,如果有的话,则显示修改表单栏
             SaveForm_Btn.Visible = true;
             //formop_tr.Visible = true;
         }
         else if (CurrentStep.Auth(M_MisProLevel.AuthEnum.CCUser, dt))
         {
             //拥有抄送权限
             DisAllAuth();
             signTr.Visible  = true;
             ccOPBar.Visible = true;
             if (progBll.CheckApproval(buser.GetLogin().UserID, CurrentStep.stepNum, oaMod.ID))
             {
                 signTr.Visible     = false;
                 ccUser_Btn.Visible = false;
                 ccUser_Lab.Visible = true;
             }
         }
         else if (oaMod.UserID == userID)//发起人查看文件
         {
             DisAllAuth();
         }
         else
         {
             function.WriteErrMsg("你当前无权限批复该公文!!");
         }
         #endregion
         //附件删除权限,拥有权限和附件的时候才显示
         if (CurrentStep.PublicAttachOption > 0 && !string.IsNullOrEmpty(oaMod.PublicAttach))
         {
             //delAttachBtn.Visible = true;
         }
         //显示附件
         if (!string.IsNullOrEmpty(oaMod.PublicAttach))
         {
             function.Script(this, "ZL_Webup.AddReadOnlyLi('" + oaMod.PublicAttach + "');");
         }
         //会签
         if (CurrentStep.HQoption > 0)
         {
             string ids = progBll.SelHQUserID(appID, CurrentStep.stepNum);
             hqTr.Visible = true;
             hqL.Text     = buser.GetUserNameByIDS(ids);
             //如果用户已会签,则不显示拒绝与同意
             if (ids.Split(',').Select(p => p).Contains(buser.GetLogin().UserID.ToString()))
             {
                 opBar.Visible = false;
             }
             //显示未会签人
             string[] allUser = CurrentStep.ReferUser.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
             string   ids2    = StrHelper.RemoveRepeat(allUser, ids.Split(','));//未会签用户
             if (string.IsNullOrEmpty(ids2.Replace(",", "")))
             {
                 unHql.Text = "(办理完成!!!)";
             }
             else
             {
                 unHql.Text = "(尚未办理:" + buser.GetUserNameByIDS(ids2) + ")";
             }
         }
         if (oaMod.Status == -1 || oaMod.Status == 99 || oaMod.Status == 98)
         {
             //如果当前流程已完成,或已被拒绝
             //opBar.Visible = false;
             //delAttachBtn.Visible = false;
         }
         //该栏与上一栏只能显示一个
         if (oaMod.Status == 98 && freeBll.IsLastFreeStep(CurrentStep))//是自由流程,已同意,并且是最后一步时,显示该栏
         {
             if (oaMod.ProType == (int)M_MisProcedure.ProTypes.Free)
             {
                 Free_OP_Tr.Visible = HasNextAuth(CurrentStep, oaMod, mu);
             }
             else if (oaMod.ProType == (int)M_MisProcedure.ProTypes.AdminFree)
             {
                 AdminFree_OP_Tr.Visible = HasNextAuth(CurrentStep, oaMod, mu);
             }
         }
         #region 数据绑定
         //ProceName_L.Text = oaMod.Title;
         ////titleL.Text = oaMod.Title;
         if (!string.IsNullOrEmpty(oaMod.PrivateAttach))
         {
             function.Script(this, "ShowWord();");
         }
         SendMan_L.Text         = sendmu.HoneyName;
         stepNameL.Text         = CurrentStep.stepName;
         OAFormUI.SendDate_ASCX = oaMod.SendDate.ToString();
         createTimeL.Text       = oaMod.SendDate.ToString("yyyy年MM月dd日 HH:mm");
         //txt_Content.Text = oaCom.ReplaceHolder(oaMod);
         ModelID = Convert.ToInt32(proceBll.SelReturnModel(oaMod.ProID).FormInfo);
         DataTable dtContent = conBll.GetContent(Convert.ToInt32(oaMod.Content));
         OAFormUI.InitControl(ViewState, ModelID);
         if (dtContent != null && dtContent.Rows.Count > 0)
         {
             OAFormUI.dataRow = dtContent.Rows[0];
             OAFormUI.MyBind();
         }
         OAFormUI.Title_ASCX = oaMod.Title;
         OAFormUI.NO_ASCX    = oaMod.No;
         DataTable authDT = perBll.SelAuthByRoles(mu.UserRole);
         OAFormUI.No_ASCX_T.Enabled = perBll.CheckAuth(authDT, "oa_pro_no");
         DataBind();
         #endregion
         #endregion
     }
 }
        /*
         *第一步,则不显示回退
         *最后一步,不允许转交
         *一切以CurStepNum为准,必须维护好这个数值
         */
        protected void Page_Load(object sender, EventArgs e)
        {
            userID = buser.GetLogin().UserID;
            if (function.isAjax())//处理AJAX
            {
                string action = Request.Form["action"];
                string value  = Request.Form["value"];
                string result = "0";
                switch (action)
                {
                case "PostDate":
                    int      id   = Convert.ToInt32(value.Split(':')[0]);
                    DateTime date = Convert.ToDateTime(value.Split(':')[1]);
                    try
                    {
                        progBll.UpdateDate(userID, id, date);
                        result = "1";
                    }
                    catch { }
                    break;
                }
                Response.Write(result); Response.Flush(); Response.End();
            }
            EGV.txtFunc = txtPageFunc;
            appID       = DataConverter.CLng(Request.QueryString["AppID"]);
            DataTable dt = buser.SelByUserID(buser.GetLogin().UserID);

            oaMod = oaBll.SelReturnModel(appID);
            if (!IsPostBack)
            {
                M_UserInfo mu = buser.GetSelect(oaMod.UserID);
                //回退权限
                if (CurrentStep.HToption > 0)
                {
                    if (oaMod.CurStepNum == 0)//如果为起始步,则不管是否有权限都不显示
                    {
                    }
                    else
                    {
                        rollBackSpan.Visible = true;
                        rollBackBtn.Visible  = true;
                        if (CurrentStep.HToption == 1)
                        {
                            rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                        }
                        else if (CurrentStep.HToption == 2)
                        {
                            if (oaMod.IsFreePro)
                            {
                                FreeDPDataBind();
                            }
                            else
                            {
                                DPDataBind();
                            }
                            rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                        }
                    }
                }
                //转交权限
                if (CurrentStep.Qzzjoption > 0)
                {
                    if (stepBll.IsLastStep(CurrentStep))//如果是最后一步,则也不显示
                    {
                    }
                    else
                    {
                        zjSpan.Visible = true;
                        ZJDataBind();
                        zjDP.Items.Insert(0, new ListItem("下一步", "-1"));
                    }
                }
                #region 签章
                DataTable signDT = signBll.SelByUserID(buser.GetLogin().UserID);
                if (oaMod.IsComplete)
                {
                    signTr.Visible = false;
                }
                else if (signDT != null && signDT.Rows.Count > 0)
                {
                    SignRadioBind(signDT);
                }
                else
                {
                    signTrRemind.Visible = true;
                }
                SignImgBind();
                #endregion
                //-------------------经办,审阅等权限
                if (CurrentStep.Auth(M_MisProLevel.AuthEnum.Refer, dt))
                {
                    //拥有经办权限
                    agreeBtn.Visible  = true;
                    rejectBtn.Visible = true;
                }
                else if (CurrentStep.Auth(M_MisProLevel.AuthEnum.CCUser, dt))
                {
                    //拥有抄送权限
                    DisAllAuth();
                    signTr.Visible  = true;
                    ccOPBar.Visible = true;
                    if (progBll.CheckApproval(buser.GetLogin().UserID, CurrentStep.stepNum, oaMod.ID))
                    {
                        signTr.Visible     = false;
                        ccUser_Btn.Visible = false;
                        ccUser_Lab.Visible = true;
                    }
                }
                else if (oaMod.UserID == userID)
                {
                    //发起人查看文件
                    DisAllAuth();
                }
                else
                {
                    function.WriteErrMsg("你当前无权限批复该公文!!");
                }
                //附件删除权限,拥有权限和附件的时候才显示
                if (CurrentStep.PublicAttachOption > 0 && !string.IsNullOrEmpty(oaMod.PublicAttach))
                {
                    //delAttachBtn.Visible = true;
                }
                //显示附件
                if (!string.IsNullOrEmpty(oaMod.PublicAttach))
                {
                    string[] af = oaMod.PublicAttach.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    string   h  = "";
                    for (int i = 0; i < af.Length; i++)
                    {
                        h += "<span class='disupFile'>";
                        h += GroupPic.GetShowExtension(GroupPic.GetExtName(af[i]));
                        string filename = Path.GetExtension(af[i]).ToLower().Replace(".", "");
                        if (filename == "docx" || filename == "doc" || filename == "xls" || filename == "xlsx")
                        {
                            h += af[i].Split('/')[(af[i].Split('/').Length - 1)] + "</a><a class='filea' href='/Common/ShowFlash.aspx?path=" + Server.UrlEncode(af[i]) + "&type=1' target='_blank'>(预览)</a><a href='" + af[i] + "'>(下载)</span>";
                        }
                        else
                        {
                            h += "<a href='" + af[i] + "' title='点击下载'>" + af[i].Split('/')[(af[i].Split('/').Length - 1)] + "</a></span>";
                        }
                    }
                    publicAttachTD.InnerHtml = h;
                }
                //会签
                if (CurrentStep.HQoption > 0)
                {
                    string ids = progBll.SelHQUserID(appID, CurrentStep.stepNum);
                    hqTr.Visible = true;
                    hqL.Text     = buser.GetUserNameByIDS(ids);
                    //如果用户已会签,则不显示拒绝与同意
                    if (ids.Split(',').Select(p => p).Contains(buser.GetLogin().UserID.ToString()))
                    {
                        opBar.Visible = false;
                    }
                    //显示未会签人
                    string[] allUser = CurrentStep.ReferUser.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    string   ids2    = RemoveRepeat(allUser, ids.Split(','));//未会签用户
                    if (string.IsNullOrEmpty(ids2.Replace(",", "")))
                    {
                        unHql.Text = "(会签完成!!!)";
                    }
                    else
                    {
                        unHql.Text = "(尚未会签:" + buser.GetUserNameByIDS(ids2) + ")";
                    }
                }
                if (oaMod.Status == -1 || oaMod.Status == 99 || oaMod.Status == 98)
                {
                    //如果当前流程已完成,或已被拒绝
                    //opBar.Visible = false;
                    //delAttachBtn.Visible = false;
                }
                //该栏与上一栏只能显示一个,逻辑上问题,当前是第三步,但第三步未处理完
                if (oaMod.IsFreePro && oaMod.Status == 98 && freeBll.IsLastStep(oaMod, CurrentStep))//是自由流程,已同意,并且是最后一步时,显示该栏
                {
                    Free_OP_Tr.Visible = true;
                }
                titleL.Text      = oaMod.Title;
                sendManL.Text    = mu.HoneyName;
                stepNameL.Text   = CurrentStep.stepName;
                createTimeL.Text = oaMod.CreateTime.ToString("yyyy年MM月dd日 HH:mm");
                if (oaMod.UserID == userID)//签名占位符同样筛选后输出
                {
                    txt_Content.Text = oaCom.ReplaceHolder(oaMod);
                }
                else
                {
                    txt_Content.Text = oaCom.ReplaceHolder(oaMod, "ApproveID =" + userID);
                }
                DataBind();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //需要加上验证权限,发起人,经办人,审核人可查看进程,只要任意一步骤有该权限
            userID = buser.GetLogin().UserID;
            if (function.isAjax())//处理AJAX
            {
                string action = Request.Form["action"];
                string value  = Request.Form["value"];
                string result = "0";
                switch (action)
                {
                case "PostDate":
                    int      id   = Convert.ToInt32(value.Split(':')[0]);
                    DateTime date = Convert.ToDateTime(value.Split(':')[1]);
                    progBll.UpdateDate(userID, id, date);
                    result = "1";
                    break;
                }
                Response.Write(result); Response.Flush(); Response.End();
            }
            DataTable dt = buser.SelByUserID(buser.GetLogin().UserID);

            oaMod = oaBll.SelReturnModel(appID);
            if (!IsPostBack)
            {
                M_UserInfo mu = buser.GetSelect(oaMod.UserID);
                //回退权限
                if (CurrentStep.HToption > 0)
                {
                    if (oaMod.CurStepNum == 0)//如果为起始步,则不管是否有权限都不显示
                    {
                    }
                    else
                    {
                        rollBackSpan.Visible = true;
                        rollBackBtn.Visible  = true;
                        if (CurrentStep.HToption == 1)
                        {
                            rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                        }
                        else if (CurrentStep.HToption == 2)
                        {
                            if (oaMod.IsFreePro)
                            {
                                FreeDPDataBind();
                            }
                            else
                            {
                                DPDataBind();
                            }
                            rollBackDP.Items.Insert(0, new ListItem("回退至上一步", "-1"));
                        }
                    }
                }
                //转交权限
                if (CurrentStep.Qzzjoption > 0)
                {
                    if (stepBll.IsLastStep(CurrentStep))//如果是最后一步,则也不显示
                    {
                    }
                    else
                    {
                        zjSpan.Visible = true;
                        ZJDataBind();
                        zjDP.Items.Insert(0, new ListItem("下一步", "-1"));
                    }
                }
                #region 签章
                DataTable signDT = signBll.SelByUserID(buser.GetLogin().UserID);
                if (oaMod.IsComplete)
                {
                    signTr.Visible = false;
                }
                else if (signDT != null && signDT.Rows.Count > 0)
                {
                    SignRadioBind(signDT);
                }
                else
                {
                    signTrRemind.Visible = true;
                }
                SignImgBind();
                #endregion
                //-------------------经办,审阅等权限
                if (CurrentStep.Auth(M_MisProLevel.AuthEnum.Refer, dt))
                {
                    //拥有经办权限
                    agreeBtn.Visible  = true;
                    rejectBtn.Visible = true;
                }
                else if (CurrentStep.Auth(M_MisProLevel.AuthEnum.CCUser, dt))
                {
                    //拥有抄送权限
                    DisAllAuth();
                    signTr.Visible  = true;
                    ccOPBar.Visible = true;
                    if (progBll.CheckApproval(buser.GetLogin().UserID, CurrentStep.stepNum, oaMod.ID))
                    {
                        signTr.Visible     = false;
                        ccUser_Btn.Visible = false;
                        ccUser_Lab.Visible = true;
                    }
                }
                else if (oaMod.UserID == userID)//发起人查看文件
                {
                    DisAllAuth();
                }
                else
                {
                    function.WriteErrMsg("你当前无权限批复该公文!!");
                }
                //附件删除权限,拥有权限和附件的时候才显示
                if (CurrentStep.PublicAttachOption > 0 && !string.IsNullOrEmpty(oaMod.PublicAttach))
                {
                    //delAttachBtn.Visible = true;
                }
                //显示附件
                if (!string.IsNullOrEmpty(oaMod.PublicAttach))
                {
                    function.Script(this, "ZL_Webup.AddReadOnlyLi('" + oaMod.PublicAttach + "');");
                }
                //会签
                if (CurrentStep.HQoption > 0)
                {
                    string ids = progBll.SelHQUserID(appID, CurrentStep.stepNum);
                    hqTr.Visible = true;
                    hqL.Text     = buser.GetUserNameByIDS(ids);
                    //如果用户已会签,则不显示拒绝与同意
                    if (ids.Split(',').Select(p => p).Contains(buser.GetLogin().UserID.ToString()))
                    {
                        opBar.Visible = false;
                    }
                    //显示未会签人
                    string[] allUser = CurrentStep.ReferUser.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    string   ids2    = StrHelper.RemoveRepeat(allUser, ids.Split(','));//未会签用户
                    if (string.IsNullOrEmpty(ids2.Replace(",", "")))
                    {
                        unHql.Text = "(会签完成!!!)";
                    }
                    else
                    {
                        unHql.Text = "(尚未会签:" + buser.GetUserNameByIDS(ids2) + ")";
                    }
                }
                if (oaMod.Status == -1 || oaMod.Status == 99 || oaMod.Status == 98)
                {
                    //如果当前流程已完成,或已被拒绝
                    //opBar.Visible = false;
                    //delAttachBtn.Visible = false;
                }
                //该栏与上一栏只能显示一个,逻辑上问题,当前是第三步,但第三步未处理完
                if (oaMod.IsFreePro && oaMod.Status == 98 && freeBll.IsLastStep(oaMod, CurrentStep))//是自由流程,已同意,并且是最后一步时,显示该栏
                {
                    Free_OP_Tr.Visible = true;
                }
                ProceName_L.Text = oaMod.Title;
                //titleL.Text = oaMod.Title;
                sendManL.Text    = mu.UserName;
                stepNameL.Text   = CurrentStep.stepName;
                createTimeL.Text = oaMod.CreateTime.ToString("yyyy年MM月dd日 HH:mm");
                //txt_Content.Text = oaCom.ReplaceHolder(oaMod);
                ShowPage(oaMod);
                DataBind();
            }
        }