From 5f1e1c3ac66cbd1194a9b92b6c1c0b797cde05c1 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Thu, 9 May 2024 09:38:25 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=AE=8C=E5=96=84=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=9A=84=E6=A0=A1=E9=AA=8C=E5=92=8C=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xydl/cac/entity/WarnRule.java | 23 ++++++++-- .../cac/service/impl/WarnRuleServiceImpl.java | 43 ++++++++++++++++++- 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xydl/cac/entity/WarnRule.java b/src/main/java/com/xydl/cac/entity/WarnRule.java index d9691cc..d0af0d4 100644 --- a/src/main/java/com/xydl/cac/entity/WarnRule.java +++ b/src/main/java/com/xydl/cac/entity/WarnRule.java @@ -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; } \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java index bf9c1aa..d541bdf 100644 --- a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java @@ -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 listAll() { - return repository.findAll(); + List list = repository.findAll(); + for (WarnRule item : list) { + Optional optionalNSensor = sensorRepository.findById(item.getSensorId()); + if (optionalNSensor.isPresent()) { + item.setNSensor(optionalNSensor.get()); + } + Optional 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 optionalNSensor = sensorRepository.findById(item.getSensorId()); + if (!optionalNSensor.isPresent()) { + throw new BusinessException("未找到该装置" + item.getSensorId()); + } + NSensor sensor = optionalNSensor.get(); + Optional 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 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