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;
|
}, Yw.Service.ConfigHelper.CacheLevel1);
|
return vm_list;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
}
|