コード例 #1
0
        /// <summary>
        /// 当日的用能概况
        /// 初始加载:获取用户名查询建筑列表,第一栋建筑对应的分类,第一个分类对应的回路当日的用能概况
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <returns>返回完整的数据:包含建筑列表,能源按钮列表,回路列表,以及第一支路数据</returns>
        public CircuitOverviewViewModel GetCircuitOverviewViewModel(string userName)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);
            string buildId = builds.First().BuildID;
            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);
            string             energyCode = energys.First().EnergyItemCode;
            List <CircuitList> circuits   = reportContext.GetCircuitListByBIdAndEItemCode(buildId, energyCode);

            string circuitId                    = circuits.First().CircuitId;
            List <CircuitValue> loadData        = context.GetCircuitLoadValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> dayData         = context.GetCircuitMomDayValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> monthData       = context.GetCircuitMomMonthValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> last48HoursData = context.GetCircuit48HoursValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> last31DayData   = context.GetCircuit31DaysValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> last12MonthData = context.GetCircuit12MonthValueList(buildId, circuitId, today.ToString());
            List <CircuitValue> last3YearData   = context.GetCircuit3YearValueList(buildId, circuitId, today.ToString());

            CircuitOverviewViewModel circuitOverviewView = new CircuitOverviewViewModel();

            circuitOverviewView.Builds          = builds;
            circuitOverviewView.Energys         = energys;
            circuitOverviewView.Circuits        = circuits;
            circuitOverviewView.LoadData        = loadData;
            circuitOverviewView.MomDayData      = dayData;
            circuitOverviewView.MomMonthData    = monthData;
            circuitOverviewView.Last48HoursData = last48HoursData;
            circuitOverviewView.Last31DaysData  = last31DayData;
            circuitOverviewView.Last12MonthData = last12MonthData;
            circuitOverviewView.Last3YearData   = last3YearData;

            return(circuitOverviewView);
        }
コード例 #2
0
        public DepartmentCompareViewModel GetViewModelByBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);

            string energyCode;

            if (energys.Count > 0)
            {
                energyCode = energys.First().EnergyItemCode;
            }
            else
            {
                energyCode = "";
            }

            ITreeViewDbContext   treeViewDb = new TreeViewDbContext();
            List <TreeViewModel> treeView   = treeViewDb.GetDepartmentTreeViewList(buildId, energyCode);
            string departmentID             = treeView.First().Id;

            List <EMSValue> CompareValue = context.GetDepartmentCompareValueList(buildId, energyCode, departmentID, today.ToString("yyyy-MM-dd"));

            DepartmentCompareViewModel CompareViewModel = new DepartmentCompareViewModel();

            CompareViewModel.Builds      = builds;
            CompareViewModel.Energys     = energys;
            CompareViewModel.TreeView    = treeView;
            CompareViewModel.CompareData = CompareValue;

            return(CompareViewModel);
        }
コード例 #3
0
ファイル: EnergyItemReportService.cs プロジェクト: Mx1014/EMS
        public EnergyItemReportViewModel GetEnergyItemReportViewModelByBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);

            IEnergyItemTreeViewDbContext energyItemtreeView = new EnergyItemTreeViewDbContext();
            List <TreeViewModel>         treeView           = energyItemtreeView.GetEnergyItemTreeViewList(buildId);

            List <EnergyItemInfo> EnergyItemInfos = energyItemtreeView.GetEnergyItemInfoList(buildId);

            string[]           formulaIDs  = GetEnergyItemCodes(EnergyItemInfos);
            List <ReportValue> reportValue = context.GetReportValueList(formulaIDs, today.ToString(), "DD");

            EnergyItemReportViewModel energyItemReportView = new EnergyItemReportViewModel();

            energyItemReportView.Builds     = builds;
            energyItemReportView.Energys    = energys;
            energyItemReportView.TreeView   = treeView;
            energyItemReportView.Data       = reportValue;
            energyItemReportView.ReportType = "DD";

            return(energyItemReportView);
        }
コード例 #4
0
ファイル: HomeContextTest.cs プロジェクト: Mx1014/EMS
        public void TestGetNameByCode()
        {
            HomeDbContext  context = new HomeDbContext();
            EnergyItemDict energy  = context.GetEnergyItemByCode("01000");

            Console.WriteLine(energy.EnergyItemName + ":" + energy.EnergyItemCode);
        }
