Beispiel #1
0
        /// <summary>
        /// 根据流程id获取整个流程的岗位人员
        /// </summary>
        /// <param name="refbillPhid">单据主键</param>
        /// <param name="procPhid">流程id</param>
        /// <returns></returns>
        public List <GAppvalPostModel> GetBackApprovalPost2(long refbillPhid, long procPhid)
        {
            List <GAppvalPostModel> postModels = new List <GAppvalPostModel>();

            postModels.Add(new GAppvalPostModel
            {
                PhId  = 0,
                FName = "发起人"
            });

            //当前审批流程的所有审批岗位
            List <GAppvalPostModel> allPosts = GAppvalPostFacade.FindAppvalPostByProcID(procPhid).OrderBy(t => t.Seq).ToList();

            postModels.AddRange(allPosts);

            foreach (GAppvalPostModel postModel in postModels)
            {
                if (postModel.PhId == 0)
                {
                    if (refbillPhid == 0)
                    {
                        postModel.Operators = null;
                    }
                    else
                    {
                        try
                        {
                            List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>();
                            GAppvalRecordModel           model      = GAppvalRecordFacade.Find(t => t.RefbillPhid == refbillPhid && t.PostPhid == 0 && t.FBilltype == BillType.BeginProject).Data.ToList().OrderByDescending(t => t.FSendDate).ToList()[0];
                            User2Model user = UserFacade.Find(model.OperaPhid).Data;
                            operModels.Add(new GAppvalPost4OperModel
                            {
                                PostPhid     = 0,
                                OperatorPhid = user.PhId,
                                OperatorName = user.UserName
                            });
                            postModel.Operators = operModels;
                        }
                        catch (Exception e)
                        {
                            throw new Exception("查询发起人失败!");
                        }
                    }
                }
                else
                {
                    try
                    {
                        postModel.Operators = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);
                    }
                    catch (Exception e)
                    {
                        throw new Exception("根据岗位id查找操作失败!");
                    }
                }
            }
            return(postModels);
        }
Beispiel #2
0
        /// <summary>
        /// 根据审批流程id获取审批岗位
        /// </summary>
        /// <param name="proc_phid">审批流程id</param>
        /// <returns></returns>
        public List <GAppvalPostModel> GetApprovalPost(long proc_phid)
        {
            if (proc_phid == 0)
            {
                return(new List <GAppvalPostModel>());
            }

            return(GAppvalPostFacade.FindAppvalPostByProcID(proc_phid));
        }
Beispiel #3
0
        /// <summary>
        /// 根据审批流程id,当前岗位的id,查找下一岗位的审批人
        /// </summary>
        /// <param name="proc_phid">审批流程id</param>
        /// <param name="post_phid">审批岗位id</param>
        /// <param name="refbillPhid">关联单据主键</param>
        /// <param name="fBilltype">关联单据类型</param>
        /// <returns></returns>
        public GAppvalPostModel GetNextStepOperator(long proc_phid, long post_phid, long refbillPhid, string fBilltype)
        {
            GAppvalPostModel postModel = null;

            //根据审批流程的id查找审批岗位
            List <GAppvalPostModel> postModels = GAppvalPostFacade.FindAppvalPostByProcID(proc_phid);

            if (postModels == null || postModels.Count == 0)
            {
                postModel           = new GAppvalPostModel();
                postModel.Operators = new List <GAppvalPost4OperModel>();
                return(postModel);
            }

            //当前审批岗位
            GAppvalPostModel presentPost = postModels.Find(t => t.PhId == post_phid);
            //当前岗位的审批记录
            List <GAppvalRecordModel> recordModels = GAppvalRecordFacade.Find(t => t.RefbillPhid == refbillPhid && t.FBilltype == fBilltype && t.PostPhid == presentPost.PhId).Data.ToList();
            //当前岗位审批未审批的审批记录
            List <GAppvalRecordModel> waitRecords = recordModels.FindAll(t => t.FApproval == (byte)Approval.Wait);

            if (presentPost.FMode == (Byte)ModeType.Yes && waitRecords.Count != 1)
            {
                postModel           = new GAppvalPostModel();
                postModel.Operators = new List <GAppvalPost4OperModel>();
                return(postModel);
            }

            //找到下一个岗位
            int seq = postModels.Find(t => t.PhId == post_phid).Seq;
            GAppvalPostModel nextAppvalPost = postModels.OrderBy(t => t.Seq).ToList().Find(t => t.Seq > seq);

            if (nextAppvalPost == null)
            {
                postModel           = new GAppvalPostModel();
                postModel.Operators = new List <GAppvalPost4OperModel>();
                return(postModel);
            }
            postModel = nextAppvalPost;

            //根据岗位id查找所有的操作员
            List <GAppvalPost4OperModel> operatorModels = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);

            postModel.Operators = operatorModels;

            return(postModel);
        }
