示例#1
0
        public IEnumerable <dynamic> GetPageList(System.Collections.Specialized.NameValueCollection nvl, out int recordCount)
        {
            var title       = nvl["title"];
            var classfyId   = nvl["classfyId"].ToType <int>();
            var BrandWhere  = DynamicallyLinqHelper.Empty <ProductBrand>().And(o => o.Title.Contains(title.Trim()), title.IsNullOrEmpty()).And(o => o.ClassifyId == classfyId, classfyId <= 0);
            var queryPro    = ProductRepository.GetQuery();
            var queryBus    = DataDictRepository.GetQuery(o => o.DicPSN == 5);
            var queryBrand  = BrandRepository.GetQuery(BrandWhere);
            var queryTrader = TraderRepository.GetQuery();
            var query       = from x in queryBrand
                              select new
            {
                x.Id,
                x.Source,
                x.State,
                x.Title,
                x.BrandSN,
                x.JianPin,
                StateTitle    = x.State == 1?"可用":"禁用",
                ClassifyTitle = queryBus.Where(i => i.DicSN == x.ClassifyId).Select(i => i.Title).FirstOrDefault(),
                ProductCount  = queryPro.Count(i => i.BrandSN == x.BrandSN),
                TraderTitle   = queryTrader.Where(i => i.CID == x.Source).Select(o => o.Title).FirstOrDefault()
            };

            recordCount = query.Count();
            return(query.ToPageList());
        }
