perf: 初始规则最后数据采集时间

iec104
huangfeng 1 year ago
parent 5f1e1c3ac6
commit 37d435c952

@ -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;

@ -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<Map<String, Object>> getData(NSensor sensor, List<ModevTypePoint> points, ConditionModel model) throws Exception;
void clearAllBind();
List<Map<String, Object>> getLatestData(NSensor sensor, ModevTypePoint point, Date start) throws Exception;
Map<String, Object> getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception;
}

@ -23,6 +23,8 @@ public interface NSensorService {
void delete(Integer id);
NSensor detail(Integer id) throws Exception;
SensorDetail<Map<String, Object>> getDetail(ConditionModel model) throws Exception;
void bindicd(Integer id, Integer icdid) throws Exception;

@ -6,7 +6,7 @@ import java.util.List;
public interface WarnRuleService {
List<WarnRule> listAll();
List<WarnRule> listAll() throws Exception;
WarnRule add(WarnRule item) throws Exception;

@ -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<Map<String, Object>> getLatestData(NSensor sensor, ModevTypePoint point, Date start) throws Exception {
return null;
}
@Override
public Map<String, Object> getLastOneData(NSensor sensor, ModevTypePoint point) throws Exception {
List<ModevTypePoint> points = new ArrayList<>();
points.add(point);
ConditionModel model = new ConditionModel();
model.setPageSize(1);
model.setPageNum(1);
OnePage<Map<String, Object>> page = this.doSqlData(sensor, points, model);
if (CollectionUtils.isEmpty(page.getContent())) {
return null;
} else {
Map<String, Object> map = page.getContent().get(0);
return map;
}
}
}

@ -136,6 +136,17 @@ public class NSensorServiceImpl implements NSensorService {
repository.deleteById(id);
}
@Override
public NSensor detail(Integer id) throws Exception {
Optional<NSensor> optional = repository.findById(id);
if (!optional.isPresent()) {
throw new BusinessException("未找到该装置id=" + id);
}
NSensor sensor = optional.get();
this.fillOtherName(sensor);
return sensor;
}
@Override
public SensorDetail<Map<String, Object>> getDetail(ConditionModel model) throws Exception {
NSensor sensor;

@ -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<WarnRule> listAll() {
public List<WarnRule> listAll() throws Exception {
List<WarnRule> list = repository.findAll();
for (WarnRule item : list) {
Optional<NSensor> optionalNSensor = sensorRepository.findById(item.getSensorId());
if (optionalNSensor.isPresent()) {
item.setNSensor(optionalNSensor.get());
}
NSensor sensor = sensorService.detail(item.getSensorId());
item.setNSensor(sensor);
Optional<ModevTypePoint> 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<NSensor> optionalNSensor = sensorRepository.findById(item.getSensorId());
if (!optionalNSensor.isPresent()) {
throw new BusinessException("未找到该装置" + item.getSensorId());
}
NSensor sensor = optionalNSensor.get();
NSensor sensor = sensorService.detail(item.getSensorId());
Optional<ModevTypePoint> optionalModevTypePoint = typePointRepository.findById(item.getModevtypePointId());
if (!optionalModevTypePoint.isPresent()) {
throw new BusinessException("未找到该监测装置属性点" + item.getModevtypePointId());
}
ModevTypePoint typePoint = optionalModevTypePoint.get();
Map<String, Object> map = dataService.getLastOneData(sensor, typePoint);
if (map != null) {
String str = (String) map.get("acquisitionTime");
item.setLastDTime(DateUtil.parse(str));
}
return repository.save(item);
}

Loading…
Cancel
Save