/// <summary>
        /// 获取列表是否成功
        /// </summary>
        /// <param name="flag">标记</param>
        /// <returns></returns>
        public CheckDrugStatusEntity GetCheckResultStatusNew(string flag)
        {
            var dataResult = new CheckDrugStatusEntity();

            using (var db = _dbContext.GetIntance()) //从数据库中
            {
                dataResult = db.Queryable <CheckDrugStatusEntity>().Where(it => it.Flag == flag).First();
            }
            return(dataResult);
        }
        /// <summary>
        /// 获取列表是否成功状态
        /// </summary>
        /// <param name="checkResultStatus"></param>
        /// <returns></returns>
        public bool UpdateResultStatusNew(CheckDrugStatusEntity checkResultStatusNew)
        {
            bool result = false;

            using (var db = _dbContext.GetIntance())
            {
                var count = db.Updateable(checkResultStatusNew).Where(it => it.CRowId == checkResultStatusNew.CRowId).ExecuteCommand();
                result = count > 0 ? true : false;
            }
            return(result);
        }
        /// <summary>
        /// 获取住院或门诊的统计
        /// </summary>
        /// <param name="flag">1住院2门诊</param>
        /// <returns></returns>
        public List <StaticsViewModel> GetStaticsViews(string flag, string drugname)
        {
            var dataResult = new List <StaticsViewModel>();
            //判断缓存
            string rediskey = "";

            if (flag == "1")//住院
            {
                rediskey = SystemManageConst.DRUGHOSKEY;
            }
            else
            {
                rediskey = SystemManageConst.DRUGCLINICKEY;
            }


            using (var redisdb = _redisDbContext.GetRedisIntance())
            {
                //删除缓存测试用
                //redisdb.Del(rediskey);
                dataResult = redisdb.Get <List <StaticsViewModel> >(rediskey);//从缓存里取
                if (dataResult == null)
                {
                    using (var db = _dbContext.GetIntance())
                    {
                        CheckDrugStatusEntity checkResultStatus = new CheckDrugStatusEntity()
                        {
                            CRowId = (flag == "1"?1:2), CheckResultStatus = "N", Flag = (flag == "1"?"HOS":"CLINIC"), FunctionDesc = (flag == "1" ? "'万能神药'住院信息获取" : "'万能神药'门诊信息获取")
                        };
                        bool checkStatusResultStart = UpdateResultStatusNew(checkResultStatus);
                        if (!checkStatusResultStart)
                        {
                            return(null);
                        }
                        if (flag == "1")//住院
                        {
                            dataResult = db.Queryable <AllPowerfulDrugEntity, YBHosPreInfoEntity>((a, c) => new object[] {
                                JoinType.Left, a.DrugCode == c.ItemCode
                            }).GroupBy(a => a.CommonName)
                                         .Where(a => drugname.Contains(a.CommonName))
                                         .OrderBy((a, c) => SqlFunc.AggregateSum(c.COUNT), OrderByType.Desc)
                                         .Select((a, c) => new StaticsViewModel()
                            {
                                commonname = a.CommonName, count = SqlFunc.AggregateSum(c.COUNT).ToString(), price = SqlFunc.AggregateSum(c.COUNT * c.PRICE)
                            }).ToList();
                        }
                        else
                        {
                            dataResult = db.Queryable <AllPowerfulDrugEntity, YBClinicPreInfoEntity>((a, c) => new object[] {
                                JoinType.Left, a.DrugCode == c.ItemCode
                            }).GroupBy(a => a.CommonName)
                                         .Where(a => drugname.Contains(a.CommonName))
                                         .OrderBy((a, c) => SqlFunc.AggregateSum(c.COUNT), OrderByType.Desc)
                                         .Select((a, c) => new StaticsViewModel()
                            {
                                commonname = a.CommonName, count = SqlFunc.AggregateSum(c.COUNT).ToString(), price = SqlFunc.AggregateSum(c.COUNT * c.PRICE)
                            }).ToList();
                        }
                        checkResultStatus = new CheckDrugStatusEntity()
                        {
                            CRowId = (flag == "1" ? 1 : 2), CheckResultStatus = "Y", Flag = (flag == "1" ? "HOS" : "CLINIC"), FunctionDesc = (flag == "1" ? "'万能神药'住院信息获取" : "'万能神药'门诊信息获取")
                        };
                        bool checkStatusResultEnd = UpdateResultStatusNew(checkResultStatus);
                        if (!checkStatusResultEnd)
                        {
                            return(null);
                        }
                    }
                    if (dataResult != null)//加入缓存
                    {
                        redisdb.Set(rediskey, dataResult);
                        redisdb.Expire(rediskey, 86400);//设置缓存时间1天
                    }
                }
                else
                {
                    var    dataResultNew = new List <StaticsViewModel>();
                    string drugnamenew   = drugname;
                    //遍历缓存
                    foreach (StaticsViewModel item in dataResult)
                    {
                        if (item != null && drugname.Contains(item.commonname))
                        {
                            dataResultNew.Add(item);
                            drugnamenew = drugnamenew.Replace(item.commonname + ',', "");
                        }
                    }
                    if (drugnamenew.Length > 0)//从数据库中取
                    {
                        using (var db = _dbContext.GetIntance())
                        {
                            CheckDrugStatusEntity checkResultStatus = new CheckDrugStatusEntity()
                            {
                                CRowId = (flag == "1" ? 1 : 2), CheckResultStatus = "N", Flag = (flag == "1" ? "HOS" : "CLINIC"), FunctionDesc = (flag == "1" ? "'万能神药'住院信息获取" : "'万能神药'门诊信息获取")
                            };
                            bool checkStatusResultStart = UpdateResultStatusNew(checkResultStatus);
                            if (!checkStatusResultStart)
                            {
                                return(null);
                            }
                            if (flag == "1")//住院
                            {
                                dataResult = db.Queryable <AllPowerfulDrugEntity, YBHosPreInfoEntity>((a, c) => new object[] {
                                    JoinType.Left, a.DrugCode == c.ItemCode
                                }).GroupBy(a => a.CommonName)
                                             .Where(a => drugnamenew.Contains(a.CommonName))
                                             .OrderBy((a, c) => SqlFunc.AggregateSum(c.COUNT), OrderByType.Desc)
                                             .Select((a, c) => new StaticsViewModel()
                                {
                                    commonname = a.CommonName, count = SqlFunc.AggregateSum(c.COUNT).ToString(), price = SqlFunc.AggregateSum(c.COUNT * c.PRICE)
                                }).ToList();
                            }
                            else
                            {
                                dataResult = db.Queryable <AllPowerfulDrugEntity, YBClinicPreInfoEntity>((a, c) => new object[] {
                                    JoinType.Left, a.DrugCode == c.ItemCode
                                }).GroupBy(a => a.CommonName)
                                             .Where(a => drugnamenew.Contains(a.CommonName))
                                             .OrderBy((a, c) => SqlFunc.AggregateSum(c.COUNT), OrderByType.Desc)
                                             .Select((a, c) => new StaticsViewModel()
                                {
                                    commonname = a.CommonName, count = SqlFunc.AggregateSum(c.COUNT).ToString(), price = SqlFunc.AggregateSum(c.COUNT * c.PRICE)
                                }).ToList();
                            }
                            checkResultStatus = new CheckDrugStatusEntity()
                            {
                                CRowId = (flag == "1" ? 1 : 2), CheckResultStatus = "Y", Flag = (flag == "1" ? "HOS" : "CLINIC"), FunctionDesc = (flag == "1" ? "'万能神药'住院信息获取" : "'万能神药'门诊信息获取")
                            };
                            bool checkStatusResultEnd = UpdateResultStatusNew(checkResultStatus);
                            if (!checkStatusResultEnd)
                            {
                                return(null);
                            }
                        }
                        dataResult.AddRange(dataResultNew);
                        if (dataResult != null)              //加入缓存
                        {
                            redisdb.Del(rediskey);           //先删除缓存
                            redisdb.Set(rediskey, dataResult);
                            redisdb.Expire(rediskey, 86400); //设置缓存时间1天
                        }
                    }
                    else
                    {
                        dataResult = dataResultNew;
                    }
                }
            }
            return(dataResult);
        }