namespace Yw.Application
{
///
/// HealthMultiEvaluationModelBinding
///
[Route("Health/Multi/Evaluation/Model/Binding")]
[ApiDescriptionSettings("Health", Name = "综合评价模型绑定", Order = 7700)]
public class HealthMultiEvaluationModelBinding_Controller : IDynamicApiController
{
private readonly Service.HealthMultiEvaluationModelBinding _service = new();
///
/// 通过 ModelID 获取有效绑定
///
[Route("GetValidByModelID@V1.0")]
[HttpGet]
public List GetValidByModelID([FromQuery][Required] ModelIDInput input)
{
var list = _service.GetValidByModelID(input.ModelID);
var vm_list = list?.Select(x => new HealthMultiEvaluationModelBindingDto(x)).ToList();
return vm_list;
}
///
/// 通过 ModelIds 获取有效绑定
///
[Route("GetValidByModelIds@V1.0")]
[HttpGet]
public List GetValidByModelIds([FromQuery][Required] ModelIdsInput input)
{
var ids = LongListHelper.ToList(input.ModelIds);
var list = _service.GetValidByModelIds(ids);
var vm_list = list?.Select(x => new HealthMultiEvaluationModelBindingDto(x)).ToList();
return vm_list;
}
///
/// 通过 EquipmentID 获取有效绑定
///
[Route("GetValidByEquipmentID@V1.0")]
[HttpGet]
public HealthMultiEvaluationModelBindingDto GetValidByEquipmentID([FromQuery][Required] EquipmentIDInput input)
{
var model = _service.GetValidByEquipmentID(input.EquipmentID);
if (model == null)
return default;
return new HealthMultiEvaluationModelBindingDto(model);
}
///
/// 通过 EquipmentIds 获取有效绑定
///
[Route("GetValidByEquipmentIds@V1.0")]
[HttpGet]
public List GetValidByEquipmentIds([FromQuery][Required] EquipmentIdsInput input)
{
var ids = LongListHelper.ToList(input.EquipmentIds);
var list = _service.GetValidByEquipmentIds(ids);
var vm_list = list?.Select(x => new HealthMultiEvaluationModelBindingDto(x)).ToList();
return vm_list;
}
///
/// 绑定
///
[Route("Binding@V1.0")]
[HttpPost]
public bool Binding([Required] BindingHealthMultiEvaluationModelInput input)
{
var model = new Service.HealthMultiEvaluationModel().GetByID(input.ModelID);
if (model == null)
{
throw Oops.Oh(ErrorCodes.D001, $"ModelID:{input.ModelID}");
}
if (_service.IsExistValidBindingByEquipmentID(input.EquipmentID))
{
throw Oops.Oh(ErrorCodes.V001, $"设备id:{input.EquipmentID}", "已绑定,请解除绑定后重试!");
}
var rhs = new Model.HealthMultiEvaluationModelBinding()
{
ModelID = input.ModelID,
EquipmentID = input.EquipmentID,
CronType = input.CronType,
CronParas = input.CronParas,
BindingTime = DateTime.Now
};
return _service.Insert(rhs) > 0;
}
///
/// 解绑
///
[Route("UnBinding@V1.0")]
[HttpPost]
public bool UnBinding([Required] UnBindingHealthMultiEvaluationModelInput input)
{
var binding = _service.GetValidByEquipmentID(input.EquipmentID);
if (binding == null)
{
throw Oops.Oh(ErrorCodes.V001, $"设备id:{input.EquipmentID}", "未绑定,无法解绑!");
}
var rhs = new Model.HealthMultiEvaluationModelBinding(binding)
{
UnBindingTime = DateTime.Now
};
return _service.Update(rhs);
}
}
}