Esempio n. 1
0
        /// <summary>
        /// 为最后的流程增加阅办步骤(根据selprocuser增加1~n步)
        /// </summary>
        /// <param name="applyId">申请单ID</param>
        /// <param name="selprocuser">流程用户ID字符串,如:1,2,3</param>
        /// <returns></returns>
        public bool AddReadAppFlow(string applyId, string selprocuser)
        {
            if (string.IsNullOrEmpty(applyId) || string.IsNullOrEmpty(selprocuser))
            {
                return(false);
            }

            IApplyFlow    dal             = baseDal as IApplyFlow;
            ApplyFlowInfo currentFlowInfo = dal.GetLastCompletedFlow(applyId);
            int           orderno         = currentFlowInfo.OrderNo + 1;

            #region 为流程中每个用户创建一个阅办流程, 并增加流程处理人ApplyUser信息

            string[] userArray = selprocuser.Split(',');
            foreach (string userId in userArray)
            {
                ApplyFlowInfo addFlowInfo = new ApplyFlowInfo();
                addFlowInfo.ApplyId  = applyId;
                addFlowInfo.FlowName = "阅办";
                addFlowInfo.IsAdd    = 1;
                addFlowInfo.ProcType = (int)ProcType.阅办; //阅办
                addFlowInfo.ProcUser = userId;           //该步骤的处理人
                addFlowInfo.OrderNo  = orderno++;

                baseDal.Insert(addFlowInfo);
            }

            foreach (string userId in userArray)
            {
                var userInfo = new ApplyUserInfo(applyId, Convert.ToInt32(userId.Trim()));
                BLLFactory <ApplyUser> .Instance.Insert(userInfo);
            }

            #endregion

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// 在当前的流程上增加一个流程
        /// </summary>
        /// <param name="applyId">申请单ID</param>
        /// <param name="selprocuser">流程用户</param>
        /// <returns>增加成功返回True,否则False</returns>
        public bool AddAppFlowByPrevious(string applyId, string selprocuser)
        {
            IApplyFlow    dal             = baseDal as IApplyFlow;
            ApplyFlowInfo currentFlowInfo = dal.GetLastCompletedFlow(applyId);

            if (currentFlowInfo == null)
            {
                return(false);
            }

            string condition = string.Format(" Apply_id='{0}' and Order_no>{1} ", currentFlowInfo.ApplyId, currentFlowInfo.OrderNo);
            string orderBy   = " order by Order_no ";

            List <ApplyFlowInfo> appFlowAfter = baseDal.Find(condition, orderBy);//原有在当前步骤之后的所有步骤

            if (appFlowAfter != null)
            {
                try
                {
                    #region 增加一流程,顺序为当前流程+1

                    //复制当前流程的数据
                    ApplyFlowInfo addFlowInfo = new ApplyFlowInfo();
                    addFlowInfo.ApplyId    = currentFlowInfo.ApplyId;
                    addFlowInfo.CanBack    = currentFlowInfo.CanBack;
                    addFlowInfo.CanBeBack  = currentFlowInfo.CanBeBack;
                    addFlowInfo.CanSms     = currentFlowInfo.CanSms;
                    addFlowInfo.CondVerify = currentFlowInfo.CondVerify;
                    addFlowInfo.FlowName   = currentFlowInfo.FlowName;
                    addFlowInfo.IsAdd      = 1;
                    addFlowInfo.MayAddflow = currentFlowInfo.MayAddflow;
                    addFlowInfo.MayMsgsend = currentFlowInfo.MayMsgsend;
                    addFlowInfo.MaySelproc = currentFlowInfo.MaySelproc;
                    addFlowInfo.MsgSendTo  = currentFlowInfo.MsgSendTo;
                    addFlowInfo.ProcType   = currentFlowInfo.ProcType;
                    addFlowInfo.ProcUser   = selprocuser;//该步骤的处理人
                    addFlowInfo.SmsProc    = currentFlowInfo.SmsProc;

                    addFlowInfo.OrderNo = currentFlowInfo.OrderNo + 1;
                    bool added = baseDal.Insert(addFlowInfo);

                    #endregion

                    if (added)
                    {
                        //在原有流程顺序上增加1
                        foreach (ApplyFlowInfo info in appFlowAfter)
                        {
                            info.OrderNo += 1;
                            baseDal.Update(info, info.ID.ToString());
                        }

                        return(true);
                    }
                }
                catch
                {
                    return(false);
                }
            }
            return(false);
        }
Esempio n. 3
0
        /// <summary>
        /// 获取对应表单下的所有流程,根据order_no由小到大排序
        /// </summary>
        /// <param name="applyId">申请单ID</param>
        /// <returns></returns>
        public List <ApplyFlowInfo> GetAllByApplyId(string applyId)
        {
            IApplyFlow dal = baseDal as IApplyFlow;

            return(dal.GetAllByApplyId(applyId));
        }
Esempio n. 4
0
        /// <summary>
        /// 设置流程为已处理并增加意见
        /// </summary>
        /// <param name="id">流程ID</param>
        /// <param name="apply_id">申请单ID</param>
        /// <param name="opinion">处理意见</param>
        /// <returns></returns>
        public bool HandleFlowWithOpinion(string id, string apply_id, string opinion)
        {
            IApplyFlow dal = baseDal as IApplyFlow;

            return(dal.HandleFlowWithOpinion(id, apply_id, opinion));
        }
Esempio n. 5
0
        /// <summary>
        /// 获取下一个未被处理的流程记录
        /// </summary>
        /// <param name="applyId">申请单ID</param>
        /// <param name="flowId">当前流程ID</param>
        /// <returns></returns>
        public ApplyFlowInfo GetNextUnHandledFlow(string applyId, string flowId)
        {
            IApplyFlow dal = baseDal as IApplyFlow;

            return(dal.GetNextUnHandledFlow(applyId, flowId));
        }
Esempio n. 6
0
        /// <summary>
        /// 获取最后一条完成的流程
        /// </summary>
        /// <param name="applyId">申请单ID</param>
        /// <returns></returns>
        public ApplyFlowInfo GetLastCompletedFlow(string applyId)
        {
            IApplyFlow dal = baseDal as IApplyFlow;

            return(dal.GetLastCompletedFlow(applyId));
        }