Example #1
0
        //保存
        protected void Save_Btn_Click(object sender, EventArgs e)
        {
            OAFormUI.vstate = ViewState;
            Call          commonCall = new Call();
            M_OA_Document oaMod      = null;

            if (Mid > 0)
            {
                oaMod = oaBll.SelReturnModel(Mid);
            }
            oaMod = FillMod(oaMod);
            M_MisProcedure proceMod = proceBll.SelReturnModel(ProID);
            DataTable      table    = OAFormUI.CreateTable(OAFormUI.GetFields(OAFormUI.ModelID).Split(','));

            if (Mid > 0)//修改
            {
                M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(oaMod.Content));
                conBll.UpdateContent(table, conMod);
                oaBll.UpdateByID(oaMod);
            }
            else
            {
                oaMod.Content = commonCall.AddContentToNode(oaMod, NodeID, OAFormUI.ModelID, table).ToString();
                oaMod.ID      = oaBll.insert(oaMod);
            }
            oaCom.CreateStep(oaMod, proceMod, new OAStepParam()
            {
                IsFirst   = true,
                ReferUser = ReferUser_Hid.Value,
                StepNum   = 1
            });
            Response.Redirect("ViewDrafting.aspx?ID=" + oaMod.ID + "&FlowType=2");
        }
Example #2
0
        protected void singleBtn_Click(object sender, EventArgs e)
        {
            int id     = Convert.ToInt32(pageData.Value.Split(':')[0]);
            int nodeID = Convert.ToInt32(pageData.Value.Split(':')[1]);

            oaMod = oaBll.SelReturnModel(id);
            commCall.AddContentToNode(oaMod, nodeID, OAConfig.ModelID);
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('分发成功!!!');", true);
        }
        //与写入新的进度信息,如果是最后一步或是拒绝,则更新OA模型
        private void UpdateModel(int status)
        {
            //会签需要加判断,备注需要另外处理
            oaMod = oaBll.SelReturnModel(appID);
            //throw new Exception(progBll.IsHQComplete(appID, userID, CurrentStep).ToString());
            progMod.AppID        = oaMod.ID;
            progMod.ProID        = oaMod.ProID;
            progMod.ProLevel     = CurrentStep.stepNum;
            progMod.ProLevelName = CurrentStep.stepName;
            progMod.ApproveID    = userID;
            progMod.Result       = status;
            progMod.Remind       = remindT.Text;
            progMod.CreateTime   = DateTime.Now;
            progMod.HQUserID     = userID.ToString();
            if (signRadio.Items.Count > 0 && signRadio.SelectedIndex > 0)//0是不使用签章
            {
                progMod.Sign   = signRadio.SelectedValue + ":" + curPosD.Value;
                progMod.SignID = signRadio.SelectedValue;
            }
            //用于email与sms通知功能
            string content = "";

            //是否为最后一步
            bool isLastStep = false;

            if (oaMod.ProID == 0)
            {
                isLastStep = freeBll.IsLastStep(oaMod, CurrentStep);
            }
            else
            {
                isLastStep = stepBll.IsLastStep(CurrentStep);
            }

            //增加通知功能,
            if (isLastStep && status == 99 || status == 98)
            {
                if (CurrentStep.HQoption > 0)//会签判断
                {
                    if (progBll.IsHQComplete(appID, userID, CurrentStep))
                    {
                        oaMod.Status     = status;//流程完成,全部同意
                        oaMod.CurStepNum = CurrentStep.stepNum;
                        content          = oaMod.Title + "会签完成,已进入下一步骤";
                    }
                }
                else
                {
                    oaMod.Status     = status;//流程完成,全部同意
                    oaMod.CurStepNum = CurrentStep.stepNum;
                    content          = oaMod.Title + "已完成" + CurrentStep.stepName + ",进入下一步骤";
                }
            }
            else if (status == 2) //回退
            {
                oaMod.Status = 2;

                int rbStep = DataConvert.CLng(rollBackDP.SelectedValue);
                if (rbStep > 0)
                {
                    rbStep = rbStep - 1;
                    //自由流程回退删除步骤
                    if (oaMod.IsFreePro)
                    {
                        freeBll.DelByStep(oaMod.ID, Convert.ToInt32(rollBackDP.SelectedValue));
                    }
                }
                else  //回退至上一步(-1)
                {
                    rbStep = CurrentStep.stepNum - 2;
                    //自由流程回退删除步骤
                    if (oaMod.IsFreePro)
                    {
                        freeBll.DelByStep(oaMod.ID, CurrentStep.stepNum - 1);
                    }
                }
                oaMod.CurStepNum = rbStep;
                progMod.Remind2  = "回退至" + rbStep;
                progMod.HQUserID = "";
                content          = oaMod.Title + "已被经办人回退至" + rbStep;
                //回退的时候,清除目标会签与签章信息
                progBll.ClearHQ(oaMod.ID, rbStep);
                progBll.ClearSign(oaMod.ID, rbStep);
            }
            else if (status == -1)
            {
                oaMod.Status     = status; //拒绝
                oaMod.CurStepNum = CurrentStep.stepNum;
                content          = oaMod.Title + "已被经办人" + buser.GetLogin().HoneyName + "拒绝.";
            }
            else//同意,但未至最后一步
            {
                if (CurrentStep.HQoption > 0)//需要会签
                {
                    if (progBll.IsHQComplete(appID, userID, CurrentStep))
                    {
                        oaMod.CurStepNum = CurrentStep.stepNum;
                        content          = oaMod.Title + "已完成会签审批,成功通过";
                        //if (oaMod.IsFreePro) oaMod.Status = status;//如果是自由流程就仍更新状态
                    }
                }
                else
                {
                    oaMod.CurStepNum = CurrentStep.stepNum;
                    content          = oaMod.Title + "已完成审批,成功通过";
                }
            }

            if (!string.IsNullOrEmpty(CurrentStep.EmailAlert))//Email与sms通知
            {
                //发送邮件包括会员组里的会员(需扩展支持会员组)
                string ids = "";
                if (!string.IsNullOrEmpty(CurrentStep.EmailGroup))
                {
                    ids += groupBll.GetUserIDByGroupIDS(CurrentStep.EmailGroup);
                }
                ids += CurrentStep.SmsAlert;
                ids  = ids.Trim(',');
                emailToUser(content, ids);
            }
            if (!string.IsNullOrEmpty(CurrentStep.SmsAlert))
            {
                smsTouser(content, CurrentStep.SmsAlert);
            }
            progBll.Insert(progMod);
            oaBll.UpdateByID(oaMod);
            //分发功能
            if (isLastStep && oaMod.Status == 99 && !oaMod.IsFreePro)
            {
                B_MisProcedure prodBll = new B_MisProcedure();
                M_MisProcedure prodMod = prodBll.SelReturnModel(oaMod.ProID);
                if (prodMod.NodeID > -1)//指定了节点,才分发
                {
                    commCall.AddContentToNode(oaMod, prodMod.NodeID, OAConfig.ModelID);
                }
            }
        }