コード例 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int id = Convert.ToInt32(Request.QueryString["ID"]);
                moa                  = boa.SelReturnModel(id);
                minfo                = buser.SeachByID(moa.UserID);
                this.LBTitle.Text    = moa.Title;
                this.LBKeyWords.Text = moa.Keywords;
                this.AddUSer.Text    = minfo.HoneyName;
                this.AddTime.Text    = moa.CreateTime.ToString();
                M_MisProLevel freeMod = freeBll.SelByDocID(id);
                if (freeMod != null)
                {
                    if (freeMod.ProID == 0)
                    {
                        preViewBtn.Visible = false;
                    }
                    RUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.ReferUser);

                    CUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.CCUser);
                    RUserID_Hid.Value  = freeMod.ReferUser;
                    CUserID_Hid.Value  = freeMod.CCUser;
                }
            }
        }
コード例 #2
0
        // 返回当前需要进行的流程模型,如果无流程,或流已完结,返回最后一步模型
        //仅用于处理自由流程(另一页面改为只处理自由流程)
        public M_MisProLevel GetNextLevel()
        {
            //CurStepNum:指定当前进行到的步骤
            M_MisProLevel model = new M_MisProLevel();

            //获取下一级
            oaMod = oaBll.SelReturnModel(appID);          //公文模型
            if (oaMod.Status == -1 || oaMod.Status == 99) //如果已经处理完成,则返回最后一步模型
            {
                model = freeBll.SelByProIDAndStepNum(oaMod.ID, oaMod.CurStepNum);
                return(model);
            }
            DataTable progDT = progBll.SelByAppID(appID.ToString()); //已进行到的流程
            DataTable freeDT = freeBll.SelDTByDocID(oaMod.ID);       //全部自由流程

            if (oaMod.CurStepNum == 0)                               //步骤为0时,加载第一步
            {
                if (freeDT == null || freeDT.Rows.Count < 1)
                {
                    function.WriteErrMsg("该自由流程未指定投递人!!!");
                }
                model = model.GetModelFromDR(freeDT.Rows[0]);//用第一个填充,其值是经过Level排序的
            }
            else
            {
                model = freeBll.SelByProIDAndStepNum(oaMod.ID, oaMod.CurStepNum); //获取上一步骤的模型
                if (!freeBll.IsLastFreeStep(model))                               //如果不是最后一步,则进一位
                {
                    model = freeBll.SelByProIDAndStepNum(oaMod.ID, (oaMod.CurStepNum + 1));
                }
            }
            return(model);
        }
コード例 #3
0
ファイル: B_Mis_AppProg.cs プロジェクト: baixue001/IPS
        /// <summary>
        /// 指定步骤的会签是否已完成,true:已完成
        /// </summary>
        public bool HQ_IsComplete(M_OA_Document oaMod, M_MisProLevel stepMod, int uid, string role = "refer")
        {
            string hashq = "", nohq = "";

            HQ_GetHasAndNot(oaMod, stepMod, uid, role, ref hashq, ref nohq);
            return(string.IsNullOrEmpty(nohq));
        }
コード例 #4
0
    public void CreateFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param)
    {
        M_MisProLevel freeMod = null;

        if (param.IsFirst)
        {
            freeMod = freeBll.SelByDocID(oaMod.ID);
        }
        else if (param.StepID > 0)//修改步骤
        {
            freeMod = freeBll.SelReturnModel(param.StepID);
        }
        bool isUpdate = true;

        if (freeMod == null)//非修改则新建
        {
            isUpdate = false;
            freeMod  = new M_MisProLevel();
        }
        freeMod.ProID               = proceMod.ID;
        freeMod.stepNum             = param.StepNum;
        freeMod.stepName            = proceMod.ProcedureName + "第" + param.StepNum + "步";
        freeMod.SendMan             = buser.GetLogin().UserID.ToString();
        freeMod.ReferUser           = param.ReferUser.Trim(',');
        freeMod.ReferGroup          = "";
        freeMod.CCUser              = param.CCUser.Trim(',');
        freeMod.CCGroup             = "";
        freeMod.HQoption            = 1;
        freeMod.Qzzjoption          = 0;
        freeMod.HToption            = 2;
        freeMod.EmailAlert          = "";
        freeMod.EmailGroup          = "";
        freeMod.SmsAlert            = "";
        freeMod.SmsGroup            = "";
        freeMod.BackOption          = oaMod.ID;
        freeMod.PublicAttachOption  = 1;
        freeMod.PrivateAttachOption = 1;
        freeMod.DocAuth             = "refer";
        freeMod.Status              = 1;
        freeMod.CreateTime          = DateTime.Now;
        freeMod.Remind              = oaMod.Title + "的流程";
        if (isUpdate)
        {
            freeBll.UpdateByID(freeMod);
        }
        else
        {
            freeBll.Insert(freeMod);
            if (!param.IsFirst)//非起始步骤修改,则更新状态
            {
                oaMod.Status = 0;
                oaBll.UpdateByID(oaMod);
            }
        }
    }
