whycxzp
2023-01-12 b6b75f791dbc63a82918e537762d3f9b6b55ccd4
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
108
109
110
111
112
113
114
115
116
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.dto.paramter.DevAlarmPar;
import com.whyc.mapper.DevalarmDataMapper;
import com.whyc.pojo.DevalarmData;
import com.whyc.pojo.UserInf;
import com.whyc.util.ActionUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ListIterator;
 
@Service
public class DevalarmDataService {
 
    @Resource
    private DevalarmDataMapper mapper;
    //设备告警实时查询
    public Response serchByInfo(DevAlarmPar par) {
        PageHelper.startPage(par.getPage().getPageCurr(),par.getPage().getPageSize());
        UserInf uinf= ActionUtil.getUser();
        par.setUId(uinf.getUId().intValue());
        List list=mapper.serchByInfo(par);
        PageInfo pageInfo=new PageInfo(list);
        return  new Response().set(1,pageInfo);
    }
    //设备告警实时查询-webSocket
    public Response serchByInfoOfWebSocket(DevAlarmPar par) {
        PageHelper.startPage(par.getPage().getPageCurr(),par.getPage().getPageSize());
        List list=mapper.serchByInfo(par);
        PageInfo pageInfo=new PageInfo(list);
        return  new Response().set(1,pageInfo);
    }
 
    //设备告警实时查询-sendwebSocket
    @Transactional
    public Response getSendDevAlarmOfWebSocket(Integer uId) {
        List<DevalarmData> list=mapper.getSendDevAlarm(uId);
        Date now = new Date();
        ListIterator<DevalarmData> it = list.listIterator();
        while (it.hasNext()){
            DevalarmData adata = it.next();
            if(adata.getAlmLevel()==1 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<24*3600000){
                it.remove();
            }
            if(adata.getAlmLevel()==2 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<7*24*3600000){
                it.remove();
            }
            if(adata.getAlmLevel()==3 && adata.getRecordTime()!=null && now.getTime()-adata.getRecordTime().getTime()<30*7*24*3600000){
                it.remove();
            }
        }
        return new Response().set(1,list);
    }
 
    //设备告警确认告警
    public Response update(int num) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("alm_is_confirmed",1);
        wrapper.eq("num",num);
        int flag=mapper.update(null,wrapper);
        return  new Response().set(flag);
    }
    //设备告警取消告警
    public Response cancel(int num) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("alm_is_confirmed",0);
        wrapper.eq("num",num);
        int flag=mapper.update(null,wrapper);
        return  new Response().set(flag);
    }
    //设备告警删除告警
    public Response delete(int num) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("num",num);
        int flag=mapper.delete(wrapper);
        return  new Response().set(flag);
    }
 
    //设备告警数查询
    public Response searchNums() {
        UserInf uinf = ActionUtil.getUser();
        int devAlarmNum = mapper.searchNums(uinf.getUId().intValue());
        return new Response().set(1, devAlarmNum);
    }
 
    /**
     *
     * @param userId
     * @param type 1,查询24小时内;0,查询所有
     * @return
     */
    public List<DevalarmData> getList(Long userId, int type) {
        return mapper.getList(userId,type);
    }
 
 
    //查询分级告警的个数
    public Response serchByLevel(int uId) {
        List list = new ArrayList();
        //分四级查询个数
        for (int i = 1; i <= 4; i++) {
            int countLevel = mapper.serchByLevel(i, uId);
            list.add(countLevel);
        }
        return new Response().setII(1, list.size() > 0, list, "分级告警数");
    }
}