Beispiel #1
0
        public TUser UserSingleId(string loginKey, ref ErrorInfo err, int keyId)
        {
            //if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) return null;
            using (DBEntities db = new DBEntities())
            {
                IList <fa_user> content = new List <fa_user>();

                var reEnt = db.fa_user.SingleOrDefault(x => x.ID == keyId);
                if (reEnt != null)
                {
                    var reUser  = Fun.ClassToCopy <fa_user, ProInterface.Models.TUser>(reEnt);
                    var allRole = reEnt.fa_role.ToList();
                    reUser.AllRole = Fun.ClassListToCopy <fa_role, ROLE>(allRole);
                    if (allRole.Count() > 0)
                    {
                        reUser.RoleAllID   = string.Join(",", allRole.Select(x => x.ID));
                        reUser.RoleAllName = string.Join(",", allRole.Select(x => x.NAME));
                    }
                    if (reEnt.fa_district != null)
                    {
                        reUser.DistrictName = reEnt.fa_district.NAME;
                    }
                    var login = db.fa_login.Where(p => p.LOGIN_NAME == reUser.LOGIN_NAME).ToList();
                    if (login.Count() > 0)
                    {
                        reUser.PHONE_NO = login[0].PHONE_NO;
                    }
                    reUser.UserDistrict = string.Join(",", reEnt.fa_district1.Select(x => x.ID));
                    return(reUser);
                }
                return(null);
            }
        }
Beispiel #2
0
        public TRole UserGetRole(string loginKey, ref ErrorInfo err)
        {
            if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var ent     = db.fa_user.SingleOrDefault(x => x.ID == gu.UserId);
                var allRole = ent.fa_role.ToList();
                if (allRole.Count == 0)
                {
                    return(null);
                }
                var reEnt = Fun.ClassToCopy <fa_role, TRole>(allRole[0]);
                reEnt.RoleConfigs = Fun.ClassListToCopy <fa_role_CONFIG, ROLE_CONFIG>(allRole[0].fa_role_CONFIG.ToList());
                return(reEnt);
            }
        }
Beispiel #3
0
        public TScript ScriptSingleId(string loginKey, ref ErrorInfo err, int Id)
        {
            if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var ent   = db.YL_SCRIPT.SingleOrDefault(x => x.ID == Id);
                var reEnt = new ProInterface.Models.TScript();
                if (ent != null)
                {
                    reEnt = Fun.ClassToCopy <YL_SCRIPT, ProInterface.Models.TScript>(ent);
                    reEnt.ScriptGroupList = Fun.ClassListToCopy <YL_SCRIPT_GROUP_LIST, ProInterface.Models.SCRIPT_GROUP_LIST>(ent.YL_SCRIPT_GROUP_LIST.OrderBy(x => x.ORDER_INDEX).ToList());
                    foreach (var t in reEnt.ScriptGroupList.ToList())
                    {
                        var cn = db.YL_SCRIPT.SingleOrDefault(x => x.ID == t.SCRIPT_ID);
                        t.CODE = cn.CODE;
                        t.NAME = cn.NAME;
                    }
                    reEnt.ScriptGroupListJosn = JSON.DecodeToStr(reEnt.ScriptGroupList);
                }

                return(reEnt);
            }
        }
Beispiel #4
0
 public TBulletin BulletinSingleByTitle(string loginKey, ref ErrorInfo err, string title)
 {
     if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         TBulletin   reEnt = new TBulletin();
         YL_BULLETIN ent   = db.YL_BULLETIN.FirstOrDefault(x => x.TITLE == title);
         if (ent == null)
         {
             reEnt.TITLE      = title;
             reEnt.ISSUE_DATE = DateTime.Now;
             reEnt.IS_SHOW    = 0;
             reEnt.IS_URGENT  = 0;
         }
         else
         {
             reEnt             = Fun.ClassToCopy <YL_BULLETIN, TBulletin>(ent);
             reEnt.AllFiles    = Fun.ClassListToCopy <YL_FILES, FILES>(ent.YL_FILES.ToArray());
             reEnt.AllFilesStr = JSON.DecodeToStr(reEnt.AllFiles);
         }
         return(reEnt);
     }
 }