コード例 #5
0
 protected string UpdateOrder(string Ids)
 {
     string[] idsArr = Ids.Split(',');
     for (int i = 0; i < idsArr.Length; i++)
     {
         stepMod         = stepBll.SelReturnModel(DataConvert.CLng(idsArr[i]));
         stepMod.stepNum = i + 1;
         stepBll.UpdateByID(stepMod);
     }
     return("1");
 }
コード例 #6
0
        /// <summary>
        /// 是否最后一步
        /// </summary>
        public bool IsLastStep(M_MisProLevel currentModel)
        {
            bool      flag = false;
            DataTable dt   = SelByProID(currentModel.ProID);

            model = model.GetModelFromDR(dt.Rows[(dt.Rows.Count - 1)]);
            if (model.stepNum == currentModel.stepNum)
            {
                flag = true;
            }
            return(flag);
        }
コード例 #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         SafeSC.Submit_Begin(this.ViewState);
         if (string.IsNullOrEmpty(Request.QueryString["AppID"]))
         {
             function.WriteErrMsg("未指定公文ID");
         }
         else
         {
             //只有上一级经办人有权限继续指定流程
             //M_MisProLevel fMod = freeBll.GetLastStep(AppID);
             //if (!fMod.ReferUser.Contains("," + buser.GetLogin().UserID + ",")) function.WriteErrMsg("只有上一级经办人才有权限修改该流程");
             if (StepID > 0)//修改步骤
             {
                 return_Btn.Visible = true;
                 freeMod            = freeBll.SelReturnModel(StepID);
                 moa = boa.SelReturnModel(AppID);
                 //-----Auth
                 if (!moa.IsFreePro)
                 {
                     function.WriteErrMsg("非自由流程,不允许自指定步骤");
                 }
                 if (freeMod.BackOption != AppID)
                 {
                     function.WriteErrMsg("公文与步骤数据不匹配,取消访问!!!");
                 }
                 if (moa.CurStepNum >= freeMod.stepNum)
                 {
                     function.WriteErrMsg("该步骤已执行,不允许修改!!!");
                 }
                 //-----
                 ReferUser_T.Text    = buser.GetUserNameByIDS(freeMod.ReferUser);
                 ReferUser_Hid.Value = freeMod.ReferUser;
                 CCUser_T.Text       = buser.GetUserNameByIDS(freeMod.CCUser);
                 CCUser_Hid.Value    = freeMod.CCUser;
             }
             else
             {
                 //-----Auth2(只允许创建下一步)
                 if (freeBll.GetStep(AppID) - CurStepNum > 1)
                 {
                     Free_Div.Visible = false;
                     remind2.Visible  = true;
                 }
             }
             Page.ClientScript.RegisterStartupScript(this.GetType(), "disFoo", "ShowFoo();", true);
             DataBind();//绑定已有步骤
         }
     }
 }
コード例 #8
0
        public M_MisProLevel SelByProIDAndStepNum(int proID, int StepNum)
        {
            M_MisProLevel mod = null;

            SqlParameter[] sp = new SqlParameter[] { new SqlParameter("proID", proID), new SqlParameter("StepNum", StepNum) };
            DataTable      dt = SqlHelper.ExecuteTable(CommandType.Text, "Select * From " + strTableName + " Where ProID=@proID And StepNum=@StepNum", sp);

            if (dt != null && dt.Rows.Count > 0)
            {
                mod = model.GetModelFromDR(dt.Rows[0]);
            }
            return(mod);
        }
コード例 #9
0
        //是否有选择下一步经办人的权限
        private bool HasNextAuth(M_MisProLevel curStep, M_OA_Document oaMod, M_UserInfo mu)
        {
            switch (CurrentStep.DocAuth)
            {
            case "refer":
                return(curStep.ReferUser.Contains("," + mu.UserID + ","));

            case "sender":
                return(oaMod.UserID == mu.UserID);

            case "all":
            default:
                return((oaMod.UserID == mu.UserID) || (curStep.ReferUser.Contains("," + mu.UserID + ",")));
            }
        }
