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()); }
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)) })); }