|
|
@@ -0,0 +1,94 @@
|
|
|
+package com.ruoyi.data.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateField;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
+import com.ruoyi.common.utils.redis.RedisUtils;
|
|
|
+import com.ruoyi.data.domain.bo.TblBreakdownBo;
|
|
|
+import com.ruoyi.data.domain.bo.TblSensorBo;
|
|
|
+import com.ruoyi.data.domain.bo.TblSensorRecordBo;
|
|
|
+import com.ruoyi.data.domain.vo.TblSensorRecordVo;
|
|
|
+import com.ruoyi.data.domain.vo.TblSensorVo;
|
|
|
+import com.ruoyi.data.service.ITblBreakdownService;
|
|
|
+import com.ruoyi.data.service.ITblSensorRecordService;
|
|
|
+import com.ruoyi.data.service.ITblSensorService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.time.Duration;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class ScheduledTask {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITblSensorService iTblSensorService;
|
|
|
+ @Autowired
|
|
|
+ private ITblSensorRecordService iTblSensorRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITblBreakdownService iTblBreakdownService;
|
|
|
+ @Scheduled(fixedRate = 60*60*1000)
|
|
|
+ public void executeTask() {
|
|
|
+ // 定时执行的任务逻辑
|
|
|
+
|
|
|
+ TableDataInfo<Map> obj = new TableDataInfo<Map>();
|
|
|
+ TblSensorBo sensorBo = new TblSensorBo();
|
|
|
+ List<TblSensorVo> tblSeneorVoList = iTblSensorService.queryList(sensorBo);
|
|
|
+ List<Map> list = new ArrayList<>();
|
|
|
+ tblSeneorVoList.forEach(tblSensorVo -> {
|
|
|
+
|
|
|
+ if(RedisUtils.getCacheObject("sensor_status_"+tblSensorVo.getId())!=null){
|
|
|
+ }else{
|
|
|
+ TblSensorRecordBo a1 =new TblSensorRecordBo();
|
|
|
+ Map<String, Object> t = new HashMap<>();
|
|
|
+ t.put("starttime", DateUtil.formatDateTime(DateUtil.offset(new Date(), DateField.HOUR,-12 )));
|
|
|
+ t.put("endtime", DateUtil.formatDateTime(new Date()));
|
|
|
+ a1.setParams(t);
|
|
|
+ a1.setSensorId(tblSensorVo.getId());
|
|
|
+ List<TblSensorRecordVo> a11 = iTblSensorRecordService.queryList(a1);
|
|
|
+
|
|
|
+ t.put("starttime", DateUtil.formatDateTime(DateUtil.offset(new Date(), DateField.HOUR,-24 )));
|
|
|
+ t.put("endtime", DateUtil.formatDateTime(new Date()));
|
|
|
+ a1.setParams(t);
|
|
|
+
|
|
|
+ List<TblSensorRecordVo> a12 = iTblSensorRecordService.queryList(a1);
|
|
|
+ Map<String,Integer> temp = new HashMap<>();
|
|
|
+ temp.put("12",a11.size());
|
|
|
+ temp.put("24",a12.size());
|
|
|
+ RedisUtils.setCacheObject("sensor_status_"+tblSensorVo.getId(),temp, Duration.ofSeconds(60*60));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ System.out.println("查询ok");
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Scheduled(fixedRate = 24*60*60*1000)
|
|
|
+ public void executeTask1() {
|
|
|
+ TableDataInfo<Map> obj = new TableDataInfo<Map>();
|
|
|
+ TblSensorBo sensorBo = new TblSensorBo();
|
|
|
+ List<TblSensorVo> tblSeneorVoList = iTblSensorService.queryList(sensorBo);
|
|
|
+
|
|
|
+ tblSeneorVoList.forEach(tblSensorVo -> {
|
|
|
+ if(RedisUtils.getCacheObject("sensor_status_"+tblSensorVo.getId())!=null){
|
|
|
+ Map<String,Integer> aa1 = RedisUtils.getCacheObject("sensor_status_"+tblSensorVo.getId());
|
|
|
+ if(aa1.get("24")<1){
|
|
|
+ TblBreakdownBo aa=new TblBreakdownBo();
|
|
|
+ aa.setContent("设备长时间离线");
|
|
|
+ aa.setName("设备离线");
|
|
|
+ aa.setEquipmentName(tblSensorVo.getName());
|
|
|
+ aa.setEquipmentId(tblSensorVo.getId());
|
|
|
+ aa.setVal("1");
|
|
|
+ aa.setFaultTime(new Date());
|
|
|
+ aa.setStatus("0");
|
|
|
+ iTblBreakdownService.insertByBo(aa);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|