コード例 #5
0
ファイル: DepartmentRankService.cs プロジェクト: Mx1014/EMS
        public DepartmentRankViewModel GetViewModelByBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            DateTime              monthBegin  = new DateTime(today.Year, today.Month, 1);
            DateTime              monthEnd    = monthBegin.AddMonths(1).AddDays(-1);
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);


            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);

            string energyCode;

            if (energys.Count > 0)
            {
                energyCode = energys.First().EnergyItemCode;
            }
            else
            {
                energyCode = "";
            }

            List <EMSValue> list = context.GetRankList(buildId, monthBegin.ToString("yyyy-MM-dd"), monthEnd.ToString("yyyy-MM-dd"), energyCode);

            DepartmentRankViewModel model = new DepartmentRankViewModel();

            model.Builds     = builds;
            model.Energys    = energys;
            model.RankValues = list;

            return(model);
        }
コード例 #6
0
        public EnergyItemCompareViewModel GetEnergyItemCompareViewModelByBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);
            //string energyCode = energys.First().EnergyItemCode;

            IEnergyItemTreeViewDbContext energyItemtreeView = new EnergyItemTreeViewDbContext();
            List <TreeViewModel>         treeView           = energyItemtreeView.GetEnergyItemTreeViewList(buildId);

            string treeId;

            if (treeView.Count == 0)
            {
                treeId = "";
            }
            else
            {
                treeId = treeView.First().Id;
            }

            List <EnergyItemValue> energyItemCompareValue = context.GetEnergyItemCompareValueList(buildId, treeId, today.ToString());

            EnergyItemCompareViewModel energyItemCompareView = new EnergyItemCompareViewModel();

            energyItemCompareView.Builds      = builds;
            energyItemCompareView.Energys     = energys;
            energyItemCompareView.TreeView    = treeView;
            energyItemCompareView.CompareData = energyItemCompareValue;

            return(energyItemCompareView);
        }
コード例 #7
0
        public MultiRateViewModel GetViewModel(string userName)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            string buildId = builds.First().BuildID;
            List <EnergyItemDict> energys = context.GetEnergyItemDictByBuild(buildId);

            string energyCode = "01000";
            List <EMS.DAL.Entities.CircuitList> circuits = context.GetCircuitListByBIdAndEItemCode(buildId, energyCode);

            string[] circuitIds = GetCircuitIds(circuits);

            List <TreeViewModel> treeView = GetTreeListViewModel(buildId, energyCode);

            List <MultiRateData> data = context.GetReportValueList(buildId, energyCode, "MM", today.ToShortDateString());

            MultiRateViewModel circuitReportView = new MultiRateViewModel();

            circuitReportView.Builds     = builds;
            circuitReportView.Energys    = energys;
            circuitReportView.TreeView   = treeView;
            circuitReportView.Data       = data;
            circuitReportView.ReportType = "MM";

            return(circuitReportView);
        }
コード例 #8
0
        public void TestRepository()
        {
            IHomeDbContext context = new HomeDbContext();
            BuildInfo      build   = context.GetBuildById("000001G001");

            Assert.AreEqual(build.BuildId, "000001G001");
        }
コード例 #9
0
ファイル: HomeContextTest.cs プロジェクト: Mx1014/EMS
        public void TestGetEnergyItemValues()
        {
            HomeDbContext     context = new HomeDbContext();
            List <EnergyItem> list    = context.GetEnergyItemValues("000001G001", "2018-01-07");

            foreach (EnergyItem item in list)
            {
                Console.WriteLine("分项名称:{0},分项编号:{1},分项数据:{2},建筑编号:{3}", item.EnergyItemName, item.EnergyItemCode, item.Value, item.BuildID);
            }
        }
コード例 #10
0
ファイル: HomeContextTest.cs プロジェクト: Mx1014/EMS
        public void TestGetBuildsByUserName()
        {
            HomeDbContext         context = new HomeDbContext();
            List <BuildViewModel> list    = context.GetBuildsByUserName("admin");

            foreach (BuildViewModel item in list)
            {
                Console.WriteLine("建筑ID:{0},建筑名称:{1}", item.BuildID, item.BuildName);
            }
        }
