diff --git a/src/main/java/com/xydl/cac/entity/WarnRule.java b/src/main/java/com/xydl/cac/entity/WarnRule.java index d0af0d4..7acc4b2 100644 --- a/src/main/java/com/xydl/cac/entity/WarnRule.java +++ b/src/main/java/com/xydl/cac/entity/WarnRule.java @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; import javax.persistence.*; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import java.util.Date; @JsonInclude(JsonInclude.Include.NON_NULL) @Data @@ -54,7 +55,7 @@ public class WarnRule { @ApiModelProperty("最后数据采集时间") @Column(name = "last_d_time") - private String lastDTime; + private Date lastDTime; @Transient private NSensor nSensor; diff --git a/src/main/java/com/xydl/cac/service/DataService.java b/src/main/java/com/xydl/cac/service/DataService.java index 8a0149c..f603cf0 100644 --- a/src/main/java/com/xydl/cac/service/DataService.java +++ b/src/main/java/com/xydl/cac/service/DataService.java @@ -4,7 +4,7 @@ package com.xydl.cac.service; import com.xydl.cac.entity.*; import com.xydl.cac.model.*; -import java.text.ParseException; +import java.util.Date; import java.util.List; import java.util.Map; @@ -17,4 +17,8 @@ public interface DataService { OnePage> getData(NSensor sensor, List points, ConditionModel model) throws Exception; void clearAllBind(); + + List> getLatestData(NSensor sensor, ModevTypePoint point, Date start) throws Exception; + + Map getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception; } diff --git a/src/main/java/com/xydl/cac/service/NSensorService.java b/src/main/java/com/xydl/cac/service/NSensorService.java index 5d05398..11cf94c 100644 --- a/src/main/java/com/xydl/cac/service/NSensorService.java +++ b/src/main/java/com/xydl/cac/service/NSensorService.java @@ -23,6 +23,8 @@ public interface NSensorService { void delete(Integer id); + NSensor detail(Integer id) throws Exception; + SensorDetail> getDetail(ConditionModel model) throws Exception; void bindicd(Integer id, Integer icdid) throws Exception; diff --git a/src/main/java/com/xydl/cac/service/WarnRuleService.java b/src/main/java/com/xydl/cac/service/WarnRuleService.java index 0b5c2c5..0894b87 100644 --- a/src/main/java/com/xydl/cac/service/WarnRuleService.java +++ b/src/main/java/com/xydl/cac/service/WarnRuleService.java @@ -6,7 +6,7 @@ import java.util.List; public interface WarnRuleService { - List listAll(); + List listAll() throws Exception; WarnRule add(WarnRule item) throws Exception; diff --git a/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java index 98dc90a..444d09a 100644 --- a/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/DataServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.text.ParseException; @@ -220,4 +221,29 @@ public class DataServiceImpl implements DataService { String sql = "UPDATE n_sensor SET icd_id=null"; jdbcTemplate.execute(sql); } + + @Override + public List> getLatestData(NSensor sensor, ModevTypePoint point, Date start) throws Exception { + return null; + } + + @Override + public Map getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception { + List points = new ArrayList<>(); + points.add(point); + + ConditionModel model = new ConditionModel(); + model.setPageSize(1); + model.setPageNum(1); + + OnePage> page = this.doSqlData(sensor, points, model); + if (CollectionUtils.isEmpty(page.getContent())) { + return null; + } else { + Map map = page.getContent().get(0); + return map; + } + } + + } diff --git a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java index e9ff25d..a5bba67 100644 --- a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java @@ -136,6 +136,17 @@ public class NSensorServiceImpl implements NSensorService { repository.deleteById(id); } + @Override + public NSensor detail(Integer id) throws Exception { + Optional optional = repository.findById(id); + if (!optional.isPresent()) { + throw new BusinessException("未找到该装置id=" + id); + } + NSensor sensor = optional.get(); + this.fillOtherName(sensor); + return sensor; + } + @Override public SensorDetail> getDetail(ConditionModel model) throws Exception { NSensor sensor; 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 d541bdf..73637ab 100644 --- a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java @@ -5,15 +5,18 @@ 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.DataService; +import com.xydl.cac.service.NSensorService; import com.xydl.cac.service.WarnRuleService; +import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.Optional; @Service @@ -24,22 +27,23 @@ public class WarnRuleServiceImpl implements WarnRuleService { @Resource WarnRuleRepository repository; @Resource - NSensorRepository sensorRepository; + NSensorService sensorService; @Resource ModevTypePointRepository typePointRepository; + @Resource + DataService dataService; @Override - public List listAll() { + public List listAll() throws Exception { List list = repository.findAll(); for (WarnRule item : list) { - Optional optionalNSensor = sensorRepository.findById(item.getSensorId()); - if (optionalNSensor.isPresent()) { - item.setNSensor(optionalNSensor.get()); - } + NSensor sensor = sensorService.detail(item.getSensorId()); + item.setNSensor(sensor); Optional optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId()); - if (optionalModevTypePoint.isPresent()) { - item.setTypePoint(optionalModevTypePoint.get()); + if (!optionalModevTypePoint.isPresent()) { + throw new BusinessException("未找到该监测装置属性点" + item.getModevtypePointId()); } + item.setTypePoint(optionalModevTypePoint.get()); } return list; } @@ -47,16 +51,17 @@ public class WarnRuleServiceImpl implements WarnRuleService { @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(); + NSensor sensor = sensorService.detail(item.getSensorId()); Optional optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId()); if (!optionalModevTypePoint.isPresent()) { throw new BusinessException("未找到该监测装置属性点" + item.getModevtypePointId()); } ModevTypePoint typePoint = optionalModevTypePoint.get(); + Map map = dataService.getLastOneData(sensor, typePoint); + if (map != null) { + String str = (String) map.get("acquisitionTime"); + item.setLastDTime(DateUtil.parse(str)); + } return repository.save(item); }