using Microsoft.AspNetCore.Mvc; using System.Net; using System.Net.Http.Headers; using Microsoft.Extensions.Hosting.Internal; using Microsoft.AspNetCore.Http.Extensions; using IStation.Untity; using Furion.DynamicApiController; using System.ComponentModel.DataAnnotations; using Mapster; using Microsoft.AspNetCore.Http; using Furion.DependencyInjection; using Microsoft.AspNetCore.Authorization; using Furion.DataEncryption; using Furion.FriendlyException; namespace IStation.Application { /// /// 主页 /// [AllowAnonymous] [Route("LargeScreen/Demo/Home")] [ApiDescriptionSettings("LargeScreen", Name = "Demo(主页)", Order = 666)] public class DemoHome_Controller : IDynamicApiController, ITransient { private readonly IHttpContextAccessor _httpContextAccessor; /// /// /// public DemoHome_Controller(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } /// /// 获取泵站主页汇总信息(左上部分) /// /// [Route("GetLeftTopInfo")] [HttpGet] public DemoHomeLeftTopInfoDto GetLeftTopInfo() { DemoHomeLeftTopInfoDto info_list = new DemoHomeLeftTopInfoDto(); var r = new Random(); info_list.StationNumber = 10; info_list.PumpNumber = r.Next(35, 42).ToString() + "/50"; info_list.TotalSupplyWater = r.Next(4535, 4642); info_list.TotalEnergyConsumption = r.Next(12535, 12642); info_list.YesterdayUnitEnergyConsumption = r.Next(883, 915) / 10.0; info_list.YesterdayEnergyConsumption = r.Next(2860, 2965); info_list.YesterdaySupplyWater = r.Next(2600, 2800); return info_list; } /// /// 获取泵站数据分析汇总信息(左中部分) /// /// 汇总类型(1按日 2 按周 3 按月 4 按年) [Route("GetLeftMiddleInfo")] [HttpGet] public List GetLeftMiddleInfo(int StaticType) { var r = new Random(); List info_list = new List(); if (StaticType == 1 || StaticType <= 0) { for (DateTime day = DateTime.Today.AddMonths(-1); day < DateTime.Today; day = day.AddDays(1)) { DemoHomeLeftMiddleItemInfoDto item = new DemoHomeLeftMiddleItemInfoDto(); item.Label = day.ToString("yyyy-MM-dd"); item.SupplyWater = r.Next(2600, 2800); item.EnergyConsumption = r.Next(2860, 2965); info_list.Add(item); } } else if (StaticType == 3 || StaticType == 2) {//2按月 for (int month = 1; month < DateTime.Today.Month; month = month + 1) { DemoHomeLeftMiddleItemInfoDto item = new DemoHomeLeftMiddleItemInfoDto(); item.Label = month.ToString(); item.SupplyWater = r.Next(2600, 2800) * 30; item.EnergyConsumption = r.Next(2860, 2965) * 30; info_list.Add(item); } } else {//4 按年 for (int year = 1; year < 4; year = year + 1) { DemoHomeLeftMiddleItemInfoDto item = new DemoHomeLeftMiddleItemInfoDto(); item.Label = (DateTime.Today.Year - 3 + year).ToString(); item.SupplyWater = r.Next(2600, 2800) * 300; item.EnergyConsumption = r.Next(2860, 2965) * 300; info_list.Add(item); } } return info_list; } /// /// 获取泵站数据分析明细信息(左下部分) /// /// 汇总类型(1按日 2 按周 3 按月 4 按年) [Route("GetLeftBottomInfo")] [HttpGet] public List GetLeftBottomInfo(int StaticType) { var r = new Random(); List info_list = new List(); int ratio = 1; if (StaticType == 2) ratio = 7; if (StaticType == 3) ratio = 30; if (StaticType == 4) ratio = 350; List station_name_list = new List() { "松花江泵站", "市南泵站", "市北泵站", "鸭绿江泵站", "南大泵站" }; int ID = 1; foreach (var name in station_name_list) { DemoHomeLeftBottomItemInfoDto item = new DemoHomeLeftBottomItemInfoDto(); item.ID = ID; item.Name = name; item.SupplyWater = r.Next(2600, 2800) * ratio; item.EnergyConsumption = r.Next(2860, 2965) * ratio; item.UnitEnergyConsumption = r.Next(883, 915) / 10.0; info_list.Add(item); ID++; } return info_list; } /// /// 获取首页报警和信息公告(中间底部) /// /// 信息类型(1信息 2报警) [Route("GetCenterBottomInfo")] [HttpGet] public List GetCenterBottomInfo(int InfoType) { var r = new Random(); List info_list = new List(); if (InfoType == 1) { DemoHomeCenterBottomItemInfoDto item1 = new DemoHomeCenterBottomItemInfoDto(); item1.Title = "松花江"; item1.UserName = "管理员"; item1.Content = "2020年8月26日,控江路管道维修抢修完成。"; info_list.Add(item1); DemoHomeCenterBottomItemInfoDto item2 = new DemoHomeCenterBottomItemInfoDto(); item2.Title = "市南泵站"; item2.UserName = "管理员"; item2.Content = "2020年9月11日,二号泵电机振动过大,进行大修。"; info_list.Add(item2); DemoHomeCenterBottomItemInfoDto item3 = new DemoHomeCenterBottomItemInfoDto(); item3.Title = "管网"; item3.UserName = "管理员"; item3.Content = "2020年9月22日,巡检员张坤成在人民广场附件发现曝管。"; info_list.Add(item2); } else { DemoHomeCenterBottomItemInfoDto item1 = new DemoHomeCenterBottomItemInfoDto(); item1.Title = "松花江"; item1.UserName = "李三林"; item1.Content = "2020年9月20日 12时30分,一号机漏水严重。"; info_list.Add(item1); DemoHomeCenterBottomItemInfoDto item2 = new DemoHomeCenterBottomItemInfoDto(); item2.Title = "松花江"; item2.UserName = "李三林"; item2.Content = "2020年9月21日 12时30分,一号机漏水严重。"; info_list.Add(item2); DemoHomeCenterBottomItemInfoDto item3 = new DemoHomeCenterBottomItemInfoDto(); item3.Title = "市南泵站"; item3.UserName = "管理员"; item3.Content = "2020年9月25日 12时30分,二号电机电流超标。"; info_list.Add(item2); } return info_list; } /// /// 获取表单状态统计占比(右部上) /// /// 统计类型(1按日 2 按周 3 按月 4 按年) [Route("GetRightTopInfo")] [HttpGet] public DemoHomeRightTopInfoDto GetRightTopInfo(int StaticType) { var r = new Random(); int ratio = 1; if (StaticType == 2) ratio = 5; if (StaticType == 3) ratio = 20; if (StaticType == 4) ratio = 250; DemoHomeRightTopInfoDto item1 = new DemoHomeRightTopInfoDto(); item1.ProcessedForm = r.Next(6, 10) * ratio; item1.ProcessingForm = r.Next(4, 8) * ratio; item1.UnProcessingForm = r.Next(3, 7) * ratio; item1.TotalForm = item1.ProcessedForm + item1.ProcessingForm + item1.UnProcessingForm; return item1; } /// /// 获取表单类型统计占比(右部中) /// /// 统计类型(1按日 2 按周 3 按月 4 按年) [Route("GetRightCenterInfo")] [HttpGet] public List GetRightCenterInfo(int StaticType) { var r = new Random(); List info_list = new List(); int ratio = 1; if (StaticType == 2) ratio = 7; if (StaticType == 3) ratio = 30; if (StaticType == 4) ratio = 350; DemoHomeRightCenterInfoDto item1 = new DemoHomeRightCenterInfoDto(); item1.Label = "机组故障"; item1.Number = r.Next(8, 11) * ratio; info_list.Add(item1); DemoHomeRightCenterInfoDto item2 = new DemoHomeRightCenterInfoDto(); item2.Label = "管道维修"; item2.Number = r.Next(2, 5) * ratio; info_list.Add(item2); DemoHomeRightCenterInfoDto item3 = new DemoHomeRightCenterInfoDto(); item3.Label = "阀门维修"; item3.Number = r.Next(1, 3) * ratio; info_list.Add(item3); DemoHomeRightCenterInfoDto item4 = new DemoHomeRightCenterInfoDto(); item4.Label = "仪表"; item4.Number = r.Next(2, 4) * ratio; info_list.Add(item4); DemoHomeRightCenterInfoDto item5 = new DemoHomeRightCenterInfoDto(); item5.Label = "其他"; item5.Number = r.Next(5, 12) * ratio; info_list.Add(item5); return info_list; } } }