/// <summary> /// 提供给修改流程人员的接口 /// </summary> /// <param name="BillNo"></param> /// <param name="Type"></param> /// <param name="WorkFlowID"></param> /// <returns></returns> public string GetTransferData(string BillNo, out string WorkFlowID) { string Object_id = string.Empty; if (BillNo.Contains("FB")) { WorkFlowID = MongoDBHelper.FeeBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).FirstOrDefault(); if (string.IsNullOrEmpty(WorkFlowID)) { WorkFlowID = MongoDBHelper.RefundBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).FirstOrDefault(); } } else if (BillNo.Contains("FT")) { WorkFlowID = MongoDBHelper.NoticeBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).FirstOrDefault(); } else if (BillNo.Contains("JS")) { WorkFlowID = MongoDBHelper.BorrowBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).FirstOrDefault(); } else { WorkFlowID = MongoDBHelper.RefundBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).FirstOrDefault(); } WorkFlowProxy.WorkFlowProxy proxy = new WorkFlowProxy.WorkFlowProxy(); List<WorkFlowEngine.WorkFlowTable> model = proxy.GetWorkFlowTable(WorkFlowID); var St_1 = model.Where(c => c.ActivityStatus == "1").FirstOrDefault(); if (St_1 != null) { var St_2 = St_1.TableLinkList.Where(c => c.UserList.Count > 0).FirstOrDefault(); if (St_2 != null) { Object_id = St_2.UserList[0]._id.ToString(); } } return Object_id; }
public List<FlowInstance> GetWorkFlowListPlus(string BillNo, int Type) { string WorkFlowID = ""; try { switch (Type) { //费用报销单 case 1: WorkFlowID = MongoDBHelper.FeeBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).Single(); break; //付款通知书 case 2: WorkFlowID = MongoDBHelper.NoticeBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).Single(); break; //借款单 case 3: WorkFlowID = MongoDBHelper.BorrowBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).Single(); break; //还款单 case 4: WorkFlowID = MongoDBHelper.RefundBill.Find(c => c.BillNo == BillNo).Project(x => x.WorkFlowID).Single(); break; default: break; } List<FlowInstance> Instance = new List<FlowInstance>(); if (!string.IsNullOrEmpty(WorkFlowID)) { #region 旧方法 #endregion //ActivityStatus节点状态: 0初始化,1开始,2结束 //LinkKeyword 任务分配的关键词 0:拒绝 1:同意 2:驳回 3:初始化 4:null (按钮的显示) //AssignmentKeyword 操作状态 0初始化 1结束 //Status 0拒绝 1同意 2驳回 WorkFlowProxy.WorkFlowProxy proxy = new WorkFlowProxy.WorkFlowProxy(); List<WorkFlowEngine.WorkFlowTable> model = proxy.GetWorkFlowTable(WorkFlowID); if (model != null && model.Count > 0) { foreach (var item in model) { FlowInstance SingeModel = new FlowInstance(); if (item.Name != "开始" && item.Name != "结束" && item.Name != "重新提交") { SingeModel.Description = item.Name; SingeModel.PersonName = new List<string>(); SingeModel.KeyWord = new List<int>(); SingeModel.StringTime = new List<string>(); SingeModel.Remark = ""; SingeModel.AuditList = new List<string>(); if (item.ActivityStatus == "2" || (item.ActivityStatus == "1" && item.TableLinkList.Where(c => c.UserList.Where(p => p.Status == "2" || p.Status == "1") != null) != null)) { if (item.TableLinkList != null && item.TableLinkList.Count > 0) { SingeModel.ActiveID = item.ActivityID; foreach (var item1 in item.TableLinkList) { if (!string.IsNullOrEmpty(item1.AssignmentKeyword) && item1.AssignmentKeyword == "1") { if (item1.UserList != null && item1.UserList.Count > 0) { foreach (var item2 in item1.UserList) { SingeModel.PersonName.Add(item2.UserCode); SingeModel.KeyWord.Add(Convert.ToInt32(item2.Status)); SingeModel.StringTime.Add(item2.DateTime.ToString("yyyy-MM-dd")); SingeModel.Remark = item2.Remark; } } } else if (!string.IsNullOrEmpty(item1.AssignmentKeyword) && item1.AssignmentKeyword == "0") { if (item1.UserList != null && item1.UserList.Count > 0) { foreach (var item2 in item1.UserList) { if (item2.Status == "1" || item2.Status == "2") { SingeModel.PersonName.Add(item2.UserCode); SingeModel.KeyWord.Add(Convert.ToInt32(item2.Status)); SingeModel.StringTime.Add(item2.DateTime.ToString("yyyy-MM-dd")); SingeModel.Remark = item2.Remark; } if (item2.Status == "3") { SingeModel.AuditList.Add(item2.UserCode); } SingeModel.NodeState = item.ActivityStatus; } } } } } } Instance.Add(SingeModel); } } } } return Instance; } catch (Exception ex) { Marisfrolg.Public.Logger.Write("获取列表数据失败:" + ex.ToString() + "," + string.Format("WorkFlowID为:{0},BillNo为{1},type为:{2}", WorkFlowID, BillNo, Type)); } return null; }