Exemplo n.º 1
0
        /// <summary>
        /// 拒绝审核
        /// </summary>
        private void Refuse()
        {
            int    jobflowid   = int.Parse(Request.QueryString["jobflowid"].ToString()); //工作流的id
            string comparedata = " reviewerid=" + ((PJOAModels.LoginInfo)Session["login"]).Id + " AND jobflowid=" + jobflowid.ToString();

            if (PJOABLL.AuditJobFlowManager.GetList(comparedata).Rows.Count == 0)
            {
                //该工作流被收回或删除导致审批提交失败
                Response.Redirect("../AuditError.aspx?error=0");
            }
            else if (PJOABLL.JobFlowManager.GetModel(jobflowid).auditstatus == "03" || PJOABLL.JobFlowManager.GetModel(jobflowid).auditstatus == "04")
            {
                //该工作流是审核方式是选审或会签所以在提交审核时,工作流已由他人审核通过
                Response.Redirect("../AuditError.aspx?error=1");
            }

            else
            {
                string    ruletxt = ""; //审核的分类
                DataTable tbl     = PJOABLL.ViewBLL.ViewApplySealManager.getlist(jobflowid);
                if (tbl.Rows.Count == 1)
                {
                    ruletxt = tbl.Rows[0]["rulesort"].ToString();
                    //修改公章申请单
                    PJOAModels.ApplySeal model = new PJOAModels.ApplySeal();
                    model.applicantid     = int.Parse(tbl.Rows[0]["applicantid"].ToString());
                    model.applydate       = DateTime.Parse(tbl.Rows[0]["applydate"].ToString());
                    model.borrowsendtime  = DateTime.Parse(tbl.Rows[0]["borrowsendtime"].ToString());
                    model.borrowstarttime = DateTime.Parse(tbl.Rows[0]["borrowstarttime"].ToString());
                    model.id        = int.Parse(tbl.Rows[0]["id"].ToString());
                    model.jobflowid = int.Parse(tbl.Rows[0]["jobflowid"].ToString());
                    model.remark    = tbl.Rows[0]["remark"].ToString();
                    model.sort      = int.Parse(tbl.Rows[0]["sealsort"].ToString());
                    model.txt       = tbl.Rows[0]["sealtxt"].ToString() + ((PJOAModels.LoginInfo)Session["login"]).Cname + "的审核意见:" + Server.UrlDecode(this.treacomment.Value.Trim()) + "|";
                    PJOABLL.ApplySealManager.Update(model);

                    //修改当前审核人的记录
                    PJOAModels.AuditJobFlow auditmodel = null;
                    string    auditstr     = " jobflowid=" + jobflowid.ToString() + " AND reviewerid=" + ((PJOAModels.LoginInfo)Session["login"]).Id;
                    DataTable audittbl     = PJOABLL.AuditJobFlowManager.GetList(auditstr);     // 查找到当前审核人员的记录
                    int       num          = int.Parse(audittbl.Rows[0]["numbers"].ToString()); //当前审核人员编号
                    string    mainreviewer = audittbl.Rows[0]["mainreviewer"].ToString();       //当前审核人是不是最终审核人

                    auditmodel              = new PJOAModels.AuditJobFlow();
                    auditmodel.auditoperat  = "拒绝";
                    auditmodel.audittime    = DateTime.Now;
                    auditmodel.id           = int.Parse(audittbl.Rows[0]["id"].ToString());
                    auditmodel.jobflowid    = int.Parse(audittbl.Rows[0]["jobflowid"].ToString());
                    auditmodel.mainreviewer = audittbl.Rows[0]["mainreviewer"].ToString();
                    auditmodel.nowreviewer  = "P"; //能查找到工作流记录,但不能进行审核操作
                    auditmodel.numbers      = int.Parse(audittbl.Rows[0]["numbers"].ToString());
                    auditmodel.operatstatus = "已审核";
                    auditmodel.reviewerid   = int.Parse(audittbl.Rows[0]["reviewerid"].ToString());
                    PJOABLL.AuditJobFlowManager.Update(auditmodel);

                    PJOAModels.JobFlow jobflowmodel = new PJOAModels.JobFlow();
                    jobflowmodel = PJOABLL.JobFlowManager.GetModel(jobflowid);

                    //依据不同的审核类型进行操作
                    switch (ruletxt)
                    {
                    case "单审":
                    case "会签":
                        jobflowmodel.endtime     = DateTime.Now;
                        jobflowmodel.auditstatus = "03";     //工作流的审核状态为“被拒绝”
                        PJOABLL.JobFlowManager.Update(jobflowmodel);

                        break;

                    case "选审":
                        string    st     = " jobflowid=" + jobflowid.ToString();
                        DataTable tbla   = PJOABLL.AuditJobFlowManager.GetList(st);
                        bool      refuse = true;

                        for (int j = 0; j < tbla.Rows.Count; j++)
                        {
                            if (tbla.Rows[j]["auditoperat"].ToString() != "拒绝")
                            {
                                refuse = false;     //还有其他审核人员未审
                                break;
                            }
                        }
                        if (refuse)
                        {
                            jobflowmodel.endtime     = DateTime.Now;
                            jobflowmodel.auditstatus = "03";     // 工作流的审核状态为被拒绝
                            PJOABLL.JobFlowManager.Update(jobflowmodel);
                        }
                        else
                        {
                            jobflowmodel.auditstatus = "02";     // 工作流的审核状态为进行中
                            PJOABLL.JobFlowManager.Update(jobflowmodel);
                        }

                        break;
                    }

                    string strad = "拒绝编号为" + jobflowmodel.cname + "的单据申请";
                    SendInfo(strad, jobflowmodel.id);
                    Response.Redirect("../AuditJobFlow.aspx");
                }
                else
                {
                    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "audit", "<script> alert('审批出错!')</script>", false);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///  创建审批序列
        /// </summary>
        /// <param name="auditsort">审批的类型单审,选审或是会签</param>
        /// <param name="staff">审核人员的列表</param>
        /// <param name="id">工作流的id号</param>
        private void CreateApproval(string auditsort, string stafflist, int id)
        {
            string[] staff = null;
            int      len   = 0; //审批人员的个数

            PJOAModels.AuditJobFlow model = null;
            if (stafflist.IndexOf(",") == -1)
            {
                staff    = new string[1];
                staff[0] = stafflist;
                len      = 1;
            }
            else
            {
                staff = stafflist.Split(',');
                len   = staff.Length;
            }

            switch (auditsort)
            {
            case "单审":
                for (int i = 0; i < staff.Length; i++)
                {
                    model              = new PJOAModels.AuditJobFlow();
                    model.auditoperat  = "未操作";
                    model.operatstatus = "未审核";
                    model.audittime    = new DateTime(1900, 1, 1);
                    if (i == 0)
                    {
                        model.nowreviewer = "T";    //第一个审核的人员
                    }
                    else
                    {
                        model.nowreviewer = "F";
                    }

                    if ((i + 1) == len)
                    {
                        model.mainreviewer = "T";    //最终审核的人员
                    }
                    else
                    {
                        model.mainreviewer = "F";
                    }
                    model.numbers    = i + 1;
                    model.jobflowid  = id;
                    model.reviewerid = int.Parse(staff[i]);
                    PJOABLL.AuditJobFlowManager.Add(model);
                }
                break;

            case "选审":
            case "会签":
                for (int i = 0; i < staff.Length; i++)
                {
                    model              = new PJOAModels.AuditJobFlow();
                    model.audittime    = new DateTime(1900, 1, 1);
                    model.nowreviewer  = "T";
                    model.mainreviewer = "T";
                    model.numbers      = 1;
                    model.jobflowid    = id;
                    model.auditoperat  = "未操作";
                    model.operatstatus = "未审核";
                    model.reviewerid   = int.Parse(staff[i]);
                    PJOABLL.AuditJobFlowManager.Add(model);
                }
                break;
            }
        }