コード例 #10
0
    /// <summary>
    /// 返回占位符字符串
    /// </summary>
    /// <param name="oaMod">OA模型</param>
    /// <param name="holdIndex">占位符</param>
    /// <param name="filter">是否要进行进滤,输入RowFilter语句,用于事务</param>
    public string GetHolder(M_OA_Document oaMod, int holdIndex, string filter = "")
    {
        string r = "";

        switch (Holder[holdIndex])
        {
        case "{$SignInfo}":
            //获取所有用户签字信息
            DataTable progDT = progBll.SelByAppID(oaMod.ID.ToString());
            if (!string.IsNullOrEmpty(filter))
            {
                progDT.DefaultView.RowFilter = filter;
                progDT = progDT.DefaultView.ToTable();
            }
            if (progDT == null || progDT.Rows.Count < 1)
            {
            }
            else
            {
                //需要判断是协办还是主办人
                foreach (DataRow dr in progDT.Rows)
                {
                    int           docid   = Convert.ToInt32(dr["AppID"]);
                    int           stepnum = Convert.ToInt32(dr["ProLevel"]);
                    M_MisProLevel freeMod = oaMod.IsFreePro ? freeBll.SelByProIDAndStepNum(docid, stepnum) : stepBll.SelByProIDAndStepNum(oaMod.ProID, stepnum);
                    if (freeMod == null)
                    {
                        continue;
                    }
                    if (freeMod.CCUser.Contains("," + DataConvert.CStr(dr["AppRoveID"]) + ","))    //协办
                    {
                        string template = HttpUtility.HtmlDecode(OAConfig.ParterSignTemplate);
                        r += template.Replace("@UserName", dr["UserName"].ToString()).Replace("@Remind", dr["Remind"].ToString()).Replace("@SignDate", Convert.ToDateTime(dr["CreateTime"]).ToString("yyyy年MM月dd日"));
                    }
                    else    //主办
                    {
                        string template = HttpUtility.HtmlDecode(OAConfig.LeaderSignTemplate);
                        r += template.Replace("@UserName", dr["UserName"].ToString()).Replace("@Remind", dr["Remind"].ToString()).Replace("@SignDate", Convert.ToDateTime(dr["CreateTime"]).ToString("yyyy年MM月dd日"));
                    }
                }
            }
            break;

        default:
            break;
        }
        return(r);
    }
コード例 #11
0
    //后期可扩展为单步步骤,自由
    public void CreateAdminFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param)
    {
        //从proceMod中拷贝流程信息,但主办人可自指定
        M_MisProLevel freeMod = null;
        M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(proceMod.ID, param.StepNum);

        if (stepMod == null)
        {
            function.WriteErrMsg("错误:" + proceMod.ProcedureName + "下步骤不完整");
        }
        if (param.IsFirst)
        {
            freeMod = freeBll.SelByDocID(oaMod.ID);
        }
        else if (param.StepID > 0)
        {
            freeMod = freeBll.SelReturnModel(param.StepID);
        }
        bool isUpdate = true;//需处理

        if (freeMod == null)
        {
            isUpdate   = false;
            stepMod.ID = 0;
            freeMod    = stepMod;
        }
        freeMod.SendMan    = buser.GetLogin().UserID.ToString();
        freeMod.ReferUser  = param.ReferUser.Trim(',');
        freeMod.ReferGroup = "";
        freeMod.CCUser     = param.CCUser.Trim(',');
        //freeMod.CCGroup = "";
        freeMod.BackOption = oaMod.ID;
        freeMod.CreateTime = DateTime.Now;
        freeMod.Remind     = oaMod.Title + "的流程";
        if (isUpdate)
        {
            freeBll.UpdateByID(freeMod);
        }
        else
        {
            freeBll.Insert(freeMod);
            if (!param.IsFirst)
            {
                oaMod.Status = 0;
                oaBll.UpdateByID(oaMod);
            }
        }
    }