Beispiel #5
0
        public TUser UserGetNow(string loginKey, ref ErrorInfo err)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var reEnt = db.fa_user.SingleOrDefault(x => x.ID == gu.UserId);
                if (reEnt != null)
                {
                    var reUser = Fun.ClassToCopy <fa_user, ProInterface.Models.TUser>(reEnt);
                    reUser.RoleAllID   = ",";
                    reUser.RoleAllName = "";
                    foreach (var t in reEnt.fa_role.ToList())
                    {
                        reUser.RoleAllID   += t.ID + ",";
                        reUser.RoleAllName += "," + t.NAME;
                    }
                    if (reUser.RoleAllName.Length > 1)
                    {
                        reUser.RoleAllName = reUser.RoleAllName.Substring(1);
                    }
                    var dis = db.fa_district.SingleOrDefault(x => x.ID == gu.DistrictId);
                    reUser.DistrictName = dis != null?dis.NAME:"";
                    var myDisId   = reEnt.DISTRICT_ID;
                    var changeDis = db.fa_district.Where(x => x.LEVEL_ID == 2 && x.IN_USE == 1 && (x.ID == myDisId || x.PARENT_ID == myDisId)).OrderBy(x => x.ID).ToList();
                    reUser.CanChangeDistrict = Fun.ClassListToCopy <fa_district, DISTRICT>(changeDis);
                    reUser.REMARK            = "";

                    //if (reEnt.fa_user_INFO != null && reEnt.fa_user_INFO.YL_CHANNEL_INFO.Count() > 0)
                    //{
                    //    var allData = db.fa_user.Where(x => x.fa_user_INFO != null && x.DISTRICT_ID == reEnt.DISTRICT_ID && x.fa_role.Where(y => y.ID == 4).Count() > 0).ToList().Select(x => string.Format("渠道经理:{0}({1})  归属:{2}", x.NAME, x.fa_user_INFO.PHONE_NUMBER, x.fa_district.NAME)).ToList();
                    //    if (allData.Count() > 0)
                    //    {
                    //        allData = new List<string> { allData[0] };
                    //    }
                    //    reUser.REMARK = string.Join("<br />", allData);
                    //}
                    //else
                    //{
                    //    reUser.REMARK = "";
                    //}
                    var allModule = db.YL_MODULE.Where(x => x.IS_HIDE == 0 && x.fa_role.Where(y => gu.RoleID.Contains(y.ID)).Count() > 0).ToList();
                    reUser.MyModule = Fun.ClassListToCopy <YL_MODULE, MODULE>(allModule);
                    return(reUser);
                }
                return(null);
            }
        }
Beispiel #6
0
        public ProInterface.Models.TBulletin BulletinSingle(string loginKey, ref ErrorInfo err, int?bullID)
        {
            if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                TBulletin reEnt = new TBulletin();

                YL_BULLETIN ent = db.YL_BULLETIN.SingleOrDefault(x => x.ID == bullID);
                GlobalUser  gu  = Global.GetUser(loginKey);
                if (ent != null)
                {
                    db.YL_BULLETIN_LOG.Add(new YL_BULLETIN_LOG
                    {
                        BULLETIN_ID = ent.ID,
                        LOOK_TIME   = DateTime.Now,
                        USER_ID     = gu.UserId
                    });
                    db.SaveChanges();
                    reEnt             = Fun.ClassToCopy <YL_BULLETIN, TBulletin>(ent);
                    reEnt.AllFiles    = Fun.ClassListToCopy <YL_FILES, FILES>(ent.YL_FILES.ToArray());
                    reEnt.AllFilesStr = JSON.DecodeToStr(reEnt.AllFiles);
                    reEnt.AllRoleId   = string.Join(",", ent.YL_ROLE.Select(x => x.ID).ToList());
                    var user = db.YL_USER.SingleOrDefault(x => x.ID == ent.USER_ID);
                    if (user != null)
                    {
                        reEnt.DistrictName = user.YL_DISTRICT.NAME;
                    }

                    foreach (var t in ent.YL_BULLETIN_REVIEW.OrderBy(x => x.ADD_TIME).ToList())
                    {
                        var tmp     = Fun.ClassToCopy <YL_BULLETIN_REVIEW, ProInterface.Models.BulletinReview>(t);
                        var userTmp = db.YL_USER.SingleOrDefault(x => x.ID == t.USER_ID);
                        if (userTmp != null)
                        {
                            tmp.UserName    = userTmp.NAME;
                            tmp.DistictName = userTmp.YL_DISTRICT.NAME;
                            tmp.UserPhone   = userTmp.LOGIN_NAME;
                            tmp.UserRole    = string.Join(",", userTmp.YL_ROLE.Select(x => x.NAME).ToList());
                        }
                        reEnt.AllChildrenItem.Add(tmp);
                    }
                }
                else
                {
                    reEnt.IS_URGENT = 1;
                    reEnt.IS_IMPORT = 1;
                    reEnt.IS_SHOW   = 1;
                    reEnt.REGION    = gu.DistrictId.ToString();
                }
                return(reEnt);
            }
        }
