/// <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); }
/// <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); }
/// <summary> /// 根据审批岗位获取审批人(包括岗位id为0的发起人) /// </summary> /// <param name="recordModel"></param> /// <returns></returns> public List <GAppvalPost4OperModel> GetOperators(GAppvalRecordModel recordModel) { List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>(); if (recordModel == null) { return(operModels); } if (recordModel.PostPhid == 0) { if (recordModel.RefbillPhid == 0) { return(operModels); } else { try { 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 }); } catch (Exception e) { throw new Exception("查询发起人失败!"); } } } else { try { operModels = GAppvalPost4OperFacade.GetOperatorsByPostID(recordModel.PostPhid); } catch (Exception e) { throw new Exception("根据岗位id查找操作失败!"); } } return(operModels); }
/// <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); }