|
@@ -18,8 +18,6 @@ import java.util.stream.Collectors;
|
|
//主要用来生产烘干数据的 时间拿时间
|
|
//主要用来生产烘干数据的 时间拿时间
|
|
@Component
|
|
@Component
|
|
public class SysTelcomEnentTimmer {
|
|
public class SysTelcomEnentTimmer {
|
|
- //首先尝试存储数据进新表
|
|
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private SysTelecomMapper sysTelecomMapper;
|
|
private SysTelecomMapper sysTelecomMapper;
|
|
|
|
|
|
@@ -27,9 +25,8 @@ public class SysTelcomEnentTimmer {
|
|
private ISysTelecomEventService sysTelecomEventService;
|
|
private ISysTelecomEventService sysTelecomEventService;
|
|
|
|
|
|
//每小时执行一次
|
|
//每小时执行一次
|
|
- @Scheduled(cron = " 0 */59 * * * ?")
|
|
|
|
|
|
+ @Scheduled(cron = " 0 */59 * * * ? ")
|
|
private void updateBox() {
|
|
private void updateBox() {
|
|
- //有好几个基站需要报警数据 现在默认是 fff15aea9c2a4b749efb68db751eaace //这一台 后面还会加其他的参数吧
|
|
|
|
//获得设备列表 查找烘干数据
|
|
//获得设备列表 查找烘干数据
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
LambdaQueryWrapper<SysTelecom> lambdaQueryWrapper =
|
|
LambdaQueryWrapper<SysTelecom> lambdaQueryWrapper =
|
|
@@ -37,35 +34,39 @@ public class SysTelcomEnentTimmer {
|
|
lambdaQueryWrapper
|
|
lambdaQueryWrapper
|
|
.select(SysTelecom::getDeviceId);
|
|
.select(SysTelecom::getDeviceId);
|
|
List<String> collect = sysTelecomMapper.selectObjs(lambdaQueryWrapper).stream().map(o -> (String) o).collect(Collectors.toList());
|
|
List<String> collect = sysTelecomMapper.selectObjs(lambdaQueryWrapper).stream().map(o -> (String) o).collect(Collectors.toList());
|
|
|
|
+ //System.out.println(collect);
|
|
for (String deviceId : collect) {
|
|
for (String deviceId : collect) {
|
|
- Calendar c = Calendar.getInstance();
|
|
|
|
- c.setTime(new Date());
|
|
|
|
- c.add(Calendar.HOUR, -2);
|
|
|
|
- Date began1 = c.getTime();
|
|
|
|
- String startTime1 = format.format(new Date());
|
|
|
|
- String endTime1 = format.format(began1);
|
|
|
|
|
|
+ Calendar TimeDeviceId = Calendar.getInstance();
|
|
|
|
+ TimeDeviceId.setTime(new Date());
|
|
|
|
+ TimeDeviceId.add(Calendar.HOUR, -20);
|
|
|
|
+ Date began1time = TimeDeviceId.getTime();
|
|
|
|
+ String startTime1 = format.format(began1time);
|
|
|
|
+ String endTime1 = format.format(new Date());
|
|
LambdaQueryWrapper<SysTelecom> wrapper = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<SysTelecom> wrapper = Wrappers.lambdaQuery();
|
|
wrapper.eq(SysTelecom::getDeviceId, deviceId);
|
|
wrapper.eq(SysTelecom::getDeviceId, deviceId);
|
|
wrapper.eq(SysTelecom::getFarmId, 1);
|
|
wrapper.eq(SysTelecom::getFarmId, 1);
|
|
wrapper.between(SysTelecom::getTimestamp, startTime1, endTime1);
|
|
wrapper.between(SysTelecom::getTimestamp, startTime1, endTime1);
|
|
- List<SysTelecom> sysTelecoms = sysTelecomMapper.selectList(wrapper);
|
|
|
|
|
|
+ List<SysTelecom> sysTelecoms = sysTelecomMapper.selectList(wrapper);//System.out.println(sysTelecoms);
|
|
for (SysTelecom sysTelecom : sysTelecoms) {
|
|
for (SysTelecom sysTelecom : sysTelecoms) {
|
|
if( Double.parseDouble(sysTelecom.getTemp())>50){
|
|
if( Double.parseDouble(sysTelecom.getTemp())>50){
|
|
|
|
+ // System.out.println("温度"+sysTelecom.getTemp()+sysTelecom.getDeviceId()+sysTelecom.getTimestamp());
|
|
//产生时间段
|
|
//产生时间段
|
|
- Calendar c1 = Calendar.getInstance();
|
|
|
|
- c1.setTime(sysTelecom.getTimestamp());
|
|
|
|
- c1.add(Calendar.MINUTE, -60);
|
|
|
|
- Date began = c.getTime();
|
|
|
|
- String startTime = format.format(began);
|
|
|
|
- c.add(Calendar.MINUTE, +110);
|
|
|
|
- Date endTime11 = c.getTime();
|
|
|
|
- String endTime = format.format(endTime11);
|
|
|
|
|
|
+ Calendar eventTime = Calendar.getInstance();
|
|
|
|
+ eventTime.setTime(sysTelecom.getTimestamp());
|
|
|
|
+ eventTime.add(Calendar.MINUTE, -60);
|
|
|
|
+ Date began = eventTime.getTime();
|
|
|
|
+ String EventStartTime = format.format(began);
|
|
|
|
+ eventTime.add(Calendar.MINUTE, +110);
|
|
|
|
+ Date EventEndTime1 = eventTime.getTime();
|
|
|
|
+ String EventEndTime = format.format(EventEndTime1);
|
|
//查询在大于50摄氏度这条记录的 前60分钟 后60分钟 时间里,有没有存储过报警事件 有就放弃 没有就加一条
|
|
//查询在大于50摄氏度这条记录的 前60分钟 后60分钟 时间里,有没有存储过报警事件 有就放弃 没有就加一条
|
|
- int count1 = sysTelecomEventService.count(Wrappers.<SysTelecomEvent>lambdaQuery()
|
|
|
|
|
|
+ int count = sysTelecomEventService.count(Wrappers.<SysTelecomEvent>lambdaQuery()
|
|
.eq(SysTelecomEvent::getDeviceId,sysTelecom.getDeviceId())
|
|
.eq(SysTelecomEvent::getDeviceId,sysTelecom.getDeviceId())
|
|
.eq(SysTelecomEvent::getFarmId,sysTelecom.getFarmId())
|
|
.eq(SysTelecomEvent::getFarmId,sysTelecom.getFarmId())
|
|
- .between(SysTelecomEvent::getEventTime, startTime, endTime));
|
|
|
|
- if(count1==0){
|
|
|
|
|
|
+ .between(SysTelecomEvent::getEventTime, EventStartTime, EventEndTime));
|
|
|
|
+ // System.out.println("插结果"+count);
|
|
|
|
+ if(count==0){
|
|
|
|
+ // System.out.println("保存了一条");
|
|
SysTelecomEvent sysTelecomEvent = new SysTelecomEvent();
|
|
SysTelecomEvent sysTelecomEvent = new SysTelecomEvent();
|
|
sysTelecomEvent.setDeviceId(sysTelecom.getDeviceId());
|
|
sysTelecomEvent.setDeviceId(sysTelecom.getDeviceId());
|
|
sysTelecomEvent.setEventTime(sysTelecom.getTimestamp());
|
|
sysTelecomEvent.setEventTime(sysTelecom.getTimestamp());
|
|
@@ -74,9 +75,11 @@ public class SysTelcomEnentTimmer {
|
|
sysTelecomEvent.setRemark(sysTelecom.getTemp());
|
|
sysTelecomEvent.setRemark(sysTelecom.getTemp());
|
|
sysTelecomEventService.save(sysTelecomEvent);
|
|
sysTelecomEventService.save(sysTelecomEvent);
|
|
}
|
|
}
|
|
- System.out.println("抛弃");
|
|
|
|
|
|
+ // System.out.println("抛弃");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|