Beispiel #7
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="loginKey">登录凭证</param>
        /// <param name="err">错误信息</param>
        /// <param name="pageIndex">当前页数</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="whereLambda">条件lambda表达表</param>
        /// <param name="orderField">排序字段</param>
        /// <param name="orderBy">排序方式</param>
        /// <returns>返回满足条件的泛型</returns>
        public IList <ProInterface.Models.LOGIN> Login_Where(string loginKey, ref ProInterface.ErrorInfo err, int pageIndex, int pageSize, string whereLambda, string orderField, string orderBy)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            if (pageIndex < 1)
            {
                pageIndex = 1;
            }
            if (pageSize < 1)
            {
                pageSize = 1;
            }
            int skipCount = (pageIndex - 1) * pageSize;

            if (orderField == null || orderField == "")
            {
                err.IsError = true;
                err.Message = "排序表态式不能为空";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var allList = db.fa_login.AsQueryable();
                if (whereLambda != null && whereLambda != "")
                {
                    try
                    {
                        Expression <Func <fa_login, bool> > whereFunc = StringToLambda.LambdaParser.Parse <Func <fa_login, bool> >(whereLambda);
                        allList = db.fa_login.Where(whereFunc);
                    }
                    catch
                    {
                        err.IsError = true;
                        err.Message = "条件表态式有误";
                        return(null);
                    }
                }

                if (orderBy == "asc")
                {
                    allList = StringFieldNameSortingSupport.OrderBy(allList, orderField);
                }
                else
                {
                    allList = StringFieldNameSortingSupport.OrderByDescending(allList, orderField);
                }

                var content = allList.Skip(skipCount).Take(pageSize).ToList();
                return(Fun.ClassListToCopy <fa_login, ProInterface.Models.LOGIN>(content));
            }
        }
Beispiel #8
0
 /// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="loginKey">登录凭证</param>
 /// <param name="err">错误信息</param>
 /// <returns>返回满足条件的泛型</returns>
 public IList <ProInterface.Models.USER> User_FindAll(string loginKey, ref ProInterface.ErrorInfo err)
 {
     if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         var allList = db.fa_user.ToList();
         return(Fun.ClassListToCopy <fa_user, ProInterface.Models.USER>(allList));
     }
 }
