wenhongquan před 1 rokem
rodič
revize
c678d04a88

+ 2 - 2
ruoyi-admin/src/main/resources/application-dev.yml

@@ -49,9 +49,9 @@ spring:
           driverClassName: com.mysql.cj.jdbc.Driver
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
           # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
-          url: jdbc:mysql://${DBHOST:60.204.209.152}:${DBPORT:3306}/iotc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
+          url: jdbc:mysql://${DBHOST:127.0.0.1}:${DBPORT:3306}/iotc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
           username: ${DBUSER:root}
-          password: ${DBPWD:Liwei199411..}
+          password: ${DBPWD:root}
         # 从库数据源
         slave:
           lazy: true

+ 44 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java

@@ -1,7 +1,10 @@
 package com.ruoyi.data.controller;
 
+import java.time.Duration;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 import cn.hutool.core.bean.BeanUtil;
@@ -9,11 +12,13 @@ import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysDictType;
+import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.data.domain.*;
 import com.ruoyi.data.domain.bo.*;
 import com.ruoyi.data.domain.vo.*;
 import com.ruoyi.data.service.*;
 import com.ruoyi.system.service.ISysDictTypeService;
+import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
@@ -52,6 +57,10 @@ public class TblDataController extends BaseController {
 
     private final ITblModbusRtuService iTblModbusRtuService;
 
+    private final ITblSensorRecordService iTblSensorRecordService;
+
+    private final ITblBreakdownService iTblBreakdownService;
+
 
     /**
      * 查询网关设备列表
@@ -105,6 +114,41 @@ public class TblDataController extends BaseController {
         return obj;
     }
 
+    @GetMapping("/allSensorStatus")
+    public TableDataInfo<Map> liststatus() {
+        TableDataInfo<Map> obj = new TableDataInfo<Map>();
+        TblSensorBo sensorBo = new TblSensorBo();
+        List<TblSensorVo> tblSeneorVoList = iTblSensorService.queryList(sensorBo);
+        List<Map> list = new ArrayList<>();
+        tblSeneorVoList.forEach(tblSensorVo -> {
+            Map<String, Object> a = new HashMap<>();
+            a.put("name", tblSensorVo.getName());
+            a.put("code",tblSensorVo.getId());
+            a.put("state",1);
+            if(RedisUtils.getCacheObject("sensor_status_"+tblSensorVo.getId())!=null){
+                Map<String,Integer> aa = RedisUtils.getCacheObject("sensor_status_"+tblSensorVo.getId());
+                a.put("state",aa.get("12")>1?0:1);
+            }else{
+                a.put("state",2);
+            }
+            list.add(a);
+        });
+
+        obj.setRows(list);
+
+        return obj;
+    }
+
+    @GetMapping("/faultList")
+    public TableDataInfo<TblBreakdownVo> listbreak(TblEquipmentBo bo) {
+        TableDataInfo<TblBreakdownVo> obj = new TableDataInfo<TblBreakdownVo>();
+        TblBreakdownBo pp =  new TblBreakdownBo();
+        pp.setParams(bo.getParams());
+        List<TblBreakdownVo> list = iTblBreakdownService.queryList1(pp);
+        obj.setRows(list);
+        return obj;
+    }
+
     private List<SensorPoint> getSensorPointList(){
         List<SensorPoint> list = new ArrayList<>();
         List<PointData> pointUnitlist = new ArrayList<>();

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorVo.java

@@ -92,4 +92,6 @@ public class TblSensorVo implements Serializable {
     private String equipmentName;
 
     private Long configUuid;
+
+
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblBreakdownService.java

@@ -32,6 +32,8 @@ public interface ITblBreakdownService {
      */
     List<TblBreakdownVo> queryList(TblBreakdownBo bo);
 
+    List<TblBreakdownVo> queryList1(TblBreakdownBo bo);
+
     /**
      * 新增故障管理
      */

+ 94 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/ScheduledTask.java

@@ -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{
+
+            }
+
+        });
+    }
+}

+ 27 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblBreakdownServiceImpl.java

@@ -65,6 +65,33 @@ public class TblBreakdownServiceImpl implements ITblBreakdownService {
         return baseMapper.selectVoList(lqw);
     }
 
+    @Override
+    public List<TblBreakdownVo> queryList1(TblBreakdownBo bo) {
+        LambdaQueryWrapper<TblBreakdown> lqw = buildQueryWrapper1(bo);
+        lqw.between(bo.getParams()!=null && bo.getParams().get("beginTime") != null && bo.getParams().get("endTime") != null,
+            TblBreakdown::getCreateTime, bo.getParams().get("beginTime"), bo.getParams().get("endTime"));
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblBreakdown> buildQueryWrapper1(TblBreakdownBo bo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        Long roleId = loginUser.getRoles().get(0).getRoleId();
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblBreakdown> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), TblBreakdown::getName, bo.getName());
+        lqw.eq(bo.getVal() != null, TblBreakdown::getVal, bo.getVal());
+        lqw.eq(bo.getEquipmentId() != null, TblBreakdown::getEquipmentId, bo.getEquipmentId());
+        lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), TblBreakdown::getEquipmentName, bo.getEquipmentName());
+        lqw.eq(StringUtils.isNotBlank(bo.getContent()), TblBreakdown::getContent, bo.getContent());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandler()), TblBreakdown::getHandler, bo.getHandler());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandlerWay()), TblBreakdown::getHandlerWay, bo.getHandlerWay());
+        lqw.eq(StringUtils.isNotBlank(bo.getHandlerContent()), TblBreakdown::getHandlerContent, bo.getHandlerContent());
+        lqw.eq(bo.getHandlerTime() != null, TblBreakdown::getHandlerTime, bo.getHandlerTime());
+        lqw.eq(bo.getFaultTime() != null, TblBreakdown::getFaultTime, bo.getFaultTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblBreakdown::getStatus, bo.getStatus());
+        return lqw;
+    }
+
     private LambdaQueryWrapper<TblBreakdown> buildQueryWrapper(TblBreakdownBo bo) {
         LoginUser loginUser = LoginHelper.getLoginUser();
         Long roleId = loginUser.getRoles().get(0).getRoleId();

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblSensorRecordServiceImpl.java

@@ -122,4 +122,5 @@ public class TblSensorRecordServiceImpl implements ITblSensorRecordService {
         return baseMapper.deleteBatchIds(ids) > 0;
     }
 
+
 }