whyclxw
2022-01-06 4cdd1ee89a247d2f815f54172dc25181466fdb2f
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
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);
        PageHelper.startPage(1,1);
        Fbs9100Sysparam  sysparam = mapper.serchByCondition(devId);
        String msg="";
        if(bl){
            msg="查询成功!";
        }else{
            msg="查询失败!";
        }
 
        return  new Response().setII(1,sysparam,bl,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;
    }
 
}