IStation.Application.SZJT/00-core/3-dto/flowmeterid/FlowMeterIDInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class FlowMeterIDInput { /// <summary> /// /// </summary> [Required, Range(1, long.MaxValue, ErrorMessage = "FlowMeterID å¿ é¡»å¤§äº0")] public long FlowMeterID { get; set; } } } IStation.Application.SZJT/00-core/3-dto/meterid/MeterIDInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class MeterIDInput { /// <summary> /// /// </summary> [Required, Range(1, long.MaxValue, ErrorMessage = "MeterID å¿ é¡»å¤§äº0")] public long MeterID { get; set; } } } IStation.Application.SZJT/00-core/3-dto/pressmeterid/FlowMeterIDInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class PressMeterIDInput { /// <summary> /// /// </summary> [Required, Range(1, long.MaxValue, ErrorMessage = "PressMeterID å¿ é¡»å¤§äº0")] public long PressMeterID { get; set; } } } IStation.Application.SZJT/00-core/3-dto/stationid/StationIDInput.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationIDInput { /// <summary> /// /// </summary> [Required, Range(1, long.MaxValue, ErrorMessage = "StationID å¿ é¡»å¤§äº0")] public long StationID { get; set; } } } IStation.Application.SZJT/99-logic/07-dma-analy/DmaAnaly_LogicController.cs
@@ -72,8 +72,6 @@ } return vm_list; } #endregion @@ -149,7 +147,19 @@ [HttpGet] public List<DmaAnalyAreaDayStatusDto> GetAreaDayStatusList([FromQuery][Required] QueryDmaAreaDayStatusListInput input) { return default; var vmList = new List<DmaAnalyAreaDayStatusDto>(); for (DateTime i = input.StartDay.Date; i <= input.EndDay.Date; i = i.AddDays(1)) { var vm = new DmaAnalyAreaDayStatusDto(); vm.Day = i; vm.InVol = RandomHelper.Random(4000, 5000); vm.OutVol = RandomHelper.Random(1000, 2000); vm.ReadVol = RandomHelper.Random(2000, 3000); vm.UseVol = vm.InVol - vm.OutVol; vm.LeakRate = null; vmList.Add(vm); } return vmList; } /// <summary> @@ -157,9 +167,36 @@ /// </summary> [Route("GetAreaMonthStatusList@V1.0")] [HttpGet] public List<DmaAnalyAreaDayStatusDto> GetAreaMonthStatusList([FromQuery][Required] QueryDmaAreaMonthStatusListInput input) public List<DmaAnalyAreaMonthStatusDto> GetAreaMonthStatusList([FromQuery][Required] QueryDmaAreaMonthStatusListInput input) { return default; var vmList = new List<DmaAnalyAreaMonthStatusDto>(); for (int i = input.StartYear; i <= input.EndYear; i++) { var min = 1; if (i == input.StartYear) { min = input.StartMonth; } var max = 12; if (i == input.EndYear) { max = input.EndMonth; } for (int j = min; j <= max; j++) { var vm = new DmaAnalyAreaMonthStatusDto(); vm.Year = i; vm.Month = j; vm.InVol = RandomHelper.Random(4000, 5000); vm.OutVol = RandomHelper.Random(1000, 2000); vm.ReadVol = RandomHelper.Random(2000, 3000); vm.UseVol = vm.InVol - vm.OutVol; vm.LeakRate = null; vmList.Add(vm); } } return vmList; } #endregion @@ -264,7 +301,19 @@ [HttpGet] public List<DmaAnalySiteDayStatusDto> GetSiteDayStatusList([FromQuery][Required] QueryDmaSiteDayStatusListInput input) { return default; var vmList = new List<DmaAnalySiteDayStatusDto>(); for (DateTime i = input.StartDay.Date; i <= input.EndDay.Date; i = i.AddDays(1)) { var vm = new DmaAnalySiteDayStatusDto(); vm.Day = i; vm.Value = RandomHelper.Random(1000, 5000); if (vm.Value > 4000) { vm.Value = null; } vmList.Add(vm); } return vmList; } /// <summary> @@ -272,9 +321,36 @@ /// </summary> [Route("GetSiteMonthStatusList@V1.0")] [HttpGet] public List<DmaAnalySiteDayStatusDto> GetSiteMonthStatusList([FromQuery][Required] QueryDmaSiteDayStatusListInput input) public List<DmaAnalySiteMonthStatusDto> GetSiteMonthStatusList([FromQuery][Required] QueryDmaSiteMonthStatusListInput input) { return default; var vmList = new List<DmaAnalySiteMonthStatusDto>(); for (int i = input.StartYear; i <= input.EndYear; i++) { var min = 1; if (i == input.StartYear) { min = input.StartMonth; } var max = 12; if (i == input.EndYear) { max = input.EndMonth; } for (int j = min; j <= max; j++) { var vm = new DmaAnalySiteMonthStatusDto(); vm.Year = i; vm.Month = j; vm.Value = RandomHelper.Random(1000, 5000); if (vm.Value > 4000) { vm.Value = null; } vmList.Add(vm); } } return vmList; } #endregion IStation.Application.SZJT/99-logic/08-flow-meter-map/FlowMeterMap_LogicController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,107 @@ namespace IStation.Application { /// <summary> /// FlowMeterMap /// </summary> [Route("SZJT/Flow/Meter/Map/Logic")] [ApiDescriptionSettings("SZJT", Name = "æµé计å°å¾(Logic)", Order = 4000)] public class FlowMeterMap_LogicController : IDynamicApiController { /// <summary> /// è·åçæµKpiå表 /// </summary> [Route("GetMonitorKpiList@V1.0")] [HttpGet] public List<FlowMeterMapMonitorKpiInfoDto> GetMonitorKpiList([FromQuery][Required] BelongInput input) { var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.FlowMeter); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "æµé计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); var allMeterList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(input.BelongType, input.BelongID); allMeterList = allMeterList?.Where(x => catalogIds.Contains(x.CatalogID)).ToList(); if (allMeterList == null || allMeterList.Count < 1) { return default; } var service_monitor_mapping = new Yw.Service.EquipmentMonitorMapping(); var service_monitor = new Lazy<Yw.Service.MonitorPoint>(() => new Yw.Service.MonitorPoint()); var service_monitor_record = new Lazy<Yw.Service.MonitorRealRecord>(() => new Yw.Service.MonitorRealRecord()); var service_map = new Lazy<Yw.Service.MapInfo>(() => new Yw.Service.MapInfo()); var vmList = new List<FlowMeterMapMonitorKpiInfoDto>(); foreach (var meter in allMeterList) { var vm = new FlowMeterMapMonitorKpiInfoDto(meter); vmList.Add(vm); var mapInfo = service_map.Value.Get(Yw.Assets.DataType.Equipment, meter.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { vm.Position = Yw.Model.Map.Marker.ToModel(mapInfo.Position); } var monitor_mapping_list = service_monitor_mapping.GetByEquipmentID(meter.ID); if (monitor_mapping_list != null && monitor_mapping_list.Count > 0) { var monitorIds = monitor_mapping_list.Select(x => x.MonitorPointID).Distinct().ToList(); var monitor_list = service_monitor.Value.GetExSignalWithSignalTypeByIds(monitorIds); monitor_list = monitor_list?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); monitor_list = monitor_list?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (monitor_list != null && monitor_list.Count > 0) { var monitorQ = monitor_list.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.ç¬æ¶æµé)); if (monitorQ == null) { monitorQ = monitor_list.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.ç¬æ¶æµé)); } if (monitorQ != null) { var signalQ = monitorQ.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalQ.ID); if (last_record != null) { vm.LastRecordList.Add(new FlowMeterMapMonitorKpiLastRecordDto(monitorQ, last_record)); } } var monitorQl = monitor_list.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.累积æµé)); if (monitorQl == null) { monitorQl = monitor_list.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.累积æµé)); } if (monitorQl != null) { var signalQl = monitorQl.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalQl.ID); if (last_record != null) { vm.LastRecordList.Add(new FlowMeterMapMonitorKpiLastRecordDto(monitorQl, last_record)); } } } } } return vmList; } } } IStation.Application.SZJT/99-logic/08-flow-meter-map/dto/FlowMeterMapMonitorKpiInfoDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ namespace IStation.Application { /// <summary> /// çæµå°å¾KPIä¿¡æ¯ /// </summary> public class FlowMeterMapMonitorKpiInfoDto { /// <summary> /// /// </summary> public FlowMeterMapMonitorKpiInfoDto(Yw.Model.Equipment rhs) { this.FlowMeterID = rhs.ID; this.Name = rhs.Name; this.LastRecordList = new List<FlowMeterMapMonitorKpiLastRecordDto>(); } /// <summary> /// æµé计id /// </summary> public long FlowMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Marker Position { get; set; } /// <summary> /// æåè®°å½å表 /// </summary> public List<FlowMeterMapMonitorKpiLastRecordDto> LastRecordList { get; set; } } } IStation.Application.SZJT/99-logic/08-flow-meter-map/dto/FlowMeterMapMonitorKpiLastRecordDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ namespace IStation.Application { /// <summary> /// æµéè®¡çæµkpiæè¿è®°å½dto /// </summary> public class FlowMeterMapMonitorKpiLastRecordDto { /// <summary> /// /// </summary> public FlowMeterMapMonitorKpiLastRecordDto(Yw.Model.MonitorPoint_Signal_SignalType monitor, Yw.Model.MonitorRealRecord record) { this.SignalID = monitor.SignalList.First().ID; this.Name = monitor.Name; this.Code = monitor.SignalList.First().SignalType.Code; this.DataTime = record?.DataTime; this.DataValue = monitor.SignalList.First().GetDisplayValue(record?.DataValue); this.UnitName = monitor.SignalList.First().GetDisplayUnitName(); this.DataStatus = record?.DataStatus; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½ /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public List<string> DataStatus { get; set; } } } IStation.Application.SZJT/99-logic/09-press-meter-map/PressMeterMap_LogicController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,92 @@ namespace IStation.Application { /// <summary> /// PressMeterMap /// </summary> [Route("SZJT/Press/Meter/Map/Logic")] [ApiDescriptionSettings("SZJT", Name = "åå计å°å¾(Logic)", Order = 3000)] public class PressMeterMap_LogicController : IDynamicApiController { /// <summary> /// è·åçæµKpiå表 /// </summary> [Route("GetMonitorKpiList@V1.0")] [HttpGet] public List<PressMeterMapMonitorKpiInfoDto> GetMonitorKpiList([FromQuery][Required] BelongInput input) { var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.PressMeter); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "åå计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); var allMeterList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(input.BelongType, input.BelongID); allMeterList = allMeterList?.Where(x => catalogIds.Contains(x.CatalogID)).ToList(); if (allMeterList == null || allMeterList.Count < 1) { return default; } var service_monitor_mapping = new Yw.Service.EquipmentMonitorMapping(); var service_monitor = new Lazy<Yw.Service.MonitorPoint>(() => new Yw.Service.MonitorPoint()); var service_monitor_record = new Lazy<Yw.Service.MonitorRealRecord>(() => new Yw.Service.MonitorRealRecord()); var service_map = new Lazy<Yw.Service.MapInfo>(() => new Yw.Service.MapInfo()); var vmList = new List<PressMeterMapMonitorKpiInfoDto>(); foreach (var meter in allMeterList) { var vm = new PressMeterMapMonitorKpiInfoDto(meter); vmList.Add(vm); var mapInfo = service_map.Value.Get(Yw.Assets.DataType.Equipment, meter.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { vm.Position = Yw.Model.Map.Marker.ToModel(mapInfo.Position); } var monitor_mapping_list = service_monitor_mapping.GetByEquipmentID(meter.ID); if (monitor_mapping_list != null && monitor_mapping_list.Count > 0) { var monitorIds = monitor_mapping_list.Select(x => x.MonitorPointID).Distinct().ToList(); var monitor_list = service_monitor.Value.GetExSignalWithSignalTypeByIds(monitorIds); monitor_list = monitor_list?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); monitor_list = monitor_list?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (monitor_list != null && monitor_list.Count > 0) { var monitorPr = monitor_list.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.åå)); if (monitorPr == null) { monitorPr = monitor_list.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.åå)); } if (monitorPr != null) { var signalPr = monitorPr.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalPr.ID); if (last_record != null) { vm.LastRecordList.Add(new PressMeterMapMonitorKpiLastRecordDto(monitorPr, last_record)); } } } } } return vmList; } } } IStation.Application.SZJT/99-logic/09-press-meter-map/dto/PressMeterMapMonitorKpiInfoDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ namespace IStation.Application { /// <summary> /// çæµå°å¾KPIä¿¡æ¯ /// </summary> public class PressMeterMapMonitorKpiInfoDto { /// <summary> /// /// </summary> public PressMeterMapMonitorKpiInfoDto(Yw.Model.Equipment rhs) { this.PressMeterID = rhs.ID; this.Name = rhs.Name; this.LastRecordList = new List<PressMeterMapMonitorKpiLastRecordDto>(); } /// <summary> /// åå计id /// </summary> public long PressMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Marker Position { get; set; } /// <summary> /// æåè®°å½å表 /// </summary> public List<PressMeterMapMonitorKpiLastRecordDto> LastRecordList { get; set; } } } IStation.Application.SZJT/99-logic/09-press-meter-map/dto/PressMeterMapMonitorKpiLastRecordDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ namespace IStation.Application { /// <summary> /// ååè®¡çæµkpiæè¿è®°å½dto /// </summary> public class PressMeterMapMonitorKpiLastRecordDto { /// <summary> /// /// </summary> public PressMeterMapMonitorKpiLastRecordDto(Yw.Model.MonitorPoint_Signal_SignalType monitor, Yw.Model.MonitorRealRecord record) { this.SignalID = monitor.SignalList.First().ID; this.Name = monitor.Name; this.Code = monitor.SignalList.First().SignalType.Code; this.DataTime = record?.DataTime; this.DataValue = monitor.SignalList.First().GetDisplayValue(record?.DataValue); this.UnitName = monitor.SignalList.First().GetDisplayUnitName(); this.DataStatus = record?.DataStatus; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½ /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public List<string> DataStatus { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/01-station-list/StationList_LogicController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,113 @@ namespace IStation.Application { /// <summary> /// StationList /// </summary> [Route("SZJT/Station/List/Mobile")] [ApiDescriptionSettings("SZJT", Name = "æ³µç«å表(ææº)", Order = 2000)] public class StationList_MobileController : IDynamicApiController { /// <summary> /// è·åææ /// </summary> [Route("GetAll@V1.0")] [HttpGet] public List<StationListGroupMobileDto> GetAll() { var keyContent = $"SZJT_Station_List_Mobile_GetAll"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { #region è·åé»è®¤çç¥ var allPolicyList = new Service.LogicPolicy().GetAll(); Service.LogicPolicy.PublishCache(cacheKey); var policy = allPolicyList?.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤)); if (policy == null) { policy = allPolicyList?.FirstOrDefault(); } if (policy == null) { return default; } #endregion #region è·åæ¸ åå表 var allLogicTreeList = new Service.LogicTree().GetExByPolicyID(policy.ID); Service.LogicTree.PublishCache(cacheKey); if (allLogicTreeList == null || allLogicTreeList.Count < 1) { return default; } #endregion var vmList = new List<StationListGroupMobileDto>(); var service_map = new Yw.Service.MapInfo(); foreach (var logicTree in allLogicTreeList) { if (logicTree.LogicType == IStation.DataType.LogicArea) { var group = new StationListGroupMobileDto(); group.ID = logicTree.LogicID; group.Name = logicTree.Name; group.SortCode = logicTree.SortCode; group.Description = logicTree.Description; group.StationList = new List<StationListItemMobileDto>(); vmList.Add(group); continue; } if (logicTree.LogicType == IStation.DataType.LogicSite) { var station = new StationListItemMobileDto(); station.ID = logicTree.LogicID; station.Name = logicTree.Name; station.SortCode = logicTree.SortCode; station.Description = logicTree.Description; var mapInfo = service_map.Get(logicTree.LogicType, logicTree.LogicID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { var marker = Yw.Model.Map.Marker.ToModel(mapInfo.Position); if (marker != null) { station.Address = marker.Address; } } var parentLogicTree = allLogicTreeList.Find(x => logicTree.ParentIds.LastOrDefault() == x.ID); if (parentLogicTree != null) { if (parentLogicTree.LogicType == IStation.DataType.LogicArea) { var group = vmList.Find(x => x.ID == parentLogicTree.LogicID); if (group != null) { group.StationList.Add(station); } } } } } return vmList; }, CacheHelper.CacheLevel1); return vm_list; } } } IStation.Application.SZJT/99-logic/10-mobile/01-station-list/dto/StationListGroupMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationListGroupMobileDto { /// <summary> /// id /// </summary> public long ID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } /// <summary> /// æ³µç«å表 /// </summary> public List<StationListItemMobileDto> StationList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/01-station-list/dto/StationListItemMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationListItemMobileDto { /// <summary> /// id /// </summary> public long ID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// å°å /// </summary> public string Address { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/02-meter-list/MeterList_MobileController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,152 @@ namespace IStation.Application { /// <summary> /// MeterList /// </summary> [Route("SZJT/Meter/List/Mobile")] [ApiDescriptionSettings("SZJT", Name = "仪表å表(ææº)", Order = 1900)] public class MeterList_MobileController : IDynamicApiController { /// <summary> /// è·åææ /// </summary> [Route("GetAll@V1.0")] [HttpGet] public List<MeterListGroupMobileDto> GetAll() { var keyContent = $"SZJT_Meter_List_Mobile_GetAll"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { #region æ°æ®åå¤ var allEquipmentList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicDma, 1); Yw.Service.Equipment.PublishCache(cacheKey); if (allEquipmentList == null || allEquipmentList.Count < 1) { return default; } var service_catalog = new Yw.Service.SysCatalog(); var service_map = new Yw.Service.MapInfo(); var vmList = new List<MeterListGroupMobileDto>(); #endregion #region æµé计 var vm_group_flow = new MeterListGroupMobileDto() { ID = 1, Name = "æµé计", SortCode = 1, Description = string.Empty }; vmList.Add(vm_group_flow); var allFlowCatalogList = service_catalog.GetChildAndSelfByCode(IStation.Catalog.FlowMeter); if (allFlowCatalogList != null && allFlowCatalogList.Count > 0) { var allFlowCatalogIds = allFlowCatalogList.Select(x => x.ID).Distinct().ToList(); var allFlowList = allEquipmentList.Where(x => allFlowCatalogIds.Contains(x.CatalogID)).ToList(); if (allFlowList != null && allFlowList.Count > 0) { vm_group_flow.MeterList = new List<MeterListItemMobileDto>(); foreach (var flow in allFlowList) { var vm_meter_flow = new MeterListItemMobileDto(flow); vm_group_flow.MeterList.Add(vm_meter_flow); var mapInfo = service_map.Get(Yw.Assets.DataType.Equipment, flow.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { var marker = Yw.Model.Map.Marker.ToModel(mapInfo.Position); if (marker != null) { vm_meter_flow.Address = marker.Address; } } } } } #endregion #region åå计 var vm_group_press = new MeterListGroupMobileDto() { ID = 2, Name = "åå计", SortCode = 2, Description = string.Empty }; vmList.Add(vm_group_press); var allPressMeterList = service_catalog.GetChildAndSelfByCode(IStation.Catalog.PressMeter); if (allPressMeterList != null && allPressMeterList.Count > 0) { var allPressCatalogIds = allPressMeterList.Select(x => x.ID).Distinct().ToList(); var allPressList = allEquipmentList.Where(x => allPressCatalogIds.Contains(x.CatalogID)).ToList(); if (allPressList != null && allPressList.Count > 0) { vm_group_press.MeterList = new List<MeterListItemMobileDto>(); foreach (var press in allPressList) { var vm_meter_press = new MeterListItemMobileDto(press); vm_group_press.MeterList.Add(vm_meter_press); var mapInfo = service_map.Get(Yw.Assets.DataType.Equipment, press.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { var marker = Yw.Model.Map.Marker.ToModel(mapInfo.Position); if (marker != null) { vm_meter_press.Address = marker.Address; } } } } } #endregion #region åç表 //var vm_group_power = new MeterListGroupMobileDto() //{ // ID = 3, // Name = "åç表", // SortCode = 3, // Description = string.Empty //}; //vmList.Add(vm_group_power); #endregion #region 水质仪 //var vm_group_water = new MeterListGroupMobileDto() //{ // ID = 4, // Name = "水质仪", // SortCode = 4, // Description = string.Empty //}; //vmList.Add(vm_group_water); #endregion return vmList; }, CacheHelper.CacheLevel1); return vm_list; } } } IStation.Application.SZJT/99-logic/10-mobile/02-meter-list/dto/MeterListGroupMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class MeterListGroupMobileDto { /// <summary> /// id /// </summary> public long ID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } /// <summary> /// 仪表å表 /// </summary> public List<MeterListItemMobileDto> MeterList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/02-meter-list/dto/MeterListItemMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class MeterListItemMobileDto { /// <summary> /// /// </summary> public MeterListItemMobileDto(Yw.Model.Equipment rhs) { this.ID = rhs.ID; this.Name = rhs.Name; this.ModelType = rhs.ModelType; this.Specification = rhs.Specification; this.SortCode = rhs.SortCode; this.Description = rhs.Description; } /// <summary> /// id /// </summary> public long ID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// åå· /// </summary> public string ModelType { get; set; } /// <summary> /// è§æ ¼ /// </summary> public string Specification { get; set; } /// <summary> /// å°å /// </summary> public string Address { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/03-station-monitor-list/StationMonitorList_MobileController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ namespace IStation.Application { /// <summary> /// StationMonitorList /// </summary> [Route("SZJT/Station/Monitor/List/Mobile")] [ApiDescriptionSettings("SZJT", Name = "æ³µç«çæµå表(ææº)", Order = 1800)] public class StationMonitorList_MobileController : IDynamicApiController { /// <summary> /// éè¿ StationID è·å /// </summary> [Route("GetByStationID@V1.0")] [HttpGet] public List<StationMonitorListGroupMobileDto> GetByStationID([FromQuery][Required] StationIDInput input) { var allGroupList = new Yw.Service.MonitorPointGroup().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID); if (allGroupList == null || allGroupList.Count < 1) { return default; } var service_monitor = new Yw.Service.MonitorPoint(); var service_monitor_record = new Yw.Service.MonitorRealRecord(); var vmList = new List<StationMonitorListGroupMobileDto>(); foreach (var group in allGroupList) { var vm_group = new StationMonitorListGroupMobileDto(group); vmList.Add(vm_group); var allMonitorList = service_monitor.GetExSignalWithSignalTypeByGroupID(group.ID); allMonitorList = allMonitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); allMonitorList = allMonitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (allMonitorList != null && allMonitorList.Count > 1) { foreach (var monitor in allMonitorList) { var signal = monitor.SignalList.First(); var record = service_monitor_record.GetLastRecord(signal.ID); var vm_monitor = new StationMonitorListItemMobileDto(monitor, signal, record); vm_group.MonitorList.Add(vm_monitor); } if (group.Flags.Contains(IStation.Flags.æºç»)) { var monitor_run_list = allMonitorList.Where(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.è¿è¡ç¶æ)).ToList(); if (monitor_run_list != null && monitor_run_list.Count > 0) { var monitor_run = monitor_run_list.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤)); if (monitor_run == null) { monitor_run = monitor_run_list.First(); } vm_group.RunStatus = vm_group.MonitorList.Find(x => x.SignalID == monitor_run.SignalList.First().ID)?.DataValue; } } } } return vmList; } } } IStation.Application.SZJT/99-logic/10-mobile/03-station-monitor-list/dto/StationMonitorListGroupMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationMonitorListGroupMobileDto { /// <summary> /// /// </summary> public StationMonitorListGroupMobileDto(Yw.Model.MonitorPointGroup rhs) { this.ID = rhs.ID; this.Name = rhs.Name; this.SortCode = rhs.SortCode; this.Description = rhs.Description; this.MonitorList = new List<StationMonitorListItemMobileDto>(); } /// <summary> /// id /// </summary> public long ID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// è¿è¡ç¶æ /// </summary> public string RunStatus { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } /// <summary> /// çæµé¡¹å表 /// </summary> public List<StationMonitorListItemMobileDto> MonitorList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/03-station-monitor-list/dto/StationMonitorListItemMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationMonitorListItemMobileDto { /// <summary> /// /// </summary> public StationMonitorListItemMobileDto(Yw.Model.MonitorPoint monitor, Yw.Model.Signal_SignalType signal, Yw.Model.MonitorRealRecord record) { this.Name = monitor.Name; this.Code = signal.SignalType.Code; this.SignalID = signal.ID; this.DataValue = signal.GetDisplayValue(record?.DataValue); this.UnitName = signal.GetDisplayUnitName(); this.DataStatus = Yw.Monitor.eDataStatus.Normal; if (record != null) { if (!Yw.Monitor.DataStatus.IsNormal(record.DataStatus)) { this.DataStatus = Yw.Monitor.eDataStatus.Error; } } this.SortCode = monitor.SortCode; this.Description = monitor.Description; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½åç§° /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public Yw.Monitor.eDataStatus DataStatus { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/04-meter-monitor-list/MeterMonitorList_MobileController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ namespace IStation.Application { /// <summary> /// MeterMonitorList /// </summary> [Route("SZJT/Meter/Monitor/List/Mobile")] [ApiDescriptionSettings("SZJT", Name = "ä»ªè¡¨çæµå表(ææº)", Order = 1700)] public class MeterMonitorList_MobileController : IDynamicApiController { /// <summary> /// éè¿ MeterID è·å /// </summary> [Route("GetByMeterID@V1.0")] [HttpGet] public List<MeterMonitorListItemMobileDto> GetByMeterID([FromQuery][Required] MeterIDInput input) { var allMappingList = new Yw.Service.EquipmentMonitorMapping().GetByEquipmentID(input.MeterID); if (allMappingList == null || allMappingList.Count < 1) { return default; } var allMonitorIds = allMappingList.Select(x => x.MonitorPointID).Distinct().ToList(); var allMonitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByIds(allMonitorIds); allMonitorList = allMonitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); allMonitorList = allMonitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (allMonitorList == null || allMonitorList.Count < 1) { return default; } var service_monitor_record = new Yw.Service.MonitorRealRecord(); var vmList = new List<MeterMonitorListItemMobileDto>(); foreach (var monitor in allMonitorList) { var signal = monitor.SignalList.First(); var record = service_monitor_record.GetLastRecord(signal.ID); var vm = new MeterMonitorListItemMobileDto(monitor, signal, record); vmList.Add(vm); } return vmList; } } } IStation.Application.SZJT/99-logic/10-mobile/04-meter-monitor-list/dto/MeterMonitorListItemMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class MeterMonitorListItemMobileDto { /// <summary> /// /// </summary> public MeterMonitorListItemMobileDto(Yw.Model.MonitorPoint monitor, Yw.Model.Signal_SignalType signal, Yw.Model.MonitorRealRecord record) { this.Name = monitor.Name; this.Code = signal.SignalType.Code; this.SignalID = signal.ID; this.DataValue = signal.GetDisplayValue(record?.DataValue); this.UnitName = signal.GetDisplayUnitName(); this.DataStatus = Yw.Monitor.eDataStatus.Normal; if (record != null) { if (!Yw.Monitor.DataStatus.IsNormal(record.DataStatus)) { this.DataStatus = Yw.Monitor.eDataStatus.Error; } } this.SortCode = monitor.SortCode; this.Description = monitor.Description; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½åç§° /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public Yw.Monitor.eDataStatus DataStatus { get; set; } /// <summary> /// æåºç /// </summary> public int SortCode { get; set; } /// <summary> /// 说æ /// </summary> public string Description { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/Map_MobileController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,439 @@ namespace IStation.Application { /// <summary> /// Map /// </summary> [Route("SZJT/Map/Mobile")] [ApiDescriptionSettings("SZJT", Name = "å°å¾(ææº)", Order = 1600)] public class Map_MobileController : IDynamicApiController { /// <summary> /// è·åæ³µç«å表 /// </summary> [Route("GetStationList@V1.0")] [HttpGet] public List<StationMapMobileDto> GetStationList() { var keyContent = $"SZJT_Map_Mobile_GetStationList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var allList = new Service.LogicSite().GetAll(); Service.LogicSite.PublishCache(cacheKey); if (allList == null || allList.Count < 1) { return default; } var serviceMap = new Yw.Service.MapInfo(); var vmList = new List<StationMapMobileDto>(); foreach (var station in allList) { var vm = new StationMapMobileDto(station); vmList.Add(vm); var map = serviceMap.Get(IStation.DataType.LogicSite, station.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (map != null) { var position = Yw.Model.Map.Marker.ToModel(map.Position); vm.Position = position; } } return vmList; }, CacheHelper.CacheLevel3); return vm_list; } /// <summary> /// éè¿ StationID è·åçæµKpiä¿¡æ¯ /// </summary> [Route("GetMonitorKpiInfoByStationID@V1.0")] [HttpGet] public StationMapMonitorKpiInfoMobileDto GetMonitorKpiInfoByStationID([FromQuery][Required] StationIDInput input) { var station = new Service.LogicSite().GetByID(input.StationID); if (station == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"StationID:{input.StationID} æ°æ®ä¸åå¨"); } var vm = new StationMapMonitorKpiInfoMobileDto(station); var allMonitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID); allMonitorList = allMonitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); allMonitorList = allMonitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (allMonitorList != null && allMonitorList.Count > 0) { allMonitorList = allMonitorList.Where(x => x.Flags.Contains(Flags.KPI)).OrderByDescending(X => X.Importance).ToList(); if (allMonitorList.Count > 0) { var service_monitor_record = new Yw.Service.MonitorRealRecord(); allMonitorList = allMonitorList.Take(4).ToList(); foreach (var monitor in allMonitorList) { var monitorRecord = service_monitor_record.GetLastRecord(monitor.SignalList.First().ID); vm.LastRecordList.Add(new StationMapMonitorKpiLastRecordMobileDto(monitor, monitorRecord)); } } } var allEquipmentList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID); allEquipmentList = allEquipmentList?.Where(x => x.ParentIds.Count < 1).ToList(); if (allEquipmentList != null && allEquipmentList.Count > 0) { var service_run_record = new Yw.Service.RunRealRecord(); foreach (var equipment in allEquipmentList) { var runRecord = service_run_record.GetLastRecord(Yw.Assets.DataType.Equipment, equipment.ID); vm.LastStatusList.Add(new StationMapMonitorKpiLastStatusMobileDto(equipment, runRecord)); } } return vm; } /// <summary> /// è·åæµé计å表 /// </summary> [Route("GetFlowMeterList@V1.0")] [HttpGet] public List<FlowMeterMapMobileDto> GetFlowMeterList() { var keyContent = $"SZJT_Map_Mobile_GetFlowMeterList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.FlowMeter); Yw.Service.SysCatalog.PublishCache(cacheKey); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "æµé计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); var allMeterList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicDma, 1); Yw.Service.Equipment.PublishCache(cacheKey); allMeterList = allMeterList?.Where(x => catalogIds.Contains(x.CatalogID)).ToList(); if (allMeterList == null || allMeterList.Count < 1) { return default; } var service_map = new Lazy<Yw.Service.MapInfo>(() => new Yw.Service.MapInfo()); var vmList = new List<FlowMeterMapMobileDto>(); foreach (var meter in allMeterList) { var vm = new FlowMeterMapMobileDto(meter); vmList.Add(vm); var mapInfo = service_map.Value.Get(Yw.Assets.DataType.Equipment, meter.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { vm.Position = Yw.Model.Map.Marker.ToModel(mapInfo.Position); } } return vmList; }, CacheHelper.CacheLevel3); return vm_list; } /// <summary> /// éè¿ FlowMeterID è·åçæµKpiä¿¡æ¯ /// </summary> [Route("GetMonitorKpiInfoByFlowMeterID@V1.0")] [HttpGet] public FlowMeterMapMonitorKpiInfoMobileDto GetMonitorKpiInfoByFlowMeterID([FromQuery][Required] FlowMeterIDInput input) { var equipment = new Yw.Service.Equipment().GetByID(input.FlowMeterID); if (equipment == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"FlowMeterID:{input.FlowMeterID} æ°æ®ä¸åå¨"); } var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.FlowMeter); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "æµé计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); if (!catalogIds.Contains(equipment.CatalogID)) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"FlowMeterID:{input.FlowMeterID} 请è¾å ¥æ£ç¡®æµé计id"); } var vm = new FlowMeterMapMonitorKpiInfoMobileDto(); vm.FlowMeterID = input.FlowMeterID; vm.Name = equipment.Name; vm.LastRecordList = new List<FlowMeterMapMonitorKpiLastRecordMobileDto>(); var service_monitor_mapping = new Yw.Service.EquipmentMonitorMapping(); var mappingList = new Yw.Service.EquipmentMonitorMapping().GetByEquipmentID(input.FlowMeterID); if (mappingList != null && mappingList.Count > 0) { var monitorIds = mappingList.Select(x => x.MonitorPointID).Distinct().ToList(); var monitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByIds(monitorIds); monitorList = monitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); monitorList = monitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (monitorList != null && monitorList.Count > 0) { var service_monitor_record = new Lazy<Yw.Service.MonitorRealRecord>(() => new Yw.Service.MonitorRealRecord()); var monitorQ = monitorList.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.ç¬æ¶æµé)); if (monitorQ == null) { monitorQ = monitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.ç¬æ¶æµé)); } if (monitorQ != null) { var signalQ = monitorQ.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalQ.ID); if (last_record != null) { vm.LastRecordList.Add(new FlowMeterMapMonitorKpiLastRecordMobileDto(monitorQ, last_record)); } } var monitorQl = monitorList.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.累积æµé)); if (monitorQl == null) { monitorQl = monitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.累积æµé)); } if (monitorQl != null) { var signalQl = monitorQl.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalQl.ID); if (last_record != null) { vm.LastRecordList.Add(new FlowMeterMapMonitorKpiLastRecordMobileDto(monitorQl, last_record)); } } } } return vm; } /// <summary> /// è·ååå计å表 /// </summary> [Route("GetPressMeterList@V1.0")] [HttpGet] public List<FlowMeterMapMobileDto> GetPressMeterList() { var keyContent = $"SZJT_Map_Mobile_GetPressMeterList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.PressMeter); Yw.Service.SysCatalog.PublishCache(cacheKey); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "åå计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); var allMeterList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicDma, 1); Yw.Service.Equipment.PublishCache(cacheKey); allMeterList = allMeterList?.Where(x => catalogIds.Contains(x.CatalogID)).ToList(); if (allMeterList == null || allMeterList.Count < 1) { return default; } var service_map = new Lazy<Yw.Service.MapInfo>(() => new Yw.Service.MapInfo()); var vmList = new List<FlowMeterMapMobileDto>(); foreach (var meter in allMeterList) { var vm = new FlowMeterMapMobileDto(meter); vmList.Add(vm); var mapInfo = service_map.Value.Get(Yw.Assets.DataType.Equipment, meter.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (mapInfo != null) { vm.Position = Yw.Model.Map.Marker.ToModel(mapInfo.Position); } } return vmList; }, CacheHelper.CacheLevel3); return vm_list; } /// <summary> /// éè¿ PressMeterID è·åçæµKpiä¿¡æ¯ /// </summary> [Route("GetMonitorKpiInfoByPressMeterID@V1.0")] [HttpGet] public PressMeterMapMonitorKpiInfoMobileDto GetMonitorKpiInfoByPressMeterID([FromQuery][Required] PressMeterIDInput input) { var equipment = new Yw.Service.Equipment().GetByID(input.PressMeterID); if (equipment == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"PressMeterID:{input.PressMeterID} æ°æ®ä¸åå¨"); } var catalogList = new Yw.Service.SysCatalog().GetChildAndSelfByCode(IStation.Catalog.PressMeter); if (catalogList == null || catalogList.Count < 1) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, "åå计åç±»ç¼ç éªè¯å¤±è´¥"); } var catalogIds = catalogList.Select(x => x.ID).Distinct().ToList(); if (!catalogIds.Contains(equipment.CatalogID)) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"PressMeterID:{input.PressMeterID} 请è¾å ¥æ£ç¡®åå计id"); } var vm = new PressMeterMapMonitorKpiInfoMobileDto(); vm.PressMeterID = input.PressMeterID; vm.Name = equipment.Name; vm.LastRecordList = new List<PressMeterMapMonitorKpiLastRecordMobileDto>(); var service_monitor_mapping = new Yw.Service.EquipmentMonitorMapping(); var mappingList = new Yw.Service.EquipmentMonitorMapping().GetByEquipmentID(input.PressMeterID); if (mappingList != null && mappingList.Count > 0) { var monitorIds = mappingList.Select(x => x.MonitorPointID).Distinct().ToList(); var monitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByIds(monitorIds); monitorList = monitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); monitorList = monitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList(); if (monitorList != null && monitorList.Count > 0) { var service_monitor_record = new Lazy<Yw.Service.MonitorRealRecord>(() => new Yw.Service.MonitorRealRecord()); var monitorPr = monitorList.Find(x => x.Flags.Contains(IStation.Flags.é»è®¤) && x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.åå)); if (monitorPr == null) { monitorPr = monitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.åå)); } if (monitorPr != null) { var signalPr = monitorPr.SignalList.First(); var last_record = service_monitor_record.Value.GetLastRecord(signalPr.ID); if (last_record != null) { vm.LastRecordList.Add(new PressMeterMapMonitorKpiLastRecordMobileDto(monitorPr, last_record)); } } } } return vm; } /// <summary> /// è·åå·¥åå表 /// </summary> [Route("GetRepairList@V1.0")] [HttpGet] public List<RepairMapMobileDto> GetRepairList() { var vmList = new List<RepairMapMobileDto>(); var requestList = new Yw.Service.RepairRequestForm().GetPendingList(); if (requestList != null && requestList.Count > 0) { foreach (var request in requestList) { var vmRequest = new RepairMapMobileDto(request, Yw.Map.Kind.Gaodei); vmList.Add(vmRequest); } } var taskList = new Yw.Service.RepairTaskForm().GetUnCheckedList(); if (taskList != null && taskList.Count > 0) { foreach (var task in taskList) { var vmTask = new RepairMapMobileDto(task, Yw.Map.Kind.Gaodei); vmList.Add(vmTask); } } return vmList; } /// <summary> /// è·åå·¥åç¶æä¿¡æ¯ /// </summary> [Route("GetRepairStatusInfo@V1.0")] [HttpGet] public RepairMapStatusMobileDto GetRepairStatusInfo ( [Required] string FormType, [Required] long FormID ) { if (FormType == Yw.Repair.DataType.RepairRequestForm) { var request = new Yw.Service.RepairRequestForm().GetByID(FormID); if (request == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"FormID:{FormID} æ°æ®ä¸åå¨"); } return new RepairMapStatusMobileDto(request); } else if (FormType == Yw.Repair.DataType.RepairTaskForm) { var task = new Yw.Service.RepairTaskForm().GetByID(FormID); if (task == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"FormID:{FormID} æ°æ®ä¸åå¨"); } return new RepairMapStatusMobileDto(task); } throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"FormType åæ°é误"); } /// <summary> /// è·åDmaååºå表 /// </summary> [Route("GetDmaAreaList@V1.0")] [HttpGet] public List<DmaAreaMapMobileDto> GetDmaAreaList() { var keyContent = $"SZJT_Map_Mobile_GetDmaAreaList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var allAreaList = new Yw.Service.DmaArea().GetByBelongTypeAndBelongID(IStation.DataType.LogicDma, 1); Yw.Service.DmaArea.PublishCache(cacheKey); if (allAreaList == null || allAreaList.Count < 1) { return default; } var serviceMapInfo = new Yw.Service.MapInfo(); var vm_list = new List<DmaAreaMapMobileDto>(); foreach (var area in allAreaList) { var vm = new DmaAreaMapMobileDto(area); vm_list.Add(vm); var area_map_info = serviceMapInfo.Get(Yw.DMA.DataType.DmaArea, area.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); if (area_map_info != null) { vm.Position = Yw.Model.Map.Polygon.ToModel(area_map_info.Position); } } return vm_list; }, CacheHelper.CacheLevel3); return vm_list; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/1-station/StationMapMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationMapMobileDto { /// <summary> /// /// </summary> public StationMapMobileDto(Model.LogicSite rhs) { this.StationID = rhs.ID; this.Name = rhs.Name; } /// <summary> /// æ³µç«id /// </summary> public long StationID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Marker Position { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/1-station/StationMapMonitorKpiInfoMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class StationMapMonitorKpiInfoMobileDto { /// <summary> /// /// </summary> public StationMapMonitorKpiInfoMobileDto(Model.LogicSite rhs) { this.StationID = rhs.ID; this.Name = rhs.Name; this.LastRecordList = new List<StationMapMonitorKpiLastRecordMobileDto>(); this.LastStatusList = new List<StationMapMonitorKpiLastStatusMobileDto>(); } /// <summary> /// æ³µç«id /// </summary> public long StationID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æåè®°å½å表 /// </summary> public List<StationMapMonitorKpiLastRecordMobileDto> LastRecordList { get; set; } /// <summary> /// æåç¶æå表 /// </summary> public List<StationMapMonitorKpiLastStatusMobileDto> LastStatusList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/1-station/StationMapMonitorKpiLastRecordMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class StationMapMonitorKpiLastRecordMobileDto { /// <summary> /// /// </summary> public StationMapMonitorKpiLastRecordMobileDto(Yw.Model.MonitorPoint_Signal_SignalType monitor, Yw.Model.MonitorRealRecord record) { this.SignalID = monitor.SignalList.First().ID; this.Name = monitor.Name; this.Code = monitor.SignalList.First().SignalType.Code; this.DataTime = record?.DataTime; this.DataValue = monitor.SignalList.First().GetDisplayValue(record?.DataValue); this.UnitName = monitor.SignalList.First().GetDisplayUnitName(); this.DataStatus = record?.DataStatus; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½ /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public List<string> DataStatus { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/1-station/StationMapMonitorKpiLastStatusMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class StationMapMonitorKpiLastStatusMobileDto { /// <summary> /// /// </summary> public StationMapMonitorKpiLastStatusMobileDto(Yw.Model.Equipment equipment, Yw.Model.RunRealRecord record) { this.EquipmentID = equipment.ID; this.Name = equipment.Name; this.DataTime = record?.DataTime; this.RunStatus = record == null ? Yw.Run.RunStatus.Stop : record.RSa; } /// <summary> /// 设å¤id /// </summary> public long EquipmentID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// è¿è¡ç¶æ /// </summary> public int RunStatus { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/2-flow-meter/FlowMeterMapMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class FlowMeterMapMobileDto { /// <summary> /// /// </summary> public FlowMeterMapMobileDto(Yw.Model.Equipment rhs) { this.FlowMeterID = rhs.ID; this.Name = rhs.Name; } /// <summary> /// æµé计id /// </summary> public long FlowMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Marker Position { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/2-flow-meter/FlowMeterMapMonitorKpiInfoMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class FlowMeterMapMonitorKpiInfoMobileDto { /// <summary> /// æµé计id /// </summary> public long FlowMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æåè®°å½å表 /// </summary> public List<FlowMeterMapMonitorKpiLastRecordMobileDto> LastRecordList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/2-flow-meter/FlowMeterMapMonitorKpiLastRecordMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class FlowMeterMapMonitorKpiLastRecordMobileDto { /// <summary> /// /// </summary> public FlowMeterMapMonitorKpiLastRecordMobileDto(Yw.Model.MonitorPoint_Signal_SignalType monitor, Yw.Model.MonitorRealRecord record) { this.SignalID = monitor.SignalList.First().ID; this.Name = monitor.Name; this.Code = monitor.SignalList.First().SignalType.Code; this.DataTime = record?.DataTime; this.DataValue = monitor.SignalList.First().GetDisplayValue(record?.DataValue); this.UnitName = monitor.SignalList.First().GetDisplayUnitName(); this.DataStatus = record?.DataStatus; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½ /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public List<string> DataStatus { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/3-press-meter/PressMeterMapMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class PressMeterMapMobileDto { /// <summary> /// /// </summary> public PressMeterMapMobileDto(Yw.Model.Equipment rhs) { this.PressMeterID = rhs.ID; this.Name = rhs.Name; } /// <summary> /// åå计id /// </summary> public long PressMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Marker Position { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/3-press-meter/PressMeterMapMonitorKpiInfoMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class PressMeterMapMonitorKpiInfoMobileDto { /// <summary> /// åå计id /// </summary> public long PressMeterID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// æåè®°å½å表 /// </summary> public List<PressMeterMapMonitorKpiLastRecordMobileDto> LastRecordList { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/3-press-meter/PressMeterMapMonitorKpiLastRecordMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ namespace IStation.Application { /// <summary> /// /// </summary> public class PressMeterMapMonitorKpiLastRecordMobileDto { /// <summary> /// /// </summary> public PressMeterMapMonitorKpiLastRecordMobileDto(Yw.Model.MonitorPoint_Signal_SignalType monitor, Yw.Model.MonitorRealRecord record) { this.SignalID = monitor.SignalList.First().ID; this.Name = monitor.Name; this.Code = monitor.SignalList.First().SignalType.Code; this.DataTime = record?.DataTime; this.DataValue = monitor.SignalList.First().GetDisplayValue(record?.DataValue); this.UnitName = monitor.SignalList.First().GetDisplayUnitName(); this.DataStatus = record?.DataStatus; } /// <summary> /// ä¿¡å·id /// </summary> public long SignalID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ç¼ç /// </summary> public string Code { get; set; } /// <summary> /// æ°æ®æ¶é´ /// </summary> public DateTime? DataTime { get; set; } /// <summary> /// æ°æ®å¼ /// </summary> public string DataValue { get; set; } /// <summary> /// åä½ /// </summary> public string UnitName { get; set; } /// <summary> /// æ°æ®ç¶æ /// </summary> public List<string> DataStatus { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/4-repair/RepairMapMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,62 @@ namespace Yw.Application { /// <summary> /// /// </summary> public class RepairMapMobileDto { /// <summary> /// /// </summary> public RepairMapMobileDto() { } /// <summary> /// /// </summary> public RepairMapMobileDto(Yw.Model.RepairRequestForm rhs, string kind) { this.FormType = Yw.Repair.DataType.RepairRequestForm; this.FormID = rhs.ID; this.FormName = rhs.FormName; this.Position = rhs.Location?.Find(t => t.Kind == kind)?.Position; } /// <summary> /// /// </summary> public RepairMapMobileDto(Yw.Model.RepairTaskForm rhs, string kind) { this.FormType = Yw.Repair.DataType.RepairTaskForm; this.FormID = rhs.ID; this.FormName = rhs.FormName; this.Position = rhs.Location?.Find(t => t.Kind == kind)?.Position; } /// <summary> /// å·¥åç±»å /// </summary> public string FormType { get; set; } /// <summary> /// å·¥åid /// </summary> public long FormID { get; set; } /// <summary> /// å·¥ååç§° /// </summary> public string FormName { get; set; } /// <summary> /// å°å¾ä½ç½® /// </summary> public Yw.Model.Repair.Marker Position { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/4-repair/RepairMapStatusMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,108 @@ namespace IStation.Application.SZJT { /// <summary> /// /// </summary> public class RepairMapStatusMobileDto { /// <summary> /// /// </summary> public RepairMapStatusMobileDto() { } /// <summary> /// /// </summary> public RepairMapStatusMobileDto(Yw.Model.RepairRequestForm rhs) { this.FormType = Yw.Repair.DataType.RepairRequestForm; this.FormID = rhs.ID; this.FormNo = rhs.FormNo; this.FormName = rhs.FormName; this.FormStatus = (int)rhs.FormStatus; this.Urgency = rhs.Urgency; this.Faq = rhs.Faq; this.Question = rhs.Question; this.CreateUserID = rhs.CreateUserID; this.CreateTime = rhs.CreateTime; this.CreateUserName = rhs.CreateUserName; } /// <summary> /// /// </summary> public RepairMapStatusMobileDto(Yw.Model.RepairTaskForm rhs) { this.FormType = Yw.Repair.DataType.RepairTaskForm; this.FormID = rhs.ID; this.FormNo = rhs.FormNo; this.FormName = rhs.FormName; this.FormStatus = (int)rhs.FormStatus; this.Urgency = rhs.Urgency; this.Faq = rhs.Faq; this.Question = rhs.Question; this.CreateUserID = rhs.CreateUserID; this.CreateTime = rhs.CreateTime; this.CreateUserName = rhs.CreateUserName; } /// <summary> /// å·¥åç±»å /// </summary> public string FormType { get; set; } /// <summary> /// å·¥åid /// </summary> public long FormID { get; set; } /// <summary> /// å·¥åå· /// </summary> public string FormNo { get; set; } /// <summary> /// å·¥ååç§° /// </summary> public string FormName { get; set; } /// <summary> /// å·¥åç¶æ /// </summary> public int FormStatus { get; set; } /// <summary> /// ç´§æ¥ç¨åº¦ /// </summary> public Yw.Repair.eUrgency Urgency { get; set; } /// <summary> /// é®é¢ç¼ç /// </summary> public string Faq { get; set; } /// <summary> /// é®é¢æè¿° /// </summary> public string Question { get; set; } /// <summary> /// å建人id /// </summary> public long CreateUserID { get; set; } /// <summary> /// å建æ¶é´ /// </summary> public DateTime CreateTime { get; set; } /// <summary> /// å建人åç§° /// </summary> public string CreateUserName { get; set; } } } IStation.Application.SZJT/99-logic/10-mobile/05-map/dto/5-dma/DmaMapMobileDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ namespace Yw.Application { /// <summary> /// /// </summary> public class DmaAreaMapMobileDto { /// <summary> /// /// </summary> public DmaAreaMapMobileDto() { } /// <summary> /// /// </summary> public DmaAreaMapMobileDto(Yw.Model.DmaArea rhs) { this.DmaAreaID = rhs.ID; this.Name = rhs.Name; } /// <summary> /// Dmaååºid /// </summary> public long DmaAreaID { get; set; } /// <summary> /// åç§° /// </summary> public string Name { get; set; } /// <summary> /// ä½ç½® /// </summary> public Yw.Model.Map.Polygon Position { get; set; } } } IStation.Application.SZJT/IStation.Application.SZJT.csproj
@@ -31,12 +31,13 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Yw.Application.Core" Version="1.2.9" /> <PackageReference Include="Yw.Application.Core" Version="1.3.0" /> <PackageReference Include="Yw.Service.Assets.Core" Version="1.1.5" /> <PackageReference Include="Yw.Service.DMA.Core" Version="1.0.2" /> <PackageReference Include="Yw.Service.Map.Core" Version="1.0.2" /> <PackageReference Include="Yw.Service.Monitor.Core" Version="1.3.6" /> <PackageReference Include="Yw.Service.Run.Core" Version="1.0.1" /> <PackageReference Include="Yw.Service.DMA.Core" Version="1.0.4" /> <PackageReference Include="Yw.Service.Map.Core" Version="1.0.3" /> <PackageReference Include="Yw.Service.Monitor.Core" Version="1.3.9" /> <PackageReference Include="Yw.Service.Repair.Core" Version="1.0.1" /> <PackageReference Include="Yw.Service.Run.Core" Version="1.0.2" /> </ItemGroup> <ItemGroup> IStation.Entry.SZJT/IStation.Entry.SZJT.csproj
@@ -16,13 +16,13 @@ <PackageReference Include="Yw.Application.ArtImage.Core" Version="1.1.2" /> <PackageReference Include="Yw.Application.Assets.Core" Version="1.2.3" /> <PackageReference Include="Yw.Application.Basic.Core" Version="1.2.0" /> <PackageReference Include="Yw.Application.Bimface.Core" Version="1.0.1" /> <PackageReference Include="Yw.Application.Bimface.Core" Version="1.0.3" /> <PackageReference Include="Yw.Application.Dict.Core" Version="1.1.0" /> <PackageReference Include="Yw.Application.DMA.Core" Version="1.0.2" /> <PackageReference Include="Yw.Application.DMA.Core" Version="1.0.4" /> <PackageReference Include="Yw.Application.DOCS.Core" Version="1.0.1" /> <PackageReference Include="Yw.Application.Map.Core" Version="1.0.3" /> <PackageReference Include="Yw.Application.Monitor.Core" Version="1.5.7" /> <PackageReference Include="Yw.Application.Repair.Core" Version="1.0.1" /> <PackageReference Include="Yw.Application.Map.Core" Version="1.0.4" /> <PackageReference Include="Yw.Application.Monitor.Core" Version="1.6.0" /> <PackageReference Include="Yw.Application.Repair.Core" Version="1.0.2" /> <PackageReference Include="Yw.Application.Unit.Core" Version="1.1.1" /> </ItemGroup> IStation.Entry.SZJT/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,6 +5,6 @@ <Project> <PropertyGroup> <_PublishTargetUrl>D:\WorkData\git\istation\szjt\IStation.Entry.SZJT\bin\Release\net6.0\publish\</_PublishTargetUrl> <History>True|2023-12-14T06:17:07.2707485Z;True|2023-12-14T11:49:15.9699053+08:00;False|2023-12-14T11:48:41.4121185+08:00;True|2023-12-13T17:28:38.2180193+08:00;True|2023-12-13T14:47:22.2493536+08:00;True|2023-12-13T14:31:45.6098784+08:00;True|2023-12-13T14:05:08.5014675+08:00;True|2023-12-13T14:01:37.7165974+08:00;True|2023-12-13T13:50:57.4832531+08:00;True|2023-12-13T13:20:55.2902900+08:00;True|2023-12-13T12:01:09.6397101+08:00;True|2023-12-13T11:53:51.3171154+08:00;True|2023-12-13T11:18:29.2505125+08:00;True|2023-12-13T09:48:22.2436154+08:00;True|2023-12-12T11:49:25.2723311+08:00;True|2023-12-11T14:05:58.1086840+08:00;True|2023-12-11T09:31:35.0365077+08:00;True|2023-12-05T18:00:29.7005601+08:00;True|2023-12-05T17:35:46.7846869+08:00;True|2023-12-05T17:29:36.5936716+08:00;True|2023-12-04T19:50:38.7216121+08:00;True|2023-12-02T14:06:28.8643257+08:00;True|2023-11-30T16:54:56.0879009+08:00;True|2023-11-30T15:49:27.5213126+08:00;True|2023-11-30T13:42:14.9061099+08:00;False|2023-11-30T13:41:50.2796105+08:00;False|2023-11-30T13:41:42.4700953+08:00;True|2023-11-30T10:23:50.6226599+08:00;True|2023-11-30T09:22:54.2133326+08:00;True|2023-11-29T16:32:53.3651373+08:00;True|2023-11-29T09:19:39.1127566+08:00;True|2023-11-28T17:25:14.9642204+08:00;True|2023-11-28T16:53:30.7550754+08:00;True|2023-11-28T09:57:02.3264015+08:00;True|2023-11-27T14:26:33.6153027+08:00;True|2023-11-27T13:33:46.1964012+08:00;True|2023-11-27T13:21:38.2133314+08:00;True|2023-11-24T14:12:06.2053905+08:00;True|2023-11-23T15:38:30.0872291+08:00;True|2023-11-15T19:27:36.4861114+08:00;True|2023-11-15T14:16:33.6004541+08:00;True|2023-11-15T14:02:06.1224051+08:00;True|2023-11-15T09:35:35.1770813+08:00;True|2023-11-10T14:06:46.1528992+08:00;True|2023-11-08T14:07:13.3792249+08:00;True|2023-11-08T13:58:21.2455396+08:00;True|2023-11-08T13:34:05.8131818+08:00;True|2023-11-08T11:58:01.9187650+08:00;True|2023-11-07T14:11:15.6278203+08:00;True|2023-11-07T14:05:43.3330586+08:00;True|2023-10-27T08:30:17.2959726+08:00;True|2023-10-27T08:23:59.8360129+08:00;True|2023-10-25T20:36:54.7517897+08:00;True|2023-10-24T23:27:01.1980187+08:00;True|2023-10-24T22:57:21.3872591+08:00;True|2023-10-17T09:26:15.4157626+08:00;True|2023-10-16T16:44:05.1411215+08:00;True|2023-10-10T14:24:00.3649304+08:00;True|2023-10-10T14:12:16.4050462+08:00;True|2023-10-10T13:43:17.4397783+08:00;True|2023-10-08T16:16:16.4721892+08:00;True|2023-10-08T14:27:40.6092129+08:00;True|2023-10-08T13:36:44.2969175+08:00;True|2023-10-08T13:21:21.1105671+08:00;True|2023-10-08T11:41:25.6876188+08:00;True|2023-10-08T09:39:46.1146411+08:00;True|2023-09-26T14:26:57.6168193+08:00;True|2023-09-21T13:54:19.1780900+08:00;True|2023-09-21T13:16:00.2957740+08:00;True|2023-09-21T11:28:36.3091944+08:00;True|2023-09-21T11:18:20.1060798+08:00;True|2023-09-13T16:00:49.4080881+08:00;True|2023-09-11T13:53:38.8582724+08:00;True|2023-09-01T10:32:37.4923361+08:00;True|2023-08-30T16:52:43.1952609+08:00;True|2023-08-30T13:41:35.0430741+08:00;True|2023-08-28T14:53:24.2454140+08:00;True|2023-08-28T13:50:55.9362462+08:00;True|2023-08-28T10:00:17.0366755+08:00;True|2023-08-25T15:41:23.8727088+08:00;True|2023-08-24T16:47:54.1391198+08:00;True|2023-08-24T16:40:29.0473991+08:00;True|2023-08-22T15:02:27.5312918+08:00;True|2023-08-22T11:18:43.6918732+08:00;True|2023-08-21T15:10:42.9223597+08:00;True|2023-08-21T14:21:08.1887373+08:00;True|2023-08-21T11:56:07.5304445+08:00;True|2023-08-18T16:57:57.0506312+08:00;True|2023-08-18T13:51:54.9145260+08:00;True|2023-08-17T14:52:44.6557301+08:00;True|2023-08-17T14:15:19.8255432+08:00;True|2023-08-17T14:03:01.1586247+08:00;True|2023-08-17T11:46:51.6685579+08:00;True|2023-08-16T11:12:27.1684542+08:00;True|2023-08-15T16:59:09.4901359+08:00;True|2023-08-10T14:08:04.8032876+08:00;True|2023-08-10T13:55:01.9698355+08:00;True|2023-08-10T10:43:44.0440039+08:00;True|2023-08-10T10:12:03.9359243+08:00;True|2023-08-09T15:07:46.6906781+08:00;True|2023-08-09T13:12:06.7912004+08:00;True|2023-08-09T10:23:24.5864225+08:00;True|2023-08-08T17:38:10.4753030+08:00;True|2023-08-08T12:56:08.9783211+08:00;True|2023-08-06T09:18:33.3703637+08:00;True|2023-08-03T11:01:58.9814864+08:00;True|2023-08-03T10:26:08.4681748+08:00;True|2023-08-02T20:33:35.0425049+08:00;True|2023-08-02T17:31:18.4675932+08:00;True|2023-08-02T16:04:16.8761862+08:00;True|2023-08-02T13:48:38.9129192+08:00;True|2023-08-02T13:45:00.6546267+08:00;True|2023-08-01T15:26:25.0389689+08:00;True|2023-08-01T14:08:10.9121758+08:00;True|2023-07-31T13:35:10.1220213+08:00;True|2023-07-31T09:20:11.2607880+08:00;True|2023-07-28T13:44:35.4317136+08:00;True|2023-07-27T10:40:46.5453757+08:00;True|2023-07-27T09:16:57.7421426+08:00;True|2023-07-26T17:10:56.0976913+08:00;True|2023-07-26T12:01:33.5766311+08:00;True|2023-07-25T18:07:38.5726960+08:00;True|2023-07-25T17:42:39.3625959+08:00;True|2023-07-25T17:04:09.8723273+08:00;True|2023-07-25T16:28:14.1819137+08:00;True|2023-07-24T14:11:28.2113907+08:00;True|2023-07-24T12:05:09.0376032+08:00;True|2023-07-24T09:36:39.6541522+08:00;True|2023-07-19T12:25:56.9887829+08:00;True|2023-07-17T13:00:04.0123733+08:00;True|2023-07-13T12:13:14.7927242+08:00;True|2023-07-13T11:46:24.1368807+08:00;True|2023-07-13T10:24:33.1684712+08:00;True|2023-06-26T11:38:29.6648988+08:00;True|2023-06-21T16:17:40.6226554+08:00;True|2023-06-21T13:30:18.8163322+08:00;True|2023-06-21T13:19:43.9290154+08:00;True|2023-06-21T11:35:28.3376504+08:00;</History> <History>True|2023-12-26T02:49:59.5124896Z;True|2023-12-26T10:10:53.5396234+08:00;True|2023-12-25T15:30:59.3409132+08:00;True|2023-12-25T15:26:43.1943347+08:00;True|2023-12-25T10:08:29.7964560+08:00;True|2023-12-21T10:30:55.0589855+08:00;True|2023-12-19T21:25:45.9098277+08:00;True|2023-12-16T12:52:46.7024463+08:00;True|2023-12-14T16:16:02.6188884+08:00;True|2023-12-14T16:03:53.1458158+08:00;True|2023-12-14T15:59:33.3947428+08:00;True|2023-12-14T15:53:09.8869780+08:00;True|2023-12-14T14:17:07.2707485+08:00;True|2023-12-14T11:49:15.9699053+08:00;False|2023-12-14T11:48:41.4121185+08:00;True|2023-12-13T17:28:38.2180193+08:00;True|2023-12-13T14:47:22.2493536+08:00;True|2023-12-13T14:31:45.6098784+08:00;True|2023-12-13T14:05:08.5014675+08:00;True|2023-12-13T14:01:37.7165974+08:00;True|2023-12-13T13:50:57.4832531+08:00;True|2023-12-13T13:20:55.2902900+08:00;True|2023-12-13T12:01:09.6397101+08:00;True|2023-12-13T11:53:51.3171154+08:00;True|2023-12-13T11:18:29.2505125+08:00;True|2023-12-13T09:48:22.2436154+08:00;True|2023-12-12T11:49:25.2723311+08:00;True|2023-12-11T14:05:58.1086840+08:00;True|2023-12-11T09:31:35.0365077+08:00;True|2023-12-05T18:00:29.7005601+08:00;True|2023-12-05T17:35:46.7846869+08:00;True|2023-12-05T17:29:36.5936716+08:00;True|2023-12-04T19:50:38.7216121+08:00;True|2023-12-02T14:06:28.8643257+08:00;True|2023-11-30T16:54:56.0879009+08:00;True|2023-11-30T15:49:27.5213126+08:00;True|2023-11-30T13:42:14.9061099+08:00;False|2023-11-30T13:41:50.2796105+08:00;False|2023-11-30T13:41:42.4700953+08:00;True|2023-11-30T10:23:50.6226599+08:00;True|2023-11-30T09:22:54.2133326+08:00;True|2023-11-29T16:32:53.3651373+08:00;True|2023-11-29T09:19:39.1127566+08:00;True|2023-11-28T17:25:14.9642204+08:00;True|2023-11-28T16:53:30.7550754+08:00;True|2023-11-28T09:57:02.3264015+08:00;True|2023-11-27T14:26:33.6153027+08:00;True|2023-11-27T13:33:46.1964012+08:00;True|2023-11-27T13:21:38.2133314+08:00;True|2023-11-24T14:12:06.2053905+08:00;True|2023-11-23T15:38:30.0872291+08:00;True|2023-11-15T19:27:36.4861114+08:00;True|2023-11-15T14:16:33.6004541+08:00;True|2023-11-15T14:02:06.1224051+08:00;True|2023-11-15T09:35:35.1770813+08:00;True|2023-11-10T14:06:46.1528992+08:00;True|2023-11-08T14:07:13.3792249+08:00;True|2023-11-08T13:58:21.2455396+08:00;True|2023-11-08T13:34:05.8131818+08:00;True|2023-11-08T11:58:01.9187650+08:00;True|2023-11-07T14:11:15.6278203+08:00;True|2023-11-07T14:05:43.3330586+08:00;True|2023-10-27T08:30:17.2959726+08:00;True|2023-10-27T08:23:59.8360129+08:00;True|2023-10-25T20:36:54.7517897+08:00;True|2023-10-24T23:27:01.1980187+08:00;True|2023-10-24T22:57:21.3872591+08:00;True|2023-10-17T09:26:15.4157626+08:00;True|2023-10-16T16:44:05.1411215+08:00;True|2023-10-10T14:24:00.3649304+08:00;True|2023-10-10T14:12:16.4050462+08:00;True|2023-10-10T13:43:17.4397783+08:00;True|2023-10-08T16:16:16.4721892+08:00;True|2023-10-08T14:27:40.6092129+08:00;True|2023-10-08T13:36:44.2969175+08:00;True|2023-10-08T13:21:21.1105671+08:00;True|2023-10-08T11:41:25.6876188+08:00;True|2023-10-08T09:39:46.1146411+08:00;True|2023-09-26T14:26:57.6168193+08:00;True|2023-09-21T13:54:19.1780900+08:00;True|2023-09-21T13:16:00.2957740+08:00;True|2023-09-21T11:28:36.3091944+08:00;True|2023-09-21T11:18:20.1060798+08:00;True|2023-09-13T16:00:49.4080881+08:00;True|2023-09-11T13:53:38.8582724+08:00;True|2023-09-01T10:32:37.4923361+08:00;True|2023-08-30T16:52:43.1952609+08:00;True|2023-08-30T13:41:35.0430741+08:00;True|2023-08-28T14:53:24.2454140+08:00;True|2023-08-28T13:50:55.9362462+08:00;True|2023-08-28T10:00:17.0366755+08:00;True|2023-08-25T15:41:23.8727088+08:00;True|2023-08-24T16:47:54.1391198+08:00;True|2023-08-24T16:40:29.0473991+08:00;True|2023-08-22T15:02:27.5312918+08:00;True|2023-08-22T11:18:43.6918732+08:00;True|2023-08-21T15:10:42.9223597+08:00;True|2023-08-21T14:21:08.1887373+08:00;True|2023-08-21T11:56:07.5304445+08:00;True|2023-08-18T16:57:57.0506312+08:00;True|2023-08-18T13:51:54.9145260+08:00;True|2023-08-17T14:52:44.6557301+08:00;True|2023-08-17T14:15:19.8255432+08:00;True|2023-08-17T14:03:01.1586247+08:00;True|2023-08-17T11:46:51.6685579+08:00;True|2023-08-16T11:12:27.1684542+08:00;True|2023-08-15T16:59:09.4901359+08:00;True|2023-08-10T14:08:04.8032876+08:00;True|2023-08-10T13:55:01.9698355+08:00;True|2023-08-10T10:43:44.0440039+08:00;True|2023-08-10T10:12:03.9359243+08:00;True|2023-08-09T15:07:46.6906781+08:00;True|2023-08-09T13:12:06.7912004+08:00;True|2023-08-09T10:23:24.5864225+08:00;True|2023-08-08T17:38:10.4753030+08:00;True|2023-08-08T12:56:08.9783211+08:00;True|2023-08-06T09:18:33.3703637+08:00;True|2023-08-03T11:01:58.9814864+08:00;True|2023-08-03T10:26:08.4681748+08:00;True|2023-08-02T20:33:35.0425049+08:00;True|2023-08-02T17:31:18.4675932+08:00;True|2023-08-02T16:04:16.8761862+08:00;True|2023-08-02T13:48:38.9129192+08:00;True|2023-08-02T13:45:00.6546267+08:00;True|2023-08-01T15:26:25.0389689+08:00;True|2023-08-01T14:08:10.9121758+08:00;True|2023-07-31T13:35:10.1220213+08:00;True|2023-07-31T09:20:11.2607880+08:00;True|2023-07-28T13:44:35.4317136+08:00;True|2023-07-27T10:40:46.5453757+08:00;True|2023-07-27T09:16:57.7421426+08:00;True|2023-07-26T17:10:56.0976913+08:00;True|2023-07-26T12:01:33.5766311+08:00;True|2023-07-25T18:07:38.5726960+08:00;True|2023-07-25T17:42:39.3625959+08:00;True|2023-07-25T17:04:09.8723273+08:00;True|2023-07-25T16:28:14.1819137+08:00;True|2023-07-24T14:11:28.2113907+08:00;True|2023-07-24T12:05:09.0376032+08:00;True|2023-07-24T09:36:39.6541522+08:00;True|2023-07-19T12:25:56.9887829+08:00;True|2023-07-17T13:00:04.0123733+08:00;True|2023-07-13T12:13:14.7927242+08:00;True|2023-07-13T11:46:24.1368807+08:00;True|2023-07-13T10:24:33.1684712+08:00;True|2023-06-26T11:38:29.6648988+08:00;True|2023-06-21T16:17:40.6226554+08:00;True|2023-06-21T13:30:18.8163322+08:00;True|2023-06-21T13:19:43.9290154+08:00;True|2023-06-21T11:35:28.3376504+08:00;</History> </PropertyGroup> </Project> IStation.Entry.SZJT/appsettings.json
@@ -12,7 +12,8 @@ "Yw.Application.ArtImage.Core", "Yw.Application.Bimface.Core", "Yw.Application.Map.Core", "Yw.Application.DOCS.Core" "Yw.Application.DOCS.Core", "Yw.Application.DMA.Core" ] // é ç½®éè¿ NuGet æ¹å¼å®è£ çæ¨¡ååå }, "Logging": { @@ -32,6 +33,7 @@ "paras_sqlsugar_settings.json", "paras_service_settings.json", "paras_map_settings.json", "paras_bimface_settings.json" "paras_bimface_settings.json", "paras_dma_settings.json" ] } IStation.Server.SZJT/1-equipment-run-analy/2-single/EquipmentRunAnalyChangeTimesHelper.cs
@@ -1,21 +1,20 @@ namespace IStation.Server  namespace IStation.Server { /// <summary> /// /// </summary> public class EquipmentRunAnalyChangeTimesHelper { private static Dictionary<long, List<Yw.Model.MonitorRealRecord>> _dict = new Dictionary<long, List<Yw.Model.MonitorRealRecord>>();//ç¼å private static ConcurrentDictionary<long, List<Yw.Model.MonitorRealRecord>> _dict = new();//ç¼å /// <summary> /// 设置 /// </summary> public static void Set(long configureId, int changeTimes, Yw.Model.MonitorRealRecord record) { if (!_dict.ContainsKey(configureId)) { _dict.Add(configureId, new List<Yw.Model.MonitorRealRecord>()); } _dict.TryAdd(configureId, new List<Yw.Model.MonitorRealRecord>()); if (_dict[configureId].Count >= changeTimes) { _dict[configureId].RemoveAt(0); @@ -49,5 +48,10 @@ } } IStation.Server.SZJT/GlobalUsings.cs
@@ -6,4 +6,5 @@ global using System.Globalization; global using System.Collections; global using Quartz; global using Yw; global using Yw; global using System.Collections.Concurrent; IStation.Server.SZJT/IStation.Server.SZJT.csproj
@@ -10,13 +10,25 @@ <ItemGroup> <PackageReference Include="Yw.Log4Net.Core" Version="1.0.0" /> <PackageReference Include="Yw.Quartz.Core" Version="1.0.0" /> <PackageReference Include="Yw.Service.Assets.Core" Version="1.1.4" /> <PackageReference Include="Yw.Service.Monitor.Core" Version="1.3.6" /> <PackageReference Include="Yw.Service.Run.Core" Version="1.0.1" /> <PackageReference Include="Yw.Service.Assets.Core" Version="1.1.5" /> <PackageReference Include="Yw.Service.Monitor.Core" Version="1.3.9" /> <PackageReference Include="Yw.Service.Run.Core" Version="1.0.2" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\IStation.Service.SZJT\IStation.Service.SZJT.csproj" /> </ItemGroup> <ItemGroup> <Content Update="C:\Users\admin\.nuget\packages\yw.service.assets.core\1.1.5\contentFiles\any\net6.0\paras_assets_settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Update="C:\Users\admin\.nuget\packages\yw.service.monitor.core\1.3.9\contentFiles\any\net6.0\paras_monitor_settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Update="C:\Users\admin\.nuget\packages\yw.service.run.core\1.0.2\contentFiles\any\net6.0\paras_run_settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> </Project> IStation.Service.SZJT/0-core/Catalog.cs
@@ -14,5 +14,15 @@ /// åå计 /// </summary> public const string PressMeter = "press-meter"; /// <summary> /// åç表 /// </summary> public const string PowerMeter = "power-meter"; /// <summary> /// 水质仪 /// </summary> public const string WaterQualityMeter = "water-quality-meter"; } } IStation.Service.SZJT/0-core/DataType.cs
@@ -25,6 +25,11 @@ /// </summary> public const string LogicTree = "logic-tree"; /// <summary> /// ä¸å¡dma /// </summary> public const string LogicDma = "logic-dma"; } } IStation.Service.SZJT/0-core/Flags.cs
@@ -14,5 +14,10 @@ /// /// </summary> public const string KPI = "KPI"; /// <summary> /// /// </summary> public const string æºç» = "æºç»"; } } IStation.Service.SZJT/IStation.Service.SZJT.csproj
@@ -38,7 +38,7 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Yw.Service.Basic.Core" Version="1.1.9" /> <PackageReference Include="Yw.Service.Basic.Core" Version="1.2.0" /> </ItemGroup> </Project> IStation.TopShelf.SZJT/IStation.TopShelf.SZJT.csproj.user
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <_LastSelectedProfileId>D:\WorkData\git\istation\szjt\IStation.TopShelf.SZJT\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId> </PropertyGroup> </Project> IStation.TopShelf.SZJT/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,6 +4,6 @@ --> <Project> <PropertyGroup> <History>True|2023-11-29T07:11:51.9151157Z;True|2023-11-29T14:58:05.0127775+08:00;</History> <History>True|2023-12-26T02:39:19.5076776Z;True|2023-12-15T09:43:55.2219318+08:00;True|2023-11-29T15:11:51.9151157+08:00;True|2023-11-29T14:58:05.0127775+08:00;</History> </PropertyGroup> </Project>