whyclxw
2022-01-06 08f626b8fee5676ba3432672673e47a9bede662a
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
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Fbs9100SysparamMapper;
import com.whyc.pojo.Fbs9100Setparam;
import com.whyc.pojo.Fbs9100Sysparam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import sun.applet.resources.MsgAppletViewer;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
 
@Service
public class Fbs9100SysparamService {
    @Resource
    private Fbs9100SysparamMapper mapper;
    @Autowired
    private Fbs9100SetparamService service;
 
    //清除告警/重启
    public Response update61850(Fbs9100Sysparam fbs9100Sysparam) {
        boolean bl=false;
        int flag=0;
        String msg="";
        if(fbs9100Sysparam.getNum()== FBS9100_ComBase.CMD_ResetSystem){//重启
            bl=service.sendCmdToFBS9100Dev(fbs9100Sysparam.getNum().intValue(),0, fbs9100Sysparam.getDevId().intValue());
            if(bl){
                flag=1;
                msg="重启成功!";
            }else{
                flag=0;
                msg="重启失败!";
            }
        }else{
            if(fbs9100Sysparam.getNum()==FBS9100_ComBase.CMD_ClearSysAlarm){//消除告警
                bl=sendCmdToFBS9100DevSysParam(fbs9100Sysparam.getNum().intValue(), fbs9100Sysparam.getDevId().intValue());
                if(bl){
                    flag=1;
                    msg="消除告警成功!";
                }else{
                    flag=0;
                    msg="消除告警失败!";
                }
            }else{
                int number=mapper.update61850(fbs9100Sysparam);
                if(number>0){
                    bl=sendCmdToFBS9100DevSysParam(fbs9100Sysparam.getNum().intValue(), fbs9100Sysparam.getDevId().intValue());
                    if(bl){
                        flag=1;
                        msg="修改成功!";
                    }else{
                        flag=0;
                        msg="设置9100参数失败,请检查网络!";
                    }
                }else{
                    flag=0;
                    msg="修改失败!";
                }
            }
        }
        return new Response().set(1,flag>0?true:false,msg);
    }
 
    //根据设备id查询系统参数
    public Response serchByCondition(int devId) {
        boolean b=mapper.replace(devId);
        boolean bl=sendCmdToFBS9100DevSysParam(FBS9100_ComBase.CMD_GetSYSSetParam,devId);
        String msg="";
        List list =new ArrayList();
        if(bl){
            list = mapper.serchByCondition(devId);
            if(list!=null && list.size()>0){
                msg="查询成功!";
            }else{
               msg="查询失败!";
            }
        }else {
            msg="查询失败!";
        }
        return  new Response().setII(1,bl,list,msg);
    }
    //系统参数命令操作设备时的cmd和ack校验
    public boolean sendCmdToFBS9100DevSysParam(int cmd,int dev_id)
    {
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_GetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_GetSYSSetParamAck; break;
            case FBS9100_ComBase.CMD_SetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_SetSYSSetParamAck; break;
            case FBS9100_ComBase.CMD_ClearSysAlarm: m_cmd_ack = FBS9100_ComBase.CMD_ClearSysAlarm_ACK; break;
            case FBS9100_ComBase.CMD_SetJunHengParam: m_cmd_ack = FBS9100_ComBase.CMD_SetJunHengParamAck;break;
            case FBS9100_ComBase.CMD_GetJunHengParam: m_cmd_ack = FBS9100_ComBase.CMD_GetJunHengParamAck;break;
            default: return false;
        }
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.set("op_cmd",m_cmd);
        updateWrapper.eq("dev_id",dev_id);
        int flag=mapper.update(null,updateWrapper);
        boolean res_exe = false;
        if(flag>0)
        {
            PageHelper.startPage(1,1);
            QueryWrapper queryWrapper=new QueryWrapper();
            queryWrapper.eq("dev_id",dev_id);
            for(int n=0; n<40; n++)
            {
                Fbs9100Sysparam sysparam=mapper.selectOne(queryWrapper);
                if(sysparam.getOpCmd()==m_cmd_ack){
                    res_exe = true;
                    break;
                }
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return res_exe;
    }
 
}