namespace IStation.Application
|
{
|
/// <summary>
|
/// StationAssets
|
/// </summary>
|
[Route("SZJT/Station/Assets/Mobile")]
|
[ApiDescriptionSettings("SZJT", Name = "泵站资产(手机)", Order = 1400)]
|
public class StationAssets_MobileController : IDynamicApiController
|
{
|
|
/// <summary>
|
/// 获取机组列表
|
/// </summary>
|
[Route("GetEnginePumpList@V1.0")]
|
[HttpGet]
|
public List<StationEnginePumpMobileDto> 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<StationEnginePumpMobileDto>();
|
foreach (var equipment in allEquipmentList)
|
{
|
var vm = new StationEnginePumpMobileDto(equipment);
|
vmList.Add(vm);
|
}
|
return vmList;
|
}, Yw.Service.ConfigHelper.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;
|
}
|
|
/// <summary>
|
/// 获取机组详细
|
/// </summary>
|
[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, InternalErrorCodes.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<StationEnginePumpDetailLastRecordMobileDto>();
|
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;
|
|
}
|
|
|
|
}
|
}
|