chengf
2025-10-28 2807cca4b6f2e8af204d798679dcee78e695ee28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.ruoyi.business.aidetection.task;
 
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.business.aidetection.domain.AvAlarm;
import com.ruoyi.business.aidetection.domain.WSMessage;
import com.ruoyi.business.aidetection.service.AvAlarmService;
import com.ruoyi.framework.web.domain.Server;
import com.ruoyi.framework.websocket.WebSocketUsers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import static com.ruoyi.utils.GetCurrentWeek.getPastWeekdays;
 
/**
 * @Author:yuankun
 * @Package:com.ruoyi.quartz.task
 * @Project:ruoyi-vue-service
 * @name:GetEchartsData
 * @Date:2024/4/23 11:34
 * @Filename:GetEchartsData
 */
@Component("GetEchartsData")
public class GetEchartsData {
    @Autowired
    private AvAlarmService avAlarmService;
    public void getPanelEchartsData() throws Exception{
        Map<String,Object> map = new HashMap<>();
        WSMessage wsMessage=new WSMessage();
        //从数据库获取预警信息
        QueryWrapper<AvAlarm> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("state",1);//已处理
        int count1 = avAlarmService.count(queryWrapper);
        map.put("count1",count1);
 
        queryWrapper.clear();
        queryWrapper.eq("state",2);//未处理
        int count2 = avAlarmService.count(queryWrapper);
        map.put("count2",count2);
 
        queryWrapper.clear();
        queryWrapper.eq("state",3);//已忽略
        int count3 = avAlarmService.count(queryWrapper);
        map.put("count3",count3);
        //System.out.println();
        Server server = new Server();
 
        server.setJvmInfo();
 
        map.put("normaltime",server.getJvm().getRunTime());
        WebSocketUsers.sendMessageToUsersByText(JSONUtil.toJsonStr(new WSMessage("getData",
                "getPanelEchartsData","Panel",JSONUtil.toJsonStr(map))));
        return ;
    }
    public void getLineEchartsData() throws Exception{
        Map<String,Object> map = new HashMap<>();
        WSMessage wsMessage=new WSMessage();
        //获取当前时间
        String now = DateUtil.now();
        Date date = DateUtil.parse(now,"yyyy-MM-dd");
        DateTime newDate = DateUtil.offsetDay(date, -6);
        map.put("CurrentWeek",getPastWeekdays(newDate.dayOfWeekEnum().toChinese()));
 
        //获取最近一周的预警信息
        QueryWrapper<AvAlarm> queryWrapper = new QueryWrapper<>();
        //保存三个状态数据数组
        int grade1[] = new int[7];
        int grade2[] = new int[7];
        int grade3[] = new int[7];
        for (int i = 0; i < 7; i++) {
            DateTime temDate = DateUtil.offsetDay(date, -6+i);
            DateTime tem1Date = DateUtil.offsetDay(date, -6+i+1);
            queryWrapper.ge("create_time",temDate.toString());//最近一周
            queryWrapper.le("create_time",tem1Date.toString());//最近一周
            queryWrapper.eq("grade",1);//已处理
            grade1[i] = avAlarmService.count(queryWrapper);
            queryWrapper.clear();
 
            queryWrapper.ge("create_time",temDate.toString());//最近一周
            queryWrapper.le("create_time",tem1Date.toString());//最近一周
            queryWrapper.eq("grade",2);//未处理
            grade2[i] = avAlarmService.count(queryWrapper);
            queryWrapper.clear();
 
            queryWrapper.ge("create_time",temDate.toString());//最近一周
            queryWrapper.le("create_time",tem1Date.toString());//最近一周
            queryWrapper.eq("grade",3);//已忽略
            grade3[i] = avAlarmService.count(queryWrapper);
            queryWrapper.clear();
        }
        map.put("grade1",grade1);
        map.put("grade2",grade2);
        map.put("grade3",grade3);
        //map.put("count1",count1);
 
        WebSocketUsers.sendMessageToUsersByText(JSONUtil.toJsonStr(new WSMessage("getData",
                "getLineEchartsData","Line",JSONUtil.toJsonStr(map))));
        return ;
    }
}