コード例 #12
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (proID < 1)
     {
         function.WriteErrMsg("请先选定流程!!!");
     }
     if (!IsPostBack)
     {
         if (Mid > 0)
         {
             saveBtn.Text = "修改";
             M_MisProLevel stepMod = stepBll.SelReturnModel(Mid);
             stepCodeT.Text           = stepMod.stepNum.ToString();
             stepNameT.Text           = stepMod.stepName;
             ReferUser_Hid.Value      = stepMod.ReferUser;
             referUserDatas_Hid.Value = JsonConvert.SerializeObject(buser.SelectUserByIds(stepMod.ReferUser));
             referGroup_Hid.Value     = stepMod.ReferGroup;
             CCUser_Hid.Value         = stepMod.CCUser;
             ccUserDatas_Hid.Value    = JsonConvert.SerializeObject(buser.SelectUserByIds(stepMod.CCUser));
             ccGroup_Hid.Value        = stepMod.CCGroup;
             emailAlertD.Value        = stepMod.EmailAlert;
             emailGroupD.Value        = stepMod.EmailGroup;
             smsAlertD.Value          = stepMod.SmsAlert;
             smsGroupD.Value          = stepMod.SmsGroup;
             ReferUser_T.Text         = buser.GetUserNameByIDS(stepMod.ReferUser);
             CCUser_T.Text            = buser.GetUserNameByIDS(stepMod.CCUser);
             // referGroup_T.Text = strBll.SelStrNameByIDS(stepMod.ReferGroup);
             //ccGroup_T.Text = strBll.SelStrNameByIDS(stepMod.CCGroup);
             emailAlertT.Text         = buser.GetUserNameByIDS(stepMod.EmailAlert);
             emailGroupT.Text         = strBll.SelStrNameByIDS(stepMod.EmailGroup);
             smsAlertT.Text           = buser.GetUserNameByIDS(stepMod.SmsAlert);
             smsGroupT.Text           = strBll.SelStrNameByIDS(stepMod.SmsGroup);
             hqOptionDP.SelectedValue = stepMod.HQoption.ToString();
             qzzjDP.SelectedValue     = stepMod.Qzzjoption.ToString();
             htDP.SelectedValue       = stepMod.HToption.ToString();
             remindT.Text             = stepMod.Remind;
             function.Script(this, "SetRadVal('next_rad','" + stepMod.DocAuth + "')");
             //PublicAttachOptionDP.SelectedValue = stepMod.PublicAttachOption.ToString();
             //CanEditField_T.Text = stepMod.CanEditField;
             //function.Script(this, "SetChkVal('docauth_chk','"+stepMod.DocAuth+"');");
         }
         else
         {
             stepCodeT.Text = GenStepCode(proID).ToString();
         }
         Call.SetBreadCrumb(Master, "<li><a href='" + CustomerPageAction.customPath2 + "Main.aspx'>工作台</a></li><li><a href='../Config/SiteOption.aspx'>系统设置</a></li><li><a href='AddFlow.aspx?proID=" + proID + "'>流程设计</a></li><li class='active'>添加步骤</a></li>");
     }
 }
コード例 #13
0
        protected void saveBtn_Click(object sender, EventArgs e)
        {
            M_MisProLevel stepModel = new M_MisProLevel();

            if (Mid > 0)
            {
                stepModel = stepBll.SelReturnModel(Mid);
            }
            stepModel.ProID      = DataConvert.CLng(proID);
            stepModel.stepNum    = DataConvert.CLng(stepCodeT.Text.Trim());
            stepModel.stepName   = stepNameT.Text.Trim();
            stepModel.SendMan    = "";//不用这个了。
            stepModel.ReferUser  = StrHelper.PureIDSForDB(ReferUser_Hid.Value);
            stepModel.ReferGroup = StrHelper.PureIDSForDB(referGroup_Hid.Value);
            stepModel.CCUser     = StrHelper.PureIDSForDB(CCUser_Hid.Value);
            stepModel.CCGroup    = StrHelper.PureIDSForDB(ccGroup_Hid.Value);
            stepModel.HQoption   = DataConvert.CLng(hqOptionDP.SelectedValue);
            stepModel.Qzzjoption = DataConvert.CLng(qzzjDP.SelectedValue);
            stepModel.HToption   = DataConvert.CLng(htDP.SelectedValue);
            stepModel.EmailAlert = emailAlertD.Value.TrimEnd(',');
            stepModel.EmailGroup = emailGroupD.Value.TrimEnd(',');
            stepModel.SmsAlert   = smsAlertD.Value.TrimEnd(',');
            stepModel.SmsGroup   = smsGroupD.Value.TrimEnd(',');
            //stepModel.PublicAttachOption = DataConvert.CLng(PublicAttachOptionDP.SelectedValue);//使用模型字段,不需要此功能限制
            stepModel.Status       = 1;
            stepModel.CreateTime   = DateTime.Now;
            stepModel.Remind       = remindT.Text.Trim();
            stepModel.CanEditField = "*";//CanEditField_T.Text;
            stepModel.DocAuth      = Request.Form["next_rad"];
            //stepModel.DocAuth = Request.Form["docauth_chk"];
            if (!string.IsNullOrEmpty(Request.QueryString["stepID"]))
            {
                stepModel.ID = DataConvert.CLng(Request.QueryString["stepID"]);
                stepBll.UpdateByID(stepModel);
            }
            else
            {
                stepBll.insert(stepModel);
            }
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "location=location;", true);
            Response.Redirect("AddFlow.aspx?proID=" + proID);
        }
