Example #1
0
        /// <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;
        }
Example #2
0
        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;
        }