示例#2
0
        public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName)
        {
            var op    = new OpResult();
            var errLs = new List <string>();
            int count = 0;

            try
            {
                Dictionary <string, char> fieldCols = null;
                DataTable dt = null;
                op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt);
                if (!op.Successed)
                {
                    return(op);
                }
                var brandClass = DataDictRepository.GetQuery(o => o.DicPSN == 5).ToList();
                var otherClass = brandClass.FirstOrDefault(o => o.Title.StartsWith("其"));
                var brands     = GetList();
                var clsIdx     = Convert.ToInt32(fieldCols["ClassifyId"]) - 65;
                var titleIdx   = Convert.ToInt32(fieldCols["Title"]) - 65;
                count = dt.Rows.Count;
                var max = DataDictRepository.GetQuery().Max(o => o.DicSN);
                for (int i = dt.Rows.Count - 1; i >= 0; i--)
                {
                    try
                    {
                        var dr   = dt.Rows[i];
                        var text = dr[clsIdx].ToString();
                        if (text.IsNullOrEmpty())
                        {
                            continue;
                        }
                        var cls = brandClass.FirstOrDefault(o => o.Title == text);
                        if (cls != null)
                        {
                            dr[clsIdx] = cls.DicSN.ToString();
                        }
                        else
                        {
                            if (obj.RefCreate)
                            {
                                var data = new SysDataDictionary
                                {
                                    DicPSN    = 5,
                                    Status    = true,
                                    Title     = text,
                                    DicSN     = max++,
                                    CreateDT  = DateTime.Now,
                                    CreateUID = CurrentUser.UID
                                };
                                DataDictRepository.Add(data);
                                brandClass.Add(data);
                                dr[clsIdx] = data.DicSN.ToString();
                            }
                            else if (otherClass != null)
                            {
                                dr[clsIdx] = otherClass.DicSN.ToString();
                            }
                            else
                            {
                                errLs.Add("行业分类[" + text + "]不存在!");
                                dt.Rows.RemoveAt(i);//去除不导入
                                continue;
                            }
                        }
                        text = dr[titleIdx].ToString().Trim();
                        if (brands.Any(o => o.Title == text))
                        {
                            errLs.Add("品牌名称[" + text + "]已存在!");
                            dt.Rows.RemoveAt(i);//去除不导入
                        }
                        else
                        {
                            brands.Add(new ProductBrand()
                            {
                                Title = text
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        throw new Exception("品牌分类处理失败!", e);
                    }
                }
                var           maxsn = BrandRepository.GetQuery().Max(o => (int?)o.BrandSN).GetValueOrDefault();
                StringBuilder sb    = new StringBuilder();
                sb.Append("begin tran ");
                foreach (DataRow dr in dt.Rows)
                {
                    sb.Append("insert into ");
                    sb.Append(obj.TableName);
                    sb.Append("(BrandSN,State,Source,");
                    sb.Append(string.Join(",", fieldCols.Keys));
                    sb.Append(") values(");
                    sb.AppendFormat("{0},", ++maxsn);
                    sb.AppendFormat("1,0,");
                    foreach (var de in fieldCols)
                    {
                        var index = Convert.ToInt32(de.Value) - 65;
                        try
                        {
                            var text = dr[index].ToString();
                            sb.Append("'" + text + "',");
                        }
                        catch (Exception e)
                        {
                            throw new Exception("列选择超过范围!", e);
                        }
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append(");");
                }
                sb.Append(" commit tran");
                if (dt.Rows.Count > 0)
                {
                    op.Successed = new DBHelper().ExecuteNonQueryText(sb.ToString(), null) > 0;
                    LogEngine.WriteInsert("品牌导入", LogModule.档案管理);
                }
            }
            catch (Exception ex)
            {
                op.Message   = ex.Message;
                op.Successed = false;
                LogEngine.WriteError(ex);
                errLs.Add("导入出现异常!");
            }
            return(CommonService.GenerateImportHtml(errLs, count));
        }
        public IEnumerable <dynamic> GetPageList(System.Collections.Specialized.NameValueCollection nvl, out int recordCount)
        {
            var text            = nvl["searchText"];
            var searchField     = nvl["searchField"];
            var state           = nvl["state"];
            var Assigner        = nvl["Assigner"];
            var Way             = nvl["Way"];
            var OpenVersionId   = nvl["OpenVersionId"];
            var ValidityNum     = nvl["ValidityNum"];
            var queryUser       = UserRepository.GetQuery();
            var queryDict       = DataDictRepository.GetQuery();
            var queryProductVer = ProductVerRepository.GetQuery();
            var bussinessList   = BusinessRepository.GetQuery().ToList();

            var where = DynamicallyLinqHelper.Empty <CompanyAuthorize>();
            if (!text.IsNullOrEmpty())
            {
                int cid = 0;
                text = text.Trim();
                int.TryParse(text, out cid);
                if (searchField == "Cid")
                {
                    where = where.And(o => o.CID == cid);
                }
                else if (searchField == "Title")
                {
                    where = where.And(o => o.Title.Contains(text));
                }
                else if (searchField == "ContractNo")
                {
                    where = where.And(o => o.ContractNo != null && o.ContractNo.StartsWith(text));
                }
            }
            short way = 0, st = 0, verid = 0, validnum = 0;

            short.TryParse(Way, out way);
            short.TryParse(state, out st);
            short.TryParse(OpenVersionId, out verid);
            short.TryParse(ValidityNum, out validnum);
            where = where.And(o => o.AssignerUID == Assigner, Assigner.IsNullOrEmpty()).And(o => o.Way == way, Way.IsNullOrEmpty()).And(o => o.Status == st, state.IsNullOrEmpty())
                    .And(o => o.OpenVersionId == verid, OpenVersionId.IsNullOrEmpty()).And(o => o.ValidityNum == validnum, ValidityNum.IsNullOrEmpty());
            var query = CompanyAuthorRepository.GetQuery(where);
            var q     = from x in query
                        join y in queryProductVer on x.OpenVersionId equals y.ProductId
                        select new
            {
                x.Id,
                x.CreateDT,
                x,
                BusinessModeTitle = queryDict.Where(o => o.DicSN == x.BusinessMode).Select(o => o.Title).FirstOrDefault(),
                Assigner          = queryUser.Where(o => o.UserId == x.AssignerUID).Select(o => o.FullName).FirstOrDefault(),
                y.ProductId,
                y.SysName
            };

            recordCount = q.Count();
            var list = q.ToPageList();

            return(list.Select(o => new{
                o.x.Id,
                o.x.CID,
                o.x.Source,
                o.x.Way,
                o.x.AppProper,
                o.x.StoreProper,
                o.x.Title,
                o.x.ContractNo,
                o.x.EffectiveDT,
                o.x.ExpirationDT,
                o.x.ValidityNum,
                o.x.UserNum,
                o.x.StoreNum,
                o.x.PosMinorDisp,
                o.x.MemberShared,
                o.x.OpenVersionId,
                o.x.Status,
                o.x.SupperAccount,
                o.x.CreateDT,
                o.x.OpenScopeId,
                o.BusinessModeTitle,
                o.Assigner,
                OpenVersionTitle = "(" + o.ProductId + ")" + o.SysName,
                StatusTitle = Enum.GetName(typeof(CompanyAuthorizeState), o.x.Status),
                OpenScopeTitle = o.x.OpenScopeId.IsNullOrEmpty() ? "" : string.Join(",", bussinessList.Where(i => o.x.OpenScopeId.Split(',').Contains(i.ById)).Select(i => i.Title))
            }));
        }