namespace IStation.Application { /// /// StationAssets /// [Route("SZJT/Station/Assets/Mobile")] [ApiDescriptionSettings("SZJT", Name = "泵站资产(手机)", Order = 1400)] public class StationAssets_MobileController : IDynamicApiController { /// /// 获取机组列表 /// [Route("GetEnginePumpList@V1.0")] [HttpGet] public List GetEnginePumpList([FromQuery][Required] StationIDInput input) { var keyContent = $"SZJT_Station_Assets_Mobile_GetEnginePumpList_{input.StationID}"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var allEquipmentList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID); Yw.Service.Equipment.PublishCache(cacheKey); allEquipmentList = allEquipmentList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList(); allEquipmentList = allEquipmentList?.Where(x => x.Flags.Contains(IStation.Flags.机组)).ToList(); if (allEquipmentList == null || allEquipmentList.Count < 1) { return default; } var vmList = new List(); foreach (var equipment in allEquipmentList) { var vm = new StationEnginePumpMobileDto(equipment); vmList.Add(vm); } return vmList; }, CacheHelper.CacheLevel3); if (vm_list != null && vm_list.Count > 0) { var service_run = new Yw.Service.RunRealRecord(); foreach (var vm in vm_list) { var record = service_run.GetLastRecord(Yw.Assets.DataType.Equipment, vm.ID); if (record != null) { vm.RunStatus = record.RSa; } } } return vm_list; } /// /// 获取机组详细 /// [Route("GetEnginePumpDetail@V1.0")] [HttpGet] public StationEnginePumpDetailMobileDto GetEnginePumpDetail([FromQuery][Required] IDInput input) { var service_equipment = new Yw.Service.Equipment(); var equipment = service_equipment.GetByID(input.ID); if (equipment == null) { throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在"); } var supplier = new Yw.Service.Supplier().GetByID(equipment.SupplierID); var vm = new StationEnginePumpDetailMobileDto(equipment, supplier); var equipmentList = service_equipment.GetChildAndSelfByID(equipment.ID); var equipmentIds = equipmentList.Select(x => x.ID).Distinct().ToList(); var mappingList = new Yw.Service.EquipmentMonitorMapping().GetByEquipmentIds(equipmentIds); 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) { vm.LastRecordList = new List(); var service_monitor_record = new Yw.Service.MonitorRealRecord(); foreach (var monitor in monitorList) { var signal = monitor.SignalList.First(); var record = service_monitor_record.GetLastRecord(signal.ID); vm.LastRecordList.Add(new StationEnginePumpDetailLastRecordMobileDto(monitor, record)); } } } return vm; } } }