/// <summary> /// 根据权限取得Company列表 /// </summary> /// <returns></returns> public static List <Company> GetCompanyInAuth(AuthCompany auth) { try { List <Company> lstCompany = factory.GetCompanyInAuth(auth); if (lstCompany == null) { throw new Exception("DAL.SalesOrder.CompanyFactory.GetCompanyInAuth()==null"); } return(lstCompany); } catch (Exception ex) { LogHelper.WriteLog(new Log() { message = ex.Message }, "GetCompanyInAuth"); return(null); } }
/// <summary> /// 获取用户有权限获得的分公司-营运点下拉表 /// </summary> /// <param name="auth"></param> /// <returns></returns> public List <DBSite> GetCompanySite(AuthCompany auth) { try { string strCCList = "SELECT A1.BUGUID AS COMPANYGUID,A2.ERPCODE AS DBNAME,A1.CODE AS COSTCENTERCODE,A1.GUID AS SITEGUID FROM TBLSITE (NOLOCK) A1,TBLBU (NOLOCK) A2 where A1.BUGUID=A2.BUGUID"; //"SELECT DISTINCT DBNAME,COSTCENTERCODE FROM CCMAST (NOLOCK)"; //List<CCMast> CCList = SqlServerHelper.GetEntityList<CCMast>(SqlServerHelper.salesorderConn, strCCList); List <CCMast> CCList = SqlServerHelper.GetEntityList <CCMast>(SqlServerHelper.sfeed(), strCCList); List <Company> GetCompanySite = new List <Company>(); if (auth.action == "wechatBarCode" && auth.userGuid == "None") { GetCompanySite = null; } else { GetCompanySite = compfactory.GetCompanyInAuth(auth); } List <DBSite> SiteList = GetSite(auth.action, auth.userGuid); SiteList = (from a in SiteList join b in CCList on a.costCenterCode equals b.costCenterCode select a).ToList(); List <DBSite> strList = new List <DBSite>(); if (GetCompanySite != null && GetCompanySite.Count > 0) { strList = GetCompanySite.Join(CCList, mos => new { companyCode = mos.companyCode }, nos => new { companyCode = nos.dbName }, (mos, nos) => { var data = new DBSite(); data.dbName = mos.dbName; data.companyGuid = nos.companyGuid; data.companyCode = mos.companyCode; data.companyName_ZH = mos.companyName_ZH; data.companyName_EN = mos.companyName_EN; data.costCenterCode = nos.costCenterCode; data.siteGuid = nos.siteGuid; return(data); }).ToList(); if (SiteList != null && SiteList.Count > 0) { strList = strList.Union(SiteList).Distinct(dr => dr.costCenterCode).ToList(); } } else { if (SiteList != null && SiteList.Count > 0) { strList = SiteList; } else if (SiteList == null || SiteList.Count == 0) { return(null); } } List <Site> list = new List <Site>(); foreach (var item in strList) { Site db = new Site(); db.dbName = item.dbName; db.companyGuid = item.companyGuid; db.companyCode = item.companyCode; db.companyName_ZH = item.companyName_ZH; db.companyName_EN = item.companyName_EN; db.costCenterCode = item.costCenterCode; db.siteGuid = item.siteGuid; list.Add(db); } list.OrderBy(dr => dr.dbName).ThenBy(dr => dr.costCenterCode); var lg = strList.GroupBy(dr => dr.dbName).Select(dg => new DBSite() { dbName = dg.FirstOrDefault().dbName, companyName_ZH = dg.FirstOrDefault().companyName_ZH, companyGuid = dg.FirstOrDefault().companyGuid, siteList = list.Where(ds => ds.dbName.Equals(dg.FirstOrDefault().dbName)).OrderBy(dr => dr.costCenterCode).ToList() }).OrderBy(dg => dg.dbName).ToList().Distinct(); return(lg.ToList()); } catch (Exception ex) { throw (ex); } }