| | |
| | | namespace IStation.Application |
| | | using Microsoft.VisualBasic; |
| | | |
| | | namespace IStation.Application |
| | | { |
| | | /// <summary> |
| | | /// BigScreen |
| | |
| | | #region 所有 |
| | | |
| | | /// <summary> |
| | | /// 获取所有泵站kpi信息 |
| | | /// 获取所有泵站kpi信息(待完善) |
| | | /// </summary> |
| | | [Route("GetAllStationKpiInfo@V1.0")] |
| | | [HttpGet] |
| | |
| | | |
| | | var dtEnd = DateTime.Now.Date; |
| | | var dtStart = dtEnd.AddMonths(-1); |
| | | List<Yw.Model.MonitorDayRecord> allWsRecordList = null;//所有供水量 |
| | | List<Yw.Model.MonitorDayRecord> allPsRecordList = null;//所有用电量 |
| | | Yw.Model.Signal_SignalType signalWs = null;//用水量信号 |
| | | Yw.Model.Signal_SignalType signalPs = null;//用电量信号 |
| | | var service_day_record = new Lazy<Yw.Service.MonitorDayRecord>(() => new Yw.Service.MonitorDayRecord()); |
| | | var allMonitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID, Yw.Monitor.eCronType.EachDay); |
| | | if (allMonitorList != null && allMonitorList.Count > 0) |
| | | { |
| | | var monitorWs = allMonitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.累积流量)); |
| | | if (monitorWs != null) |
| | | { |
| | | signalWs = monitorWs.SignalList.Find(x => x.SignalType.Code == Yw.Monitor.SignalType.累积流量); |
| | | allWsRecordList = service_day_record.Value.GetBySignalIDOfDayRange(signalWs.ID, dtStart, dtEnd); |
| | | } |
| | | var monitorPs = allMonitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.有功电度)); |
| | | if (monitorPs != null) |
| | | { |
| | | signalPs = monitorPs.SignalList.Find(x => x.SignalType.Code == Yw.Monitor.SignalType.有功电度); |
| | | allPsRecordList = service_day_record.Value.GetBySignalIDOfDayRange(signalPs.ID, dtStart, dtEnd); |
| | | } |
| | | } |
| | | |
| | | for (DateTime dt = dtStart; dt <= dtEnd; dt = dt.AddDays(1)) |
| | | { |
| | | var ws = allWsRecordList?.Find(x => x.DataDay.Date == dt.Date); |
| | | vm.Ws.Add(new BigScreenSingleStationQuotaItemDto() |
| | | { |
| | | Day = dt, |
| | | Value = RandomHelper.Random(1000, 10000).ToString(), |
| | | UnitName = "m³" |
| | | Value = ws == null ? "0" : signalWs.GetDisplayValue(ws.DataValue), |
| | | UnitName = signalWs?.GetDisplayUnitNames() |
| | | }); |
| | | var ps = allPsRecordList.Find(x => x.DataDay.Date == dt.Date); |
| | | vm.Ps.Add(new BigScreenSingleStationQuotaItemDto() |
| | | { |
| | | Day = dt, |
| | | Value = RandomHelper.Random(2000, 3000).ToString(), |
| | | UnitName = "kW‧h" |
| | | Value = ps == null ? "0" : signalPs.GetDisplayValue(ps.DataValue), |
| | | UnitName = signalPs?.GetDisplayUnitNames() |
| | | }); |
| | | } |
| | | return vm; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取单泵站工单Kpi信息 |
| | | /// 获取单泵站工单Kpi信息(待完善) |
| | | /// </summary> |
| | | [Route("GetSingleStationRepairKpiInfo@V1.0")] |
| | | [HttpGet] |
| | |
| | | public List<BigScreenSingleStationAlarmItemDto> GetSingleStationAlarmInfo([FromQuery][Required] StationIDInput input) |
| | | { |
| | | var vmList = new List<BigScreenSingleStationAlarmItemDto>(); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | var allEquipmentList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID); |
| | | if (allEquipmentList == null || allEquipmentList.Count < 1) |
| | | { |
| | | ID = 1, |
| | | Name = "1#机组", |
| | | Content = "出口压力过低,请关注状态变化" |
| | | }); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | return vmList; |
| | | } |
| | | var allEnginePumpList = allEquipmentList.Where(x => x.Flags.Contains(IStation.Flags.机组)).ToList(); |
| | | if (allEnginePumpList.Count < 1) |
| | | { |
| | | ID = 2, |
| | | Name = "2#机组", |
| | | Content = "瞬时流量数据异常,请检修" |
| | | }); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | return vmList; |
| | | } |
| | | var service_monitor_maping = new Yw.Service.EquipmentMonitorMapping(); |
| | | var service_monitor = new Lazy<Yw.Service.MonitorPoint>(() => new Yw.Service.MonitorPoint()); |
| | | var servie_alarm_record = new Lazy<Yw.Service.MonitorValueAlarmRecord>(() => new Yw.Service.MonitorValueAlarmRecord()); |
| | | foreach (var enginePump in allEnginePumpList) |
| | | { |
| | | ID = 3, |
| | | Name = "2#机组", |
| | | Content = "瞬时流量数据异常,请检修" |
| | | }); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | { |
| | | ID = 4, |
| | | Name = "2#机组", |
| | | Content = "瞬时流量数据异常,请检修" |
| | | }); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | { |
| | | ID = 5, |
| | | Name = "2#机组", |
| | | Content = "瞬时流量数据异常,请检修" |
| | | }); |
| | | vmList.Add(new BigScreenSingleStationAlarmItemDto() |
| | | { |
| | | ID = 6, |
| | | Name = "2#机组", |
| | | Content = "瞬时流量数据异常,请检修" |
| | | }); |
| | | var allMonitorMappingList = service_monitor_maping.GetByEquipmentIDContainsChildren(enginePump.ID); |
| | | if (allMonitorMappingList != null && allMonitorMappingList.Count > 0) |
| | | { |
| | | var allMonitorIds = allMonitorMappingList.Select(x => x.MonitorPointID).Distinct().ToList(); |
| | | var allMonitorList = service_monitor.Value.GetExSignalWithSignalTypeByIds(allMonitorIds); |
| | | var allSignalList = allMonitorList.SelectMany(x => x.SignalList).ToList(); |
| | | var allSignalIds = allSignalList.Select(x => x.ID).Distinct().ToList(); |
| | | var allAlarmList = servie_alarm_record.Value.GetLastListBySignalIds(allSignalIds, 3); |
| | | if (allAlarmList != null && allAlarmList.Count > 0) |
| | | { |
| | | foreach (var alarm in allAlarmList) |
| | | { |
| | | var vm = new BigScreenSingleStationAlarmItemDto() |
| | | { |
| | | ID = alarm.ID, |
| | | Name = enginePump.Name, |
| | | Content = alarm.AlarmName |
| | | }; |
| | | vmList.Add(vm); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return vmList; |
| | | } |
| | | |