コード例 #14
0
        public void CreateStep(int id)
        {
            M_MisProLevel freeMod = freeBll.SelByDocID(id);

            moa = boa.SelReturnModel(id);
            bool isUpdate = true;

            if (freeMod == null)
            {
                isUpdate = false;
                freeMod  = new M_MisProLevel();
            }
            freeMod.ProID               = 0;
            freeMod.stepNum             = 1;
            freeMod.stepName            = "自由流程第1步";
            freeMod.SendMan             = buser.GetLogin().UserID.ToString();
            freeMod.ReferUser           = RUserID_Hid.Value.Trim(',');
            freeMod.ReferGroup          = "";
            freeMod.CCUser              = CUserID_Hid.Value.Trim(',');
            freeMod.CCGroup             = "";
            freeMod.HQoption            = 1;
            freeMod.Qzzjoption          = 0;
            freeMod.HToption            = 2;
            freeMod.EmailAlert          = "";
            freeMod.EmailGroup          = "";
            freeMod.SmsAlert            = "";
            freeMod.SmsGroup            = "";
            freeMod.BackOption          = id;
            freeMod.PublicAttachOption  = 1;
            freeMod.PrivateAttachOption = 1;
            freeMod.Status              = 1;
            freeMod.CreateTime          = DateTime.Now;
            freeMod.Remind              = moa.Title + "的自由流程";
            if (isUpdate)
            {
                freeBll.UpdateByID(freeMod);
            }
            else
            {
                freeBll.Insert(freeMod);
            }
        }
コード例 #15
0
        public bool UpdateStep(int proID)
        {
            bool      flag = false;
            DataTable dt   = SelByProID(proID);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                model         = SelReturnModel(DataConvert.CLng(dt.Rows[i]["ID"]));
                model.stepNum = i + 1;
                if (UpdateByID(model))
                {
                    flag = true;
                }
                else
                {
                    flag = false;
                }
            }
            return(flag);
        }
コード例 #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                moa                  = boa.SelReturnModel(Mid);
                minfo                = buser.SeachByID(moa.UserID);
                this.LBTitle.Text    = moa.Title;
                this.LBKeyWords.Text = moa.Keywords;
                this.AddUSer.Text    = minfo.HoneyName;
                this.AddTime.Text    = moa.CreateTime.ToString();
                title_lab.Text       = moa.Title;
                docType_Tr.Visible   = false;
                switch (moa.ProType)
                {
                case (int)M_MisProcedure.ProTypes.Admin:
                    //M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(moa.ProID,1);
                    //RUserName_Lab.Text = buser.GetUserNameByIDS(stepMod.ReferUser);
                    break;

                default:
                    M_MisProLevel freeMod = freeBll.SelByDocID(Mid);
                    if (freeMod != null)
                    {
                        if (freeMod.ProID == 0)
                        {
                            preViewBtn.Visible = false;
                        }
                        RUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.ReferUser);
                        //CUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.CCUser);
                        //RUserID_Hid.Value = freeMod.ReferUser;
                        //CUserID_Hid.Value = freeMod.CCUser;
                    }
                    break;
                }
                string steps = StrHelper.GetIDSFromDT(stepBll.SelByProID(moa.ProID), "StepName");
                if (!string.IsNullOrEmpty(steps))
                {
                    function.Script(this, "$(\"#prog_div\").ZLSteps(\"" + steps + "\");");
                }
            }
        }
コード例 #17
0
        public bool IsHQComplete(int appID, M_MisProLevel stepMod)
        {
            bool   flag = true;
            string ids  = SelHQUserID(appID, stepMod.stepNum);

            if (string.IsNullOrEmpty(ids))
            {
                return(false);//无会签信息,则直接返回
            }
            string[] progArr = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            string[] stepArr = stepMod.ReferUser.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < stepArr.Length; i++)
            {
                if (!progArr.Select(p => p).Contains(stepArr[i]))
                {
                    flag = false;
                    break;
                }
            }
            return(flag);
        }