コード例 #11
0
ファイル: HomeContextTest.cs プロジェクト: Mx1014/EMS
        public void TestGetHourValues()
        {
            HomeDbContext    context = new HomeDbContext();
            List <HourValue> list    = context.GetHourValues("000001G001", "2018-01-07 12:00:00");

            foreach (HourValue item in list)
            {
                Console.WriteLine("分类名称:{0},时间:{1},数据:{2}", item.EnergyItemCode, item.ValueTime.ToString("yyyy-MM-dd HH:mm:ss"), item.Value);
            }
        }
コード例 #12
0
ファイル: HomeContextTest.cs プロジェクト: Mx1014/EMS
        public void TestEnergyClassify()
        {
            HomeDbContext         context = new HomeDbContext();
            List <EnergyClassify> list    = context.GetEnergyClassifyValues("000001G001", "2018-01-07");

            foreach (EnergyClassify item in list)
            {
                Console.WriteLine("分类名称:{0},当月数据:{1},当年数据:{2},单位:{3},比率:{4}", item.EnergyItemName, item.MonthValue, item.YearValue, item.Unit, item.EnergyRate);
            }
        }
コード例 #13
0
        //private static Hashtable cache = Hashtable.Synchronized(new Hashtable());//缓存
        /// <summary>
        /// 帮我们返回当前线程内的数据库上下文,如果当前线程内没有上下文,那么创建一个上下文,并保证
        /// 上下文是实例在线程内部唯一
        /// 在EF4.0以前使用ObjectsContext对象
        /// </summary>
        /// <returns></returns>
        public static DbContext GetCurrentDbContext()
        {
            //当第二次执行的时候直接取出线程嘈里面的对象
            //使用静态state对象作为线程内部唯一的独用的数据槽(一块内存空间)
            //数据存储在线程栈中
            //线程内共享一个单例
            DbContext dbcontext = GetData("DbContext") as DbContext;

            //判断线程里面是否有数据
            if (dbcontext == null)  //线程的数据槽里面没有次上下文
            {
                dbcontext = new HomeDbContext();

                //存储指定对象
                SetData("DbContext", dbcontext);
            }
            return(dbcontext);
        }
コード例 #14
0
        public EnergyItemOverviewModel GetEnergyItemOverviewViewModelByBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            List <EnergyItemValue> momDay            = context.GetEnergyItemMomDayValueList(buildId, today.ToString());
            List <EnergyItemValue> rankByMonth       = context.GetEnergyItemRankByMonthValueList(buildId, today.ToString());
            List <EnergyItemValue> last31DayPieChart = context.GetEnergyItemLast31DayPieChartValueList(buildId, today.ToString());
            List <EnergyItemValue> last31Day         = context.GetEnergyItemLast31DayValueList(buildId, today.ToString());

            EnergyItemOverviewModel energyItemOverviewView = new EnergyItemOverviewModel();

            energyItemOverviewView.Builds                      = builds;
            energyItemOverviewView.EnergyItemMomDay            = momDay;
            energyItemOverviewView.EnergyItemRankByMonth       = rankByMonth;
            energyItemOverviewView.EnergyItemLast31DayPieChart = last31DayPieChart;
            energyItemOverviewView.EnergyItemLast31Day         = last31Day;

            return(energyItemOverviewView);
        }
コード例 #15
0
ファイル: DepartmentReportService.cs プロジェクト: Mx1014/EMS
        /// <summary>
        /// 部门用能统计报表
        /// 初始加载:获取用户名查询建筑列表,第一栋建筑对应的分类,第一个分类对应的所有部门的用能天报表
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <returns>返回完整的数据:包含建筑列表,能源按钮列表,部门列表,以及用能数据天报表</returns>
        public DepartmentReportViewModel GetViewModel(string userName)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);
            string buildId = builds.First().BuildID;

            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);

            //增加分类能耗过滤信息
            //修改方法参数,修改SQL语句
            string energyCode;

            if (energys.Count > 0)
            {
                energyCode = energys.First().EnergyItemCode;
            }
            else
            {
                energyCode = "";
            }

            ITreeViewDbContext   treeViewDb = new TreeViewDbContext();
            List <TreeViewModel> treeView   = treeViewDb.GetDepartmentTreeViewList(buildId, energyCode);

            string[]           departmentIDs = treeViewDb.GetDepartmentIDs(buildId, energyCode);
            List <ReportValue> reportValue   = context.GetReportValueList(energyCode, departmentIDs, today.ToString("yyyy-MM-dd 00:00:00"), "DD");

            DepartmentReportViewModel reportView = new DepartmentReportViewModel();

            reportView.Builds     = builds;
            reportView.Energys    = energys;
            reportView.TreeView   = treeView;
            reportView.Data       = reportValue;
            reportView.ReportType = "DD";

            return(reportView);
        }
