perf: 完善规则的校验和查询

dev
huangfeng 1 year ago
parent 9e21b2bf9e
commit 5f1e1c3ac6

@ -9,6 +9,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
@ -25,24 +27,37 @@ public class WarnRule {
@Column(name = "id")
private Integer id;
@ApiModelProperty("装置ID")
@Column(name = "eqmid")
private String eqmid;
@NotNull(message = "监测装置ID不能为空")
@ApiModelProperty("监测装置ID")
@Column(name = "sensor_id")
private Integer sensorId;
@ApiModelProperty("属性点")
@NotNull(message = "监测装置属性点Id不能为空")
@ApiModelProperty("监测装置属性点Id")
@Column(name = "modevtype_point_id")
private Integer modevtypePointId;
@NotBlank(message = "阈值")
@ApiModelProperty("阈值")
@Column(name = "threshold")
private String threshold;
@NotBlank(message = "比较器")
@ApiModelProperty("比较器")
@Column(name = "comparator")
private String comparator;
@NotNull(message = "告警级别不能为空")
@ApiModelProperty("告警级别 0:高 1:中 2:低")
@Column(name = "level")
private Integer level;
@ApiModelProperty("最后数据采集时间")
@Column(name = "last_d_time")
private String lastDTime;
@Transient
private NSensor nSensor;
@Transient
private ModevTypePoint typePoint;
}

@ -1,6 +1,11 @@
package com.xydl.cac.service.impl;
import com.xydl.cac.entity.ModevTypePoint;
import com.xydl.cac.entity.NSensor;
import com.xydl.cac.entity.WarnRule;
import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.repository.ModevTypePointRepository;
import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.repository.WarnRuleRepository;
import com.xydl.cac.service.WarnRuleService;
import lombok.extern.slf4j.Slf4j;
@ -9,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
@Service
@Slf4j
@ -17,21 +23,54 @@ public class WarnRuleServiceImpl implements WarnRuleService {
@Resource
WarnRuleRepository repository;
@Resource
NSensorRepository sensorRepository;
@Resource
ModevTypePointRepository typePointRepository;
@Override
public List<WarnRule> listAll() {
return repository.findAll();
List<WarnRule> list = repository.findAll();
for (WarnRule item : list) {
Optional<NSensor> optionalNSensor = sensorRepository.findById(item.getSensorId());
if (optionalNSensor.isPresent()) {
item.setNSensor(optionalNSensor.get());
}
Optional<ModevTypePoint> optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId());
if (optionalModevTypePoint.isPresent()) {
item.setTypePoint(optionalModevTypePoint.get());
}
}
return list;
}
@Override
public WarnRule add(WarnRule item) throws Exception {
item.setId(null);
Optional<NSensor> optionalNSensor = sensorRepository.findById(item.getSensorId());
if (!optionalNSensor.isPresent()) {
throw new BusinessException("未找到该装置" + item.getSensorId());
}
NSensor sensor = optionalNSensor.get();
Optional<ModevTypePoint> optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId());
if (!optionalModevTypePoint.isPresent()) {
throw new BusinessException("未找到该监测装置属性点" + item.getModevtypePointId());
}
ModevTypePoint typePoint = optionalModevTypePoint.get();
return repository.save(item);
}
@Override
public void update(WarnRule item) throws Exception {
repository.save(item);
Optional<WarnRule> optional = repository.findById(item.getId());
if (!optional.isPresent()) {
throw new BusinessException("未找到该告警规则");
}
WarnRule rule = optional.get();
rule.setComparator(item.getComparator());
rule.setThreshold(item.getThreshold());
rule.setLevel(item.getLevel());
repository.save(rule);
}
@Override

Loading…
Cancel
Save