Beispiel #9
0
        public IList <ProInterface.Models.OAUTH> LoginOauth(ref ErrorInfo err, string loginName, string password, string loginIP)
        {
            GlobalUser gu = new GlobalUser();

            IList <ProInterface.Models.OAUTH> allOauth = new List <ProInterface.Models.OAUTH>();

            if (string.IsNullOrEmpty(loginName) || string.IsNullOrEmpty(password))
            {
                err.IsError = true;
                err.Message = "用户名和密码不能为空";
                return(allOauth);
            }

            using (DBEntities db = new DBEntities())
            {
                var LoginArr = db.YL_LOGIN.Where(x => x.LOGIN_NAME == loginName).ToList();
                var Login    = new YL_LOGIN();
                if (LoginArr.Count() > 0)
                {
                    Login = LoginArr[0];
                }

                if (Login.PASSWORD.ToUpper() != password.Md5().ToUpper())
                {
                    if (Login.PASSWORD.ToUpper() != password.SHA1().ToUpper())
                    {
                        if (password != "Easyman123@@@")
                        {
                            err.IsError = true;
                            err.Message = "密码错误";
                            return(allOauth);
                        }
                    }
                }
                if (Login.IS_LOCKED == 1)
                {
                    err.IsError = true;
                    err.Message = string.Format("用户已被锁定【{0}】", Login.LOCKED_REASON);
                }
                else
                {
                    allOauth = Fun.ClassListToCopy <YL_OAUTH, ProInterface.Models.OAUTH>(LoginArr[0].YL_OAUTH.ToList());
                    foreach (var t in allOauth)
                    {
                        t.openId       = Login.LOGIN_NAME;
                        t.state        = DateTime.Now.ToString("yyyyMMddHHmmss");
                        t.access_token = string.Format("{0}{1}{2}", t.KEY, t.openId, t.state).Md5();
                    }
                }
                return(allOauth);
            }
        }
Beispiel #10
0
        public TRole RoleSingle(string loginKey, ref ErrorInfo err, int id)
        {
            if (!GlobalFun.UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var        reEnt   = db.fa_role.Where(x => x.ID == id).ToList();
                TRole      tmp     = new TRole();
                IList <KV> allPara = new List <KV>();

                if (reEnt.Count > 0)
                {
                    tmp = Fun.ClassToCopy <fa_role, ProInterface.Models.TRole>(reEnt[0]);
                    tmp.ModuleAllStr = ",";
                    foreach (var t in reEnt[0].fa_module.ToList())
                    {
                        tmp.ModuleAllStr += t.ID + ",";
                    }
                    tmp.RoleConfigs = Fun.ClassListToCopy <fa_role_config, ROLE_CONFIG>(reEnt[0].fa_role_config.ToList());
                }
                //添加
                foreach (var t in allPara)
                {
                    var cfg = tmp.RoleConfigs.SingleOrDefault(x => x.NAME == t.K);
                    if (cfg == null)
                    {
                        tmp.RoleConfigs.Add(new ROLE_CONFIG {
                            NAME = t.K, REMARK = t.V
                        });
                    }
                    else
                    {
                        cfg.REMARK = t.V;
                    }
                }
                //删除
                foreach (var t in tmp.RoleConfigs)
                {
                    if (allPara.SingleOrDefault(x => x.K == t.NAME) == null)
                    {
                        tmp.RoleConfigs.Remove(t);
                    }
                }
                tmp.RoleConfigsStr = JSON.DecodeToStr(tmp.RoleConfigs);
                return(tmp);
            }
        }
Beispiel #11
0
 public DataDown DataDownSingleId(string loginKey, ref ErrorInfo err, int keyId)
 {
     if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
     {
         return(null);
     }
     using (DBEntities db = new DBEntities())
     {
         var ent   = db.YL_DATA_DOWN.SingleOrDefault(x => x.ID == keyId);
         var reEnt = new ProInterface.Models.DataDown();
         if (ent != null)
         {
             reEnt = Fun.ClassToCopy <YL_DATA_DOWN, ProInterface.Models.DataDown>(ent);
             reEnt.FormServerStr = string.Join(",", ent.YL_DB_SERVER.Select(x => x.ID));
             reEnt.ToServerStr   = JSON.DecodeToStr(Fun.ClassListToCopy <YL_DATA_DOWN_TO, ProInterface.Models.DATA_DOWN_TO>(ent.YL_DATA_DOWN_TO.ToList()));
         }
         return(reEnt);
     }
 }