コード例 #18
0
ファイル: B_Mis_AppProg.cs プロジェクト: baixue001/IPS
        /// <summary>
        /// 指定步骤,指定类型有多少人完成了会签,多少人尚未完成
        /// </summary>
        /// <param name="oaMod">文档模型</param>
        /// <param name="stepMod">步骤模型,用于知道有哪些用户需要会签</param>
        /// <param name="uid">当前会签的用户</param>
        /// <param name="role">需要检测的角色</param>
        public void HQ_GetHasAndNot(M_OA_Document oaMod, M_MisProLevel stepMod, int uid, string role, ref string hashq, ref string nohq)
        {
            DataTable hqdt   = HQ_SelAll(oaMod.ID, oaMod.CurStepNum, role);
            string    needhq = ""; hashq = ""; nohq = "";

            switch (role)
            {
            case "refer":
                needhq = stepMod.ReferUser;
                break;

            case "ccuser":
                needhq = stepMod.CCUser;
                break;

            case "helpuser":
                needhq = stepMod.HelpUser;
                break;

            default:
                throw new Exception("会签检测角色错误");
            }
            //获取还有哪些用户没完成会签,哪些用户已完成会签(ids)
            foreach (string userid in needhq.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
            {
                if (userid.Equals(uid.ToString()))
                {
                    hashq += uid + ",";
                }
                else if (hqdt.Select("ApproveID='" + userid + "' AND UserStepRole='" + role + "'").Length > 0)
                {
                    hashq += userid + ",";
                }
                else
                {
                    nohq += userid + ",";
                }
            }
            hashq = hashq.Trim(','); nohq = nohq.Trim(',');
        }
コード例 #19
0
        public void InsertRecord()
        {
            int           status = DataConverter.CLng(Request["status"]);
            int           id     = DataConverter.CLng(Request["ID"]);
            M_MisApproval maMod  = maBll.SelReturnModel(id);

            #region M_MisProLevel
            M_MisProLevel CurrentLevel = new M_MisProLevel();
            DataTable     appProgDT    = mappBll.SelByAppID(id.ToString());                        //已进行到的流程
            DataTable     proLevelDT   = proBll.SelByProID(maMod.ProcedureID);                     //全部流程
            if (appProgDT.Rows.Count < 1)                                                          //尚未开始
            {
                CurrentLevel = CurrentLevel.GetModelFromDR(proLevelDT.Rows[0]);                    //用第一个填充,其值是经过Level排序的
            }
            else if (appProgDT.Rows.Count < proLevelDT.Rows.Count)                                 //已经开始但未完成
            {
                string proLevel = appProgDT.Rows[appProgDT.Rows.Count - 1]["ProLevel"].ToString(); //现在进行到的最后
                CurrentLevel = proBll.SelByProIDAndStepNum(maMod.ProcedureID, DataConverter.CLng(proLevel));
            }
            else //已完成,或无流程的
            {
                CurrentLevel.Status = 99;
            }
            #endregion
            M_Mis_AppProg model = new M_Mis_AppProg();
            model.AppID        = maMod.ID;
            model.ProID        = maMod.ProcedureID;
            model.ProLevel     = CurrentLevel.stepNum;
            model.ProLevelName = CurrentLevel.stepName;
            model.ApproveID    = mu.UserID;
            model.Result       = status;
            model.CreateTime   = DateTime.Now;
            mappBll.Insert(model);
            if (status == -1)
            {
                maMod.Results = -1;
            }
            maBll.UpdateByID(maMod);
            Response.Redirect("ApproverView"); return;
        }
コード例 #20
0
        /// <summary>
        /// 判断会签是否完成
        /// </summary>
        /// <param name="appID"></param>
        /// <param name="userID">当前签字的经办人ID</param>
        /// <param name="stepMod">当前步骤模型</param>
        /// <returns></returns>
        public bool IsHQComplete(int appID, int userID, M_MisProLevel stepMod)
        {
            //B_Group groupBll=new B_Group();
            bool   flag = true;
            string ids  = SelHQUserID(appID, stepMod.stepNum);

            //if (string.IsNullOrEmpty(ids)) return false;//无会签信息,则直接返回
            ids += "," + userID;
            string[] progArr = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            //if (stepMod.ReferGroup != "")
            //    stepMod.ReferUser += groupBll.GetUserIDByGroupIDS(stepMod.ReferGroup);
            string[] stepArr = stepMod.ReferUser.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < stepArr.Length; i++)
            {
                if (!progArr.Select(p => p).Contains(stepArr[i]))
                {
                    flag = false;
                    break;
                }
            }
            return(flag);
        }