コード例 #16
0
ファイル: NoWorkDayService.cs プロジェクト: Mx1014/EMS
        public NoWorkDayViewModel GetViewModel(string userName)
        {
            DateTime today      = DateTime.Now;
            string   beginDate  = today.ToString("yyyy-MM-01 00:00:00");
            string   endDate    = today.ToString("yyyy-MM-dd HH:mm:00");
            string   energyCode = "";

            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            string buildID = "";

            if (builds.Count > 0)
            {
                buildID = builds.First().BuildID;
            }


            List <EnergyItemDict> energys = tvcontext.GetEnergyItemDictByBuild(buildID);

            if (energys.Count > 0)
            {
                energyCode = energys.First().EnergyItemCode;
            }

            List <TreeViewModel> treeView = tvcontext.GetCircuitTreeListViewModel(buildID, energyCode);

            List <NoWorkDay> data = context.GetCircuitData(buildID, energyCode, beginDate, endDate);

            NoWorkDayViewModel viewModel = new NoWorkDayViewModel();

            viewModel.Builds   = builds;
            viewModel.Energys  = energys;
            viewModel.TreeView = treeView;
            viewModel.Data     = data;

            return(viewModel);
        }
コード例 #17
0
ファイル: CircuitCompareService.cs プロジェクト: Mx1014/EMS
        public CircuitCompareViewModel GetCircuitCompareVMWithBuild(string userName, string buildId)
        {
            DateTime              today       = DateTime.Now;
            IHomeDbContext        homeContext = new HomeDbContext();
            List <BuildViewModel> builds      = homeContext.GetBuildsByUserName(userName);

            List <EnergyItemDict> energys = reportContext.GetEnergyItemDictByBuild(buildId);
            string energyCode             = energys.First().EnergyItemCode;
            List <TreeViewModel> treeView = GetTreeListViewModel(buildId, energyCode);

            List <EMS.DAL.Entities.CircuitList> circuits = reportContext.GetCircuitListByBIdAndEItemCode(buildId, energyCode);
            string circuitId = circuits.First().CircuitId;
            List <CircuitValue> compareData = context.GetCircuitCompareValueList(buildId, circuitId, today.ToString());

            CircuitCompareViewModel circuitCompareView = new CircuitCompareViewModel();

            circuitCompareView.Builds      = builds;
            circuitCompareView.Energys     = energys;
            circuitCompareView.TreeView    = treeView;
            circuitCompareView.CompareData = compareData;

            return(circuitCompareView);
        }
コード例 #18
0
 public StudentRepository(HomeDbContext context) : base(context)
 {
 }