Beispiel #4
0
        /// <summary>
        /// 获取审批流程明细
        /// </summary>
        /// <param name="approvalTypeId">审批类型id</param>
        /// <param name="bType">单据类型</param>
        /// <param name="proc_code">审批流程编码</param>
        /// <param name="orgids">组织id集合</param>
        /// <returns></returns>
        public GAppvalProcModel GetProcDetail(long approvalTypeId, string bType, string proc_code, List <long> orgids)
        {
            //获取审批流程
            List <GAppvalProcModel> procModels = GAppvalProcFacade.GetAppvalProc(orgids, bType, approvalTypeId);

            if (procModels == null || procModels.Count == 0)
            {
                throw new Exception("审批流程为空!");
            }
            else
            {
                procModels = procModels.FindAll(t => t.FCode == proc_code);
            }

            List <Organize> organizes = new List <Organize>();

            foreach (GAppvalProcModel model in procModels)
            {
                Organize organize = new Organize();
                organize.OrgId   = model.OrgPhid;
                organize.OrgCode = model.OrgCode;
                organize.OrgName = model.OrgName;
                organizes.Add(organize);
            }
            GAppvalProcModel procModel = procModels[0];

            procModel.Organizes = organizes;

            //获取审批流程对应的审批岗位
            List <GAppvalPostModel> postModels = GAppvalPostFacade.FindAppvalPostByProcID(procModel.PhId);

            procModel.PostModels = postModels;

            //获取审批流程的启用条件
            FindedResults <GAppvalProcCondsModel> findedResults = GAppvalProcCondsFacade.Find(t => t.ProcPhid == procModel.PhId);

            if (findedResults != null && findedResults.Data != null && findedResults.Data.Count > 0)
            {
                List <GAppvalProcCondsModel> procCondsModels = findedResults.Data.ToList();
                procModel.CondsModels = procCondsModels;
            }

            return(procModel);
        }
Beispiel #5
0
        /// <summary>
        /// 送审的时候,根据审批流程id,获取第一个审批岗位的审批人
        /// </summary>
        /// <param name="phid">审批流程id</param>
        /// <returns></returns>
        public GAppvalPostModel GetFirstStepOperator(long phid)
        {
            GAppvalPostModel postModel = null;

            //根据审批流程的id查找审批岗位
            List <GAppvalPostModel> postModels = GAppvalPostFacade.FindAppvalPostByProcID(phid);

            if (postModels == null || postModels.Count == 0)
            {
                postModel           = new GAppvalPostModel();
                postModel.Operators = new List <GAppvalPost4OperModel>();
                return(postModel);
            }
            //找到第一个岗位
            postModel = postModels.OrderBy(t => t.Seq).ToList()[0];
            //根据岗位id查找所有的操作员
            List <GAppvalPost4OperModel> operatorModels = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);

            postModel.Operators = operatorModels;

            return(postModel);
        }
Beispiel #6
0
 /// <summary>
 /// 保存数据
 /// </summary>
 /// <param name="gAppvalPostEntity"></param>
 /// <param name="gAppvalPost4OperEntities"></param>
 /// <returns></returns>
 public SavedResult <Int64> SaveGAppvalPost(GAppvalPostModel gAppvalPostEntity, List <GAppvalPost4OperModel> gAppvalPost4OperEntities)
 {
     return(GAppvalPostFacade.SaveGAppvalPost(gAppvalPostEntity, gAppvalPost4OperEntities));
 }
Beispiel #7
0
        /// <summary>
        /// 回退时,获取之前的所有岗位,包括发起人(岗位id为0)
        /// </summary>
        /// <param name="recordModel"></param>
        /// <returns></returns>
        public List <GAppvalPostModel> GetBackApprovalPost(GAppvalRecordModel recordModel)
        {
            List <GAppvalPostModel> postModels = new List <GAppvalPostModel>();

            if (recordModel == null || recordModel.ProcPhid == 0 || recordModel.PostPhid == 0)
            {
                return(postModels);
            }

            postModels.Add(new GAppvalPostModel {
                PhId  = 0,
                FName = "发起人"
            });

            //当前审批流程的所有审批岗位
            List <GAppvalPostModel> allPosts = GAppvalPostFacade.FindAppvalPostByProcID(recordModel.ProcPhid).OrderBy(t => t.Seq).ToList();
            //当前岗位
            GAppvalPostModel presentPost = allPosts.Find(t => t.PhId == recordModel.PostPhid);
            //当前岗位之前的岗位
            List <GAppvalPostModel> beforePosts = allPosts.FindAll(t => t.Seq < presentPost.Seq);

            postModels.AddRange(beforePosts);

            foreach (GAppvalPostModel postModel in postModels)
            {
                if (postModel.PhId == 0)
                {
                    if (recordModel.RefbillPhid == 0)
                    {
                        postModel.Operators = null;
                    }
                    else
                    {
                        try
                        {
                            List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>();
                            GAppvalRecordModel           model      = GAppvalRecordFacade.Find(t => t.RefbillPhid == recordModel.RefbillPhid && t.PostPhid == 0).Data[0];
                            User2Model user = UserFacade.Find(model.OperaPhid).Data;
                            operModels.Add(new GAppvalPost4OperModel
                            {
                                PostPhid     = 0,
                                OperatorPhid = user.PhId,
                                OperatorName = user.UserName
                            });
                            postModel.Operators = operModels;
                        }
                        catch (Exception e)
                        {
                            throw new Exception("查询发起人失败!");
                        }
                    }
                }
                else
                {
                    try
                    {
                        postModel.Operators = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);
                    }
                    catch (Exception e)
                    {
                        throw new Exception("根据岗位id查找操作失败!");
                    }
                }
            }


            return(postModels);
        }