コード例 #21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (function.isAjax())
            {
                #region AJAX请求
                string result = "", action = Request["action"], value = Request["value"];
                switch (action)
                {
                case "signpwdcheck":
                {
                    int       id      = DataConverter.CLng(Request["SignID"]);
                    string    signpwd = Request["SignPwd"];
                    M_OA_Sign signMod = signBll.SelByPwd(id, signpwd);
                    if (signMod == null)
                    {
                        result = "0";
                    }
                    else
                    {
                        result = signMod.VPath.Replace("//", "/");
                        //-----写入至数据库
                        M_UserInfo     mu        = buser.GetLogin();
                        M_OA_DocSigned signedMod = new M_OA_DocSigned();
                        signedMod.ProID    = ProID; //同名签章在一个流程中只能有一个
                        signedMod.Step     = 0;     //暂时不使用
                        signedMod.UserID   = mu.UserID;
                        signedMod.VPath    = signMod.VPath;
                        signedMod.SignID   = id;
                        signedMod.SignName = signMod.SignName;
                        signedMod.AppID    = AppID;
                        signedMod.CUName   = mu.UserName;
                        signedBll.InsertNoDup(signedMod);
                    }
                }
                break;

                default:    //addword
                    break;
                }
                Response.Clear();
                Response.Write(result); Response.Flush(); Response.End();
                #endregion
            }
            if (!IsPostBack)
            {
                M_UserInfo     mu       = buser.GetLogin();
                M_MisProcedure proceMod = proceBll.SelReturnModel(ProID);
                AuthDT = perBll.SelAuthByRoles(mu.UserRole);
                string getword = "/Plugins/Office/OfficeAction.ashx?action=getword&AppID=" + AppID;
                if (!string.IsNullOrEmpty(FName))
                {
                    getword += "&fname=" + HttpUtility.UrlEncode(FName);
                    function.Script(this, "DelayLoadFile('" + getword + "');");
                    AuthCheck(AuthDT);
                }
                else if (Action.Equals("add") && ProID > 0)//新建
                {
                    FName = GetWordName(proceMod.ProcedureName);
                    function.Script(this, "CreateDoc();");
                    AuthCheck(AuthDT);
                }
                else if (AppID > 0)//根据主键ID,打开其已有文档
                {
                    Sign_DP.Enabled = true;
                    M_OA_Document oaMod = oaBll.SelReturnModel(AppID);
                    if (oaMod.IsComplete)
                    {
                        AuthCheck(null);
                    }                                         //已完结则关闭操作权限
                    else
                    {
                        M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(oaMod.ProID, oaMod.CurStepNum + 1);
                        AuthCheck(AuthDT);
                    }
                    //------------打开公文
                    if (!string.IsNullOrEmpty(oaMod.PrivateAttach))
                    {
                        FName = Path.GetFileName(HttpUtility.UrlDecode(oaMod.PrivateAttach));
                        function.Script(this, "DelayLoadFile('" + getword + "');");
                    }
                }
                else
                {
                    function.WriteErrMsg("参数不正确,请先核对!");
                }
                MyBind(); BindSigned();
            }
        }
コード例 #22
0
 public bool UpdateByID(M_MisProLevel model)
 {
     return(Sql.UpdateByIDs(strTableName, PK, model.ID.ToString(), BLLCommon.GetFieldAndPara(model), model.GetParameters()));
 }
コード例 #23
0
 public int insert(M_MisProLevel model)
 {
     return(Sql.insert(strTableName, model.GetParameters(), BLLCommon.GetParas(model), BLLCommon.GetFields(model)));
 }
コード例 #24
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         M_UserInfo     mu       = buser.GetLogin();
         M_MisProcedure proceMod = new M_MisProcedure();
         if (Mid < 1)
         {
             ProID = DataConverter.CLng(Request.QueryString["ProID"]);
             if (ProID < 1)
             {
                 function.WriteErrMsg("请先指定需要创建的流程!");
             }
             proceMod = proceBll.SelReturnModel(ProID);
             if (!perBll.ContainRole(proceMod.Sponsor, mu.UserRole))
             {
                 function.WriteErrMsg("你没有权限使用该流程");
             }
             ascx    = proceMod.FlowTlp;
             ModelID = Convert.ToInt32(proceMod.FormInfo);
             OAFormUI.InitControl(ViewState, ModelID);
             switch (proceMod.MyProType)
             {
             case M_MisProcedure.ProTypes.Admin:
                 SelUser_Tr.Visible = false;
                 break;
             }
             ViewState["No"] = CreateNo(proceMod);
             //OAFormUI.Title_T = proceMod.ProcedureName;
             OAFormUI.SendDate_ASCX = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm");
         }
         else
         {
             M_OA_Document oaMod = new M_OA_Document();
             oaMod = oaBll.SelReturnModel(Mid);
             if (mu.UserID != oaMod.UserID)
             {
                 function.WriteErrMsg("非发起人不能修改文档!");
             }
             if (oaBll.HasBegin(oaMod.ID))
             {
                 function.WriteErrMsg("已开始的流程不能修改");
             }
             ProID           = oaMod.ProID;
             proceMod        = proceBll.SelReturnModel(oaMod.ProID);
             FName_Hid.Value = oaMod.PrivateAttach;//Word文档
             ascx            = proceMod.FlowTlp;
             ModelID         = Convert.ToInt32(proceMod.FormInfo);
             OAFormUI.InitControl(ViewState, ModelID);
             OAFormUI.Title_ASCX    = oaMod.Title;
             OAFormUI.SendDate_ASCX = oaMod.SendDate.ToString();
             OAFormUI.NO_ASCX       = oaMod.No;
             M_MisProLevel freeMod = freeBll.SelByDocID(oaMod.ID);
             if (freeMod != null)
             {
                 ReferUser_T.Text    = buser.GetUserNameByIDS(freeMod.ReferUser);
                 ReferUser_Hid.Value = freeMod.ReferUser;
             }
             ViewState["No"] = oaMod.No;
             Save_Btn.Text   = "修改发文";
         }
         OAFormUI.NO_ASCX = ViewState["No"].ToString();
         NodeID           = proceMod.NodeID;
         ShowPage(proceMod);
     }
 }
