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); } } }