fg电池监控平台的达梦数据库版本
whycxzp
2024-11-11 1443158933f220613b43f18a2108a552ea9f1aff
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
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.whyc.dto.FBS9100_ComBase;
import com.whyc.dto.Response;
import com.whyc.mapper.Fbs9100SysparamMapper;
import com.whyc.pojo.Fbs9100Sysparam;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
 
@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,bl,sysparam,msg);
    }
    //均衡控制参数设置-获取参数
    public Response searchJunHengParam(int devId) {
        boolean b=sendCmdToFBS9100DevSysParam(FBS9100_ComBase.CMD_GetJunHengParam, devId);
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Fbs9100Sysparam sysparam=mapper.selectOne(wrapper);
        return new Response().setII(1,b,sysparam,b==true?"获取参数成功!":"获取参数失败!");
    }
    //均衡控制参数设置-设置参数
    public Response update61850JunHeng(Fbs9100Sysparam fbs9100Sysparam) {
        boolean b = mapper.update61850JunHeng(fbs9100Sysparam);
        boolean bl = false;
        String msg = "";
        if (b) {
            bl = sendCmdToFBS9100DevSysParam(fbs9100Sysparam.getOpCmd(), fbs9100Sysparam.getDevId().intValue());
            if (bl) {
                msg = "修改成功!";
            } else {
                msg = "设置61850均衡参数失败,请检查网络!";
            }
        } else {
            msg = "修改失败!";
        }
        return new Response().set(1, bl, msg);
    }
 
    //并联设备-获取参数
    public Response searchBL(int devId) {
        boolean b = sendCmdToFBS9100DevSysParam(FBS9100_ComBase.CMD_GetMultModeParam, devId);
        PageHelper.startPage(1, 1);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("dev_id", devId);
        Fbs9100Sysparam sysparam = mapper.selectOne(wrapper);
        return new Response().setII(1, b, sysparam, b == true ? "获取参数成功!" : "获取参数失败!");
    }
 
    //并联设备-设置参数
    public Response updateBL(Fbs9100Sysparam fbs9100Sysparam) {
        boolean b = mapper.updateBL(fbs9100Sysparam);
        boolean bl = false;
        String msg = "";
        if (b) {
            bl = sendCmdToFBS9100DevSysParam(fbs9100Sysparam.getOpCmd(), fbs9100Sysparam.getDevId().intValue());
            if (bl) {
                msg = "修改成功!";
            } else {
                msg = "并联设备-设置参数失败,请检查网络!";
            }
        } else {
            msg = "修改失败!";
        }
        return new Response().set(1, bl, msg);
    }
 
    public Response update61851(Fbs9100Sysparam fbs9100Sysparam) {
        UpdateWrapper<Fbs9100Sysparam> update = Wrappers.update();
        Integer opCmd = fbs9100Sysparam.getOpCmd();
        if(opCmd == FBS9100_ComBase.CMD_ControlSwitch) { //61851开关控制
            update.set("km1_switch", fbs9100Sysparam.getKm1Switch())
                    .set("km2_switch", fbs9100Sysparam.getKm2Switch())
                    .set("km3_switch", fbs9100Sysparam.getKm3Switch())
                    .eq("dev_id", fbs9100Sysparam.getDevId());
        }else if(opCmd == FBS9100_ComBase.CMD_SetSYSSetParam){ //61851远程重启装置遥调指令
            update.set("currentRange",fbs9100Sysparam.getCurrentRange())
                    .set("BackLightTime",fbs9100Sysparam.getBackLightTime())
                    .set("dev_addr",fbs9100Sysparam.getDevAddr())
                    .set("tempH_Env",fbs9100Sysparam.getTempHEnv())
                    .set("tempH_JCQ",fbs9100Sysparam.getTempHJCQ())
                    .set("currH_ZL",fbs9100Sysparam.getCurrHZL())
                    .eq("dev_id",fbs9100Sysparam.getDevId());
        }
        boolean b = mapper.update((Fbs9100Sysparam) ActionUtil.objeNull, update) == 1;
        boolean bl = false;
        String msg = "";
        if (b) {
            bl = sendCmdToFBS9100DevSysParam(opCmd, fbs9100Sysparam.getDevId().intValue());
            if (bl) {
                msg = "修改成功!";
            } else {
                msg = "设置61850均衡参数失败,请检查网络!";
            }
        } else {
            msg = "修改失败!";
        }
        return new Response().set(1, bl, msg);
    }
 
    public Response updatePW(Fbs9100Sysparam fbs9100Sysparam) {
        UpdateWrapper<Fbs9100Sysparam> update = Wrappers.update();
        Integer opCmd = fbs9100Sysparam.getOpCmd();
 
        update.set("CurrentRange",fbs9100Sysparam.getCurrentRange())
                .set("BackLightTime",fbs9100Sysparam.getBackLightTime())
                .set("auto_captestperiod",fbs9100Sysparam.getAutoCapTestPeriod())
                .set("loaderpowerdown_peroid",fbs9100Sysparam.getLoaderPowerDownPeriod())
                .set("loaderpowerdown_time",fbs9100Sysparam.getLoaderPowerDownTime())
                .set("boost_dcdc_bakvol",fbs9100Sysparam.getBoostDCDCBakVol())
                .set("boost_dcdc_bakcurr",fbs9100Sysparam.getBoostDCDCBakCurr())
                .eq("dev_id",fbs9100Sysparam.getDevId());
        boolean b = mapper.update((Fbs9100Sysparam) ActionUtil.objeNull, update) == 1;
        boolean bl = false;
        String msg = "";
        if (b) {
            bl = sendCmdToFBS9100DevSysParam(opCmd, fbs9100Sysparam.getDevId().intValue());
            if (bl) {
                msg = "修改成功!";
            } else {
                msg = "设置61850均衡参数失败,请检查网络!";
            }
        } else {
            msg = "修改失败!";
        }
        return new Response().set(1, bl, msg);
    }
 
    public Response search61851(int devId, int opCmd) {
        boolean b=sendCmdToFBS9100DevSysParam(opCmd, devId);
        PageHelper.startPage(1,1);
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("dev_id",devId);
        Fbs9100Sysparam sysparam=mapper.selectOne(wrapper);
        return new Response().setII(1,b,sysparam,b==true?"获取参数成功!":"获取参数失败!");
    }
 
    //系统参数命令操作设备时的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;
            case FBS9100_ComBase.CMD_GetMultModeParam:
                m_cmd_ack = FBS9100_ComBase.CMD_GetMultModeParam_Ack;
                break;
            case FBS9100_ComBase.CMD_SetMultModeParam:
                m_cmd_ack = FBS9100_ComBase.CMD_SetMultModeParam_Ack;
                break;
            case FBS9100_ComBase.CMD_ControlSwitch:
                m_cmd_ack = FBS9100_ComBase.CMD_ControlSwitch_Ack;
                break;
            default:
                return false;
        }
        UpdateWrapper updateWrapper = new UpdateWrapper();
        updateWrapper.set("op_cmd", m_cmd);
        updateWrapper.eq("dev_id", dev_id);
        int flag = mapper.update((Fbs9100Sysparam) ActionUtil.objeNull, 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 != null) {
                    if (sysparam.getOpCmd() == m_cmd_ack) {
                        res_exe = true;
                        break;
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else {
                    break;
                }
 
            }
        }
        return res_exe;
    }
 
 
}