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 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(null, 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(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 != 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;
|
}
|
|
|
}
|