コード例 #25
0
 public int insert(M_MisProLevel model)
 {
     return(DBCenter.Insert(model));
 }
コード例 #26
0
 public bool UpdateByID(M_MisProLevel model)
 {
     return(DBCenter.UpdateByID(model, model.ID));
 }
コード例 #27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (function.isAjax())
            {
                string Action = Request.Form["Action"];
                string result = "";
                if (Action == "Print")
                {
                    string content = Request.Form["Content"];
                    string img     = Request.Form["Image"];
                    Session["PrintCon"] = content;
                    Session["PrintImg"] = img;
                    result = "1";
                }
                else
                {
                    string value = Request.Form["value"];
                    mmis   = bmis.SelReturnModel(Convert.ToInt32(value));
                    result = oaCom.GetHolder(mmis, buser.GetLogin().GroupID.ToString());
                }
                Response.Clear(); Response.Write(result); Response.Flush(); Response.End();
            }
            if (!IsPostBack)
            {
                //      if (!purBll.Auth("OADocumentWrite", buser.GetLogin().UserRole)) { function.WriteErrMsg("你当前没有起草公文的权限,请联系管理员!!!"); }
                TypeDataBind();
                DPDataBind();
                #region 签章初始化
                DataTable signDT = signBll.SelByUserID(buser.GetLogin().UserID);
                if (signDT != null && signDT.Rows.Count > 0)
                {
                    SignRadioBind(signDT);
                }
                else
                {
                    signTrRemind.Visible = true;
                }
                #endregion
                if (Request.QueryString["Edit"] == "1" && !string.IsNullOrEmpty(Request.QueryString["AppID"]))
                {
                    saveBtn.Text      = "修改";
                    AddNewBtn.Visible = true;
                    int           id      = DataConvert.CLng(Request.QueryString["AppID"]);
                    M_MisProLevel freeMod = freeBll.SelByDocID(id);
                    moa                      = boa.SelReturnModel(id);
                    minfo                    = buser.SeachByID(moa.UserID);
                    Title_T.Text             = moa.Title;
                    key                      = moa.Keywords;
                    Keywords.Text            = moa.Keywords;
                    Secret.SelectedValue     = moa.Secret.ToString();
                    Urgency.SelectedValue    = moa.Urgency.ToString();
                    Importance.SelectedValue = moa.Importance.ToString();
                    DocType_DP.SelectedValue = moa.Type.ToString();
                    proDP.SelectedValue      = moa.ProID.ToString();
                    Content.Text             = moa.Content;
                    CreateTime.Text          = moa.CreateTime.ToString("yyyy/MM/dd HH:mm:ss");
                    Label1.Text              = minfo.HoneyName;
                    Label2.Text              = groupBll.GetByID(minfo.GroupID).GroupName;
                    if (freeMod != null)
                    {
                        RUserID_Hid.Value  = freeMod.ReferUser;
                        RUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.ReferUser);
                        CUserID_Hid.Value  = freeMod.CCUser;
                        CUserName_Lab.Text = buser.GetUserNameByIDS(freeMod.CCUser);
                    }
                    //附件相关,移除,不做检测
                    //proMod = proBll.SelReturnModel(moa.ProID);
                    //if (proMod.AllowAttach == 1)
                    //{
                    upFileTR.Visible = true;
                    //}

                    if (!string.IsNullOrEmpty(moa.PublicAttach))
                    {
                        hasFileData.Value = moa.PublicAttach;
                        string[] af = moa.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]));
                            h += "<a target='_blank' href=" + af[i] + ">" + af[i].Split('/')[(af[i].Split('/').Length - 1)] + "</a><a href='javascript:;' title='删除' onclick='delHasFile(\"" + af[i] + "\",this);' ><img src='/App_Themes/AdminDefaultTheme/images/del.png'/></a></span>";
                        }
                        hasFileTD.InnerHtml = h;
                    }
                    //签章,用于修改
                    if (!string.IsNullOrEmpty(moa.SignID) && signRadio.Items.Count > 0)
                    {
                        signRadio.SelectedValue = moa.SignID.Split(':')[0];
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "signInit", "InitPos('" + moa.SignID + "');", true);
                    }
                    DraftBtn.Visible = false;
                    //-----检测是否已开始流程
                    if (boa.IsApproving(id))//已开始,不允许修改
                    {
                        saveBtn.Visible  = false;
                        DraftBtn.Visible = false;
                        clearBtn.Attributes.Add("disabled", "disabled");
                        clearBtn.Text = "流程已开始,禁止修改";
                    }
                }
                else
                {
                    AddNewBtn.Visible = false;
                    Label1.Text       = buser.GetLogin().HoneyName;
                    Label2.Text       = groupBll.GetByID(buser.GetLogin().GroupID).GroupName;
                    CreateTime.Text   = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                }
            }
        }