whycxzp
2023-03-01 5ea4209ebffe161955cd28a268072d91af0d79d9
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.DeviceConstant;
import com.whyc.dto.Response;
import com.whyc.mapper.Fbs9100StateMapper;
import com.whyc.pojo.Fbs9100State;
import com.whyc.util.ActionUtil;
import com.whyc.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
 
@Service
public class Fbs9100StateService {
    @Resource
    private Fbs9100StateMapper mapper;
    @Autowired
    private Fbs9100SetparamService service;
 
    //开关状态
    @Transactional
    public Response serchContactorState(int devId) {
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        Fbs9100State fbs9100State = mapper.selectOne(wrapper);
        if (fbs9100State != null) {
            fbs9100State.setNote(new SimpleDateFormat(ActionUtil.time_yyyyMMddHHmmss).format(new Date()));
        }
        /*Random random = new Random();
        fbs9100State.setFbo4830IsOnline(random.nextInt(2));*/
        return new Response().setII(1, fbs9100State == null ? false : true, fbs9100State, "");
    }
 
    //FBS9100设备通信状态查询
    public Response searchByCondition(int pageNum,int pageSize,int devErrcommcount,int uId){
        PageHelper.startPage(pageNum,pageSize);
        List<Fbs9100State> list = mapper.searchByCondition(devErrcommcount,uId);
        PageInfo<Fbs9100State> pageInfo = new PageInfo<>(list);
        return new Response().set(1,pageInfo,"查询成功");
    }
 
    public Response<List<Fbs9100State>> getList(Integer deviceId, Integer workState, Long uId) {
        List<Fbs9100State> list = mapper.getList(deviceId, workState, uId);
        return new Response<List<Fbs9100State>>().set(1,list);
    }
    //一体机烟雾报警确认
    public Response update_dev_res_test_state(int devId) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("dev_res_test_state",0);
        wrapper.eq("dev_id",devId);
        int flag=mapper.update(null,wrapper);
        return  new Response().set(1,flag>0?true:false);
    }
    //一体机界面弹出框确认操作
    public Response update_dev_alarmstate(int num, int devId) {
        int dev_alarmstat=0;
        int flag=0;
        boolean bl=false;
        String msg="";
        UpdateWrapper wrapper=new UpdateWrapper();
        if(num==1){//确认操作
            dev_alarmstat=2;
            wrapper.set("dev_alarmstate",dev_alarmstat);
            wrapper.eq("dev_id",devId);
            flag=mapper.update(null,wrapper);
            if(flag>0){
                boolean b=service.sendCmdToFBS9100Dev(35,0, devId);
                if(b){
                    bl=true;
                    msg="修改成功!";
                }else{
                    bl=false;
                    msg="停止失败!";
                }
            } else{
                bl=false;
                msg="修改失败!";
            }
        }else{//取消操作时
            dev_alarmstat=3;
            wrapper.set("dev_alarmstate",dev_alarmstat);
            wrapper.eq("dev_id",devId);
            flag=mapper.update(null,wrapper);
            if(flag>0){
                bl=true;
                msg="修改成功!";
            }else{
                bl=false;
                msg="修改失败!";
            }
        }
        return new Response().set(1,bl,msg);
    }
 
    public List search6185NuclearCap(int uId){
        List<Fbs9100State> list = mapper.search6185NuclearCap(uId);
        for (Fbs9100State fstate :list) {
            int dev_alarmstate = fstate.getDevAlarmstate();
            String ContactorState = "开关闭合";
            if (dev_alarmstate == 1 ||
                    dev_alarmstate == 2 ||
                    dev_alarmstate == 3 ||
                    dev_alarmstate == 4 ||
                    dev_alarmstate == 6) {
                ContactorState = "开关断开";
            } else {
                ContactorState = "开关闭合";
            }
            fstate.setNote(ContactorState);
        }
        return list;
    }
 
    public Response getBTSEquipStatus(int userId){
 
        Response response = new Response();
        try {
            Map<String, Integer> resultMap = new HashMap<>();
            resultMap.put("在线浮充数量", 0);
            resultMap.put("预充电数量", 0);
            resultMap.put("核容测试数量", 0);
            resultMap.put("内阻测试数量", 0);
            resultMap.put("通讯故障数量", 0);
        /*try {
            List<FBS9100State> statusList = fbs9100StateMapper.getStatus(userId);
            for (int i = 0; i < statusList.size(); i++) {
                switch (statusList.get(i).getWorkState()){
                    case DeviceConstant.DEV_ONLINE_CHARGE:
                        resultMap.put("在线浮充",statusList.get(i).getNum());
                        break;
                    case DeviceConstant.DEV_PRE_CHARGE:
                        resultMap.put("预充电",statusList.get(i).getNum());
                        break;
                    case DeviceConstant.DEV_NUCLEAR_CAP:
                        resultMap.put("核容测试",statusList.get(i).getNum());
                        break;
                    case DeviceConstant.DEV_RES_TEST:
                        resultMap.put("内阻测试",statusList.get(i).getNum());
                        break;
                }
            }
            response.setCode(1);
            response.setData(resultMap);
        } catch (Exception e) {
            e.printStackTrace();
            response.setCode(0);
            return response;
        }*/
            QueryWrapper<Fbs9100State> wrapper = Wrappers.query();
            wrapper.select("record_datetime", "dev_workstate");
            List<Fbs9100State> fbs9100StateList = mapper.selectList(wrapper);
            //首先查看是否通讯故障,时间大于1分钟为通讯故障
            for (int i = 0; i < fbs9100StateList.size(); i++) {
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.MINUTE, -1);
                Date time = instance.getTime();
                if (time.compareTo(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(fbs9100StateList.get(i).getRecordDatetime())) > 0) {
                    resultMap.put("通讯故障数量", resultMap.get("通讯故障数量") + 1);
                } else {
                    switch (fbs9100StateList.get(i).getDevWorkstate()) {
                        case DeviceConstant.DEV_ONLINE_CHARGE:
                            resultMap.put("在线浮充数量", resultMap.get("在线浮充数量") + 1);
                            break;
                        case DeviceConstant.DEV_PRE_CHARGE:
                            resultMap.put("预充电数量", resultMap.get("预充电数量") + 1);
                            break;
                        case DeviceConstant.DEV_NUCLEAR_CAP:
                            resultMap.put("核容数量", resultMap.get("核容测试数量") + 1);
                            break;
                        case DeviceConstant.DEV_RES_TEST:
                            resultMap.put("内阻测试数量", resultMap.get("内阻测试数量") + 1);
                            break;
                    }
                }
            }
 
            return response.setII(1,true,resultMap,null);
        }catch (Exception e){
            return response.set(1,false,"发生异常:"+e.getCause());
        }
    }
}