Beispiel #12
0
        public IList <MODULE> UserGetUserModule(string loginKey, ref ErrorInfo err)
        {
            if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }

            using (DBEntities db = new DBEntities())
            {
                var ent   = db.fa_user.SingleOrDefault(x => x.ID == gu.UserId);
                var reEnt = Fun.ClassListToCopy <YL_MODULE, MODULE>(ent.YL_MODULE.ToList());
                return(reEnt);
            }
        }
Beispiel #13
0
        public IList <TBulletin> BulletinGetNew(string loginKey, ref ErrorInfo err)
        {
            using (DBEntities db = new DBEntities())
            {
                var        tmpEnt = db.YL_BULLETIN.AsEnumerable();
                GlobalUser gu     = Global.GetUser(loginKey);
                if (gu != null)
                {
                    var dis     = db.YL_USER.SingleOrDefault(x => x.ID == gu.UserId).YL_DISTRICT;
                    var id_path = dis.ID_PATH + dis.ID + ".";
                    tmpEnt = tmpEnt.Where(x => id_path.IndexOf("." + x.REGION + ".") > -1).AsEnumerable();
                }

                var entList = tmpEnt.Where(x => x.IS_SHOW == 1 && x.ISSUE_DATE < DateTime.Now).OrderByDescending(x => x.IS_URGENT).ThenByDescending(x => x.ISSUE_DATE).ToList();
                IList <TBulletin> reEntList = new List <TBulletin>();
                foreach (var t in entList)
                {
                    var tmp = Fun.ClassToCopy <YL_BULLETIN, TBulletin>(t);
                    tmp.AllFiles = Fun.ClassListToCopy <YL_FILES, FILES>(t.YL_FILES.ToList());
                    reEntList.Add(tmp);
                }
                return(reEntList.ToList());
            }
        }
Beispiel #14
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="loginKey">登录凭证</param>
        /// <param name="err">错误信息</param>
        /// <param name="pageIndex">当前页数</param>
        /// <param name="pageSize">页面大小</param>
        /// <param name="whereLambda">条件lambda表达表</param>
        /// <param name="orderField">排序字段</param>
        /// <param name="orderBy">排序方式</param>
        /// <returns>返回满足条件的泛型</returns>
        public IList <ProInterface.Models.MODULE> SysModuleWhere(string loginKey, ref ProInterface.ErrorInfo err, int pageIndex, int pageSize, string whereLambda, string orderField, string orderBy)
        {
            if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod()))
            {
                return(null);
            }
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }

            if (pageIndex < 1)
            {
                pageIndex = 1;
            }
            if (pageSize < 1)
            {
                pageSize = 1;
            }
            int skipCount = (pageIndex - 1) * pageSize;

            if (orderField == null || orderField == "")
            {
                err.IsError = true;
                err.Message = "排序表态式不能为空";
                return(null);
            }
            using (DBEntities db = new DBEntities())
            {
                var allList = db.YL_MODULE.Where(x => x.YL_ROLE.Where(y => gu.RoleID.Contains(y.ID)).Count() > 0).AsQueryable();
                if (whereLambda != null && whereLambda != "")
                {
                    try
                    {
                        Expression <Func <YL_MODULE, bool> > whereFunc = StringToLambda.LambdaParser.Parse <Func <YL_MODULE, bool> >(whereLambda);
                        allList = allList.Where(whereFunc);
                    }
                    catch
                    {
                        err.IsError = true;
                        err.Message = "条件表态式有误";
                        return(null);
                    }
                }

                if (orderBy == "asc")
                {
                    allList = StringFieldNameSortingSupport.OrderBy(allList, orderField);
                }
                else
                {
                    allList = StringFieldNameSortingSupport.OrderByDescending(allList, orderField);
                }

                var content = allList.Skip(skipCount).Take(pageSize).ToList();
                return(Fun.ClassListToCopy <YL_MODULE, ProInterface.Models.MODULE>(content));
            }
        }