コード例 #19
0
        public Excel ExportReportToExcel(string basePath, string buildId, string energyCode, string[] regionIds, string date, string type)
        {
            type = type.ToUpper();

            string templatePath = basePath + "/DayReportTemplate.xls";
            string reportType   = " 日报(" + date + ")";

            if (type == "MM")
            {
                reportType   = " 月报(" + date + ")";
                templatePath = basePath + "/MonthReportTemplate.xls";
            }
            else if (type == "YY")
            {
                reportType   = " 年报(" + date + ")";
                templatePath = basePath + "/YearReportTemplate.xls";
            }
            else if (type == "DD")
            {
                reportType   = " 日报(" + date + ")";
                templatePath = basePath + "/DayReportTemplate.xls";
            }

            //根据模板生成Excel
            FileStream   file  = new FileStream(templatePath, FileMode.Open, FileAccess.Read);
            HSSFWorkbook book  = new HSSFWorkbook(file);
            HSSFSheet    sheet = (HSSFSheet)book.GetSheet("Sheet1");

            //创建单元格格式:数字型单元格默认取小数点后两位
            ICellStyle style = book.CreateCellStyle();

            style.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");


            //获取当前建筑名
            IHomeDbContext homeContext = new HomeDbContext();
            BuildInfo      build       = homeContext.GetBuildById(buildId);

            //获取能源类型
            EnergyItemDict energyItem = reportContext.GetUnitByEnergyCode(energyCode);

            //string[] circuitIds = circuits.Split(',');

            List <ReportValue> data = context.GetReportValueList(energyCode, regionIds, date, type);
            var totalList           = data.GroupBy(d => new { d.Time })
                                      .Select(group => new ReportValue
            {
                Id    = "Total",
                Name  = "总计",
                Time  = group.Key.Time,
                Value = group.Sum(p => p.Value)
            }).ToList();

            data.AddRange(totalList);

            //设置Excel标题
            sheet.GetRow(0).GetCell(0).SetCellValue(build.BuildName + " 区域用能 " + reportType);

            //设置Excel中报表的能源类别
            sheet.GetRow(1).GetCell(1).SetCellValue(energyItem.EnergyItemName);
            //设置Excel中报表的能源单位
            sheet.GetRow(1).GetCell(5).SetCellValue(energyItem.EnergyItemUnit);

            //根据传入circuitIds填充excel
            int rowId = 0;

            for (int i = 0; i < regionIds.Length + 1; i++)
            {
                //使用lamda表达式筛选List中Id与传入的Id对应的仪表:一次填充一行Excel
                List <ReportValue> current;
                if (i == regionIds.Length)
                {
                    current = data.FindAll(p => p.Id == "Total");
                }
                else
                {
                    current = data.FindAll(p => p.Id == regionIds[i]);
                }

                if (current.Count > 0)
                {
                    IRow row = sheet.CreateRow(rowId + 3);
                    row.CreateCell(0).SetCellValue(current[0].Name);
                    decimal total = 0;
                    switch (type)
                    {
                    case "DD":
                        foreach (var item in current)
                        {    //遍历筛选出列表中当前回路中每个小时的数据,填充到Excel中
                            //当前行的第一列已经填充回路名称,根据时间设置向右偏移一位,将对应数据写入到当前单元格,并设置格式
                            if (item.Time != null)
                            {
                                DateTime time = Convert.ToDateTime(item.Time);
                                row.CreateCell(time.Hour + 1).SetCellValue((double)item.Value);
                                row.GetCell(time.Hour + 1).CellStyle = style;
                                total += Convert.ToDecimal(item.Value);
                            }
                        }
                        row.CreateCell(25).SetCellValue((double)total);
                        row.GetCell(25).CellStyle = style;
                        break;

                    case "MM":
                        foreach (var item in current)
                        {
                            if (item.Time != null)
                            {
                                DateTime time = Convert.ToDateTime(item.Time);
                                row.CreateCell(time.Day).SetCellValue((double)item.Value);
                                row.GetCell(time.Day).CellStyle = style;
                                total += Convert.ToDecimal(item.Value);
                            }
                        }
                        row.CreateCell(32).SetCellValue((double)total);
                        row.GetCell(32).CellStyle = style;
                        break;

                    case "YY":
                        foreach (var item in current)
                        {
                            if (item.Time != null)
                            {
                                DateTime time = Convert.ToDateTime(item.Time);
                                row.CreateCell(time.Month).SetCellValue((double)item.Value);
                                row.GetCell(time.Month).CellStyle = style;
                                total += Convert.ToDecimal(item.Value);
                            }
                        }
                        row.CreateCell(13).SetCellValue((double)total);
                        row.GetCell(13).CellStyle = style;
                        break;
                    }

                    rowId++;
                }
            }

            Excel excel = new Excel();

            excel.Name = build.BuildName + "区域用能" + reportType + "[" + Guid.NewGuid().ToString("N") + "].xls";

            using (MemoryStream stream = new MemoryStream())
            {
                book.Write(stream);
                stream.Seek(0, SeekOrigin.Begin);
                excel.Data = stream.ToArray();
            }

            return(excel);
        }
コード例 #20
0
ファイル: Repository.cs プロジェクト: ashok-sarathi/CoreAPI
 public Repository(HomeDbContext context)
 {
     Context = context;
     Table   = Context.Set <T>();
 }
コード例 #21
0
 public AddressDao(HomeDbContext context)
 {
     Context = context;
 }
コード例 #22
0
 public SectionRepository(HomeDbContext context) : base(context)
 {
 }
コード例 #23
0
ファイル: ApplicationDao.cs プロジェクト: flyshuai/oetc_m
 public ApplicationDao(HomeDbContext context)
 {
     Context = context;
 }
コード例 #24
0
ファイル: Uow.cs プロジェクト: ashok-sarathi/CoreAPI
 public Uow(HomeDbContext dbContext)
 {
     _context = dbContext;
 }