whyclxw
2021-12-17 b0da2adbcbb79c550a4d5f9c8c2828ab832dad21
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
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.PwrdevAcdataMapper;
import com.whyc.mapper.PwrdevAcdcdataMapper;
import com.whyc.mapper.PwrdevDcdataMapper;
import com.whyc.pojo.PwrdevAcdata;
import com.whyc.pojo.PwrdevAcdcdata;
import com.whyc.pojo.PwrdevDcdata;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Service
public class PwrdevAcdcdataService {
    @Resource
    private PwrdevAcdcdataMapper mapper;
 
    @Resource
    private PwrdevAcdataMapper acdataMapper;
 
    @Resource
    private PwrdevDcdataMapper dcdataMapper;
 
    //查询电源的ACDC信息
    public Response getDataByDevId(int powerDeviceId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("PowerDeviceId",powerDeviceId);
        List list=mapper.selectList(wrapper);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().set(1,pageInfo);
    }
 
    //获取配电柜的实时数据
    public Response getPowerInfoById(int powerDeviceId) {
        Map<String, Object> resultMap = new HashMap<>();
        PwrdevAcdata ac=acdataMapper.getInfo(powerDeviceId);
        PwrdevDcdata dc=dcdataMapper.getInfo(powerDeviceId);
        PwrdevAcdcdata acdc=mapper.getInfo(powerDeviceId);
        //时间30秒为超时基准
        int timeoutMilliSecond = 30*1000;
        if(ac==null){
            ac = new PwrdevAcdata();
            ac.setCommStatus(0);
        }
        else{
            if(System.currentTimeMillis()-ac.getRecordDatetime().getTime()>timeoutMilliSecond) {
                ac.setCommStatus(0);
            }else{
                ac.setCommStatus(1);
            }
        }
        if(dc==null){
            dc = new PwrdevDcdata();
            dc.setCommStatus(0);
        }else{
            if(System.currentTimeMillis()-dc.getRecordDatetime().getTime()>timeoutMilliSecond){
                dc.setCommStatus(0);
            }else{
                dc.setCommStatus(1);
            }
        }
        if(acdc==null){
            acdc = new PwrdevAcdcdata();
            acdc.setCommStatus(0);
        }else{
            if(System.currentTimeMillis()-acdc.getRecordDatetime().getTime()>timeoutMilliSecond){
                acdc.setCommStatus(0);
            }else{
                acdc.setCommStatus(1);
            }
        }
        int flag=0;
        //有一个模块通讯状态正常,则整体通讯状态为正常
        if(ac.getCommStatus()==0 && dc.getCommStatus()==0 && acdc.getCommStatus()==0){
            flag = 0;
        }else{
            flag = 1;
        }
        resultMap.put("ac", ac);
        resultMap.put("dc", dc);
        resultMap.put("acdc", acdc);
 
        return new Response().set(flag,resultMap);
    }
}