Beispiel #15
0
        public TTask TaskSingle(string loginKey, ref ErrorInfo err, int id)
        {
            GlobalUser gu = Global.GetUser(loginKey);

            if (gu == null)
            {
                err.IsError = true;
                err.Message = "登录超时";
                return(null);
            }

            using (DBEntities db = new DBEntities())
            {
                var allFlownodeId = db.YL_FLOW_FLOWNODE_FLOW.Where(x => x.YL_ROLE.Where(y => gu.RoleID.Contains(y.ID)).Count() > 0).Select(x => x.FROM_FLOWNODE_ID).ToList();

                var task = db.YL_TASK.SingleOrDefault(x => x.ID == id);

                var tmp        = Fun.ClassToCopy <YL_TASK, TTask>(task);
                var createUser = db.YL_USER.SingleOrDefault(x => x.ID == task.CREATE_USER);

                tmp.CreatePhone = createUser.LOGIN_NAME;


                IList <TTaskFlow> AllFlow = new List <TTaskFlow>();
                foreach (var flow in task.YL_TASK_FLOW.OrderBy(x => x.ID).ToList())
                {
                    TTaskFlow nowFlow = Fun.ClassToCopy <YL_TASK_FLOW, TTaskFlow>(flow);
                    nowFlow.FlowId = (flow.YL_TASK.FLOW_ID == null) ? 0 : flow.YL_TASK.FLOW_ID.Value;
                    if (!string.IsNullOrEmpty(flow.ROLE_ID_STR))
                    {
                        var allRoleId = flow.ROLE_ID_STR.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        nowFlow.RoleList = db.YL_ROLE.Where(x => allRoleId.Contains(x.ID)).ToList().Select(x => new KTV {
                            K = x.ID.ToString(), V = x.NAME, child = x.YL_USER.ToList().Select(y => new KTV {
                                K = y.ID.ToString(), V = y.NAME
                            }).ToList()
                        }).ToList();
                    }

                    nowFlow.TaskName   = flow.YL_TASK.TASK_NAME;
                    nowFlow.TaskRemark = flow.YL_TASK.REMARK;
                    if (flow.YL_TASK_FLOW2 != null && flow.YL_TASK_FLOW2.YL_TASK_FLOW_HANDLE.Count() > 0)
                    {
                        var handle = flow.YL_TASK_FLOW2.YL_TASK_FLOW_HANDLE.ToList()[0];
                        nowFlow.SendUserId   = handle.DEAL_USER_ID;
                        nowFlow.SendUserName = handle.DEAL_USER_NAME;
                    }

                    foreach (var handle in flow.YL_TASK_FLOW_HANDLE.ToList())
                    {
                        var tmpHandle = Fun.ClassToCopy <YL_TASK_FLOW_HANDLE, TTaskFlowHandle>(handle);
                        tmpHandle.AllFiles = Fun.ClassListToCopy <YL_FILES, FILES>(handle.YL_FILES.ToList());
                        nowFlow.AllHandle.Add(tmpHandle);
                        nowFlow.DealUserName = handle.DEAL_USER_NAME;
                    }

                    AllFlow.Add(nowFlow);
                }
                tmp.AllFlow = AllFlow;
                #region 计算所有按钮
                var nowTaskFlowList = task.YL_TASK_FLOW.Where(x => x.IS_HANDLE == 0 && (x.HANDLE_USER_ID == gu.UserId || (x.FLOWNODE_ID != null && allFlownodeId.Contains(x.FLOWNODE_ID.Value)))).ToList();
                if (nowTaskFlowList.Count() > 0)
                {
                    var nowTaskFlow = nowTaskFlowList[0];
                    tmp.NowFlowId = nowTaskFlow.ID;
                    var allBut = db.YL_FLOW_FLOWNODE_FLOW.Where(x => x.FROM_FLOWNODE_ID == nowTaskFlow.FLOWNODE_ID && x.FLOW_ID == task.FLOW_ID).ToList();
                    tmp.AllButton = allBut.Select(x => x.STATUS).ToList();

                    if (AllFlow.Count() > 3 && !nowTaskFlow.YL_TASK_FLOW2.DEAL_STATUS.Equals("驳回"))
                    {
                        tmp.AllButton.Insert(0, "驳回");
                    }
                }
                #endregion

                return(tmp);
            }
        }