/// <summary> /// 添加分控上的灯具基本信息 /// </summary> /// <param name="cache">当前操作用户的缓存信息</param> /// <param name="datas">待添加的灯具</param> /// <returns></returns> public OperationResult AddSubReadTimeDatas(CacheUser cache, params SubRealTimeDataInputDto[] datas) => SubRealTimeDataRepository.Insert(datas, checkAction: dto => { if (!dto.DimmingPort.IsBetween(1, 2)) { throw new Exception("id:灯具端口在1-2之间"); } else if (SubRealTimeDataRepository.CheckExists(m => m.SubControl_Id == dto.SubControl_Id && m.DimmingPort == dto.DimmingPort)) { throw new Exception($"Id:该分控上已经存在端口{dto.DimmingPort}的灯具!"); } }, updateFunc: (dto, entity) => { entity.CreatedTime = DateTime.Now; entity.UpdateTime = DateTime.Now; return(entity); });
/// <summary> /// 删除分控上的灯具基本信息 /// </summary> /// <param name="cache">当前操作用户的缓存</param> /// <param name="datas">待删除的数据Id集合</param> /// <returns></returns> public OperationResult DeleteReadTimeDatas(CacheUser cache, params Guid[] Ids) { try { int count = 0; SubRealTimeDataRepository.UnitOfWork.BeginTransaction(); foreach (var id in Ids) { count += SubRealTimeDataRepository.DeleteDirect(id); } SubRealTimeDataRepository.UnitOfWork.Commit(); return(count > 0 ? new OperationResult(OperationResultType.Success, $"成功删除{count}条数据") : new OperationResult()); } catch (Exception ex) { throw new Exception($"id:出现错误:{ex.Message}"); } }
/// <summary> /// 更新分控的实时数据 /// </summary> /// <param name="data_0X16_In">待更新的数据</param> /// <returns></returns> public string UpdateSubReadTimeData_0x16(params SubRealTimeData_0x16_In[] data_0X16_In) { try { int count = 0; SubRealTimeDataRepository.UnitOfWork.BeginTransaction(); foreach (var dto in data_0X16_In) { var value = SubRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.SubControlOne.SubNum == dto.SubNum && m.SubControlOne.LigthPoleOne.HostOne.RegPackage == dto.RegPackage && m.DimmingPort == dto.DimmingPort); if (value != null) { Guid Id = value.Id; var result = dto.MapTo(value); result.Id = Id; count += SubRealTimeDataRepository.Update(value); #region 获取更新能耗信息 if (dto.EnergyConsumption > 0) { AddEnergyConsumption(value.SubControl_Id, value.SubControlOne.LigthPoleOne.HostOne.Organize_Id, dto.EnergyConsumption); } #endregion } } SubRealTimeDataRepository.UnitOfWork.Commit(); return(count > 0 ? $"分控实时数据更新影响数据{count}条" : $"提交的分控实时数据更新未发生任何改变"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// 编辑分控上的灯具基本信息 /// </summary> /// <param name="cache">当前操作用户的缓存信息</param> /// <param name="datas">待添加的灯具</param> /// <returns></returns> public OperationResult EditSubReadTimeDatas(CacheUser cache, params SubRealTimeDataInputDto[] datas) => SubRealTimeDataRepository.Update(datas, checkAction: (dto, entity) => {}, updateFunc: (dto, entity) => { return(entity); });