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.Fbs9100SetparamMapper;
|
import com.whyc.pojo.Fbs9100Setparam;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
@Service
|
public class Fbs9100SetparamService {
|
@Resource
|
private Fbs9100SetparamMapper mapper;
|
//查询设备的参数
|
public Response serchdevParam(int devId) {
|
sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_GetDischargeParm,0,devId);
|
QueryWrapper wrapper=new QueryWrapper();
|
wrapper.eq("dev_id",devId);
|
List list=mapper.selectList(wrapper);
|
PageInfo pageInfo=new PageInfo(list);
|
return new Response().set(1,pageInfo);
|
}
|
|
//右键查看参数和弹出框的刷新按钮-----BTS停止
|
public Response serchbyDev_id(int num, Integer testCmd, int devId, int battGroupNum) {
|
boolean bl=sendCmdToFBS9100Dev2(num,testCmd!=null?testCmd:0,devId,battGroupNum);
|
Fbs9100Setparam setparam=mapper.serchbyDev_id(devId);
|
return new Response().setII(1,setparam,bl,bl==true?"查询成功!":"设置9100参数失败,请检查网络!");
|
}
|
|
//离线养护功能-----重启设备
|
public Response updateMaintain(Fbs9100Setparam fbs9100Setparam) {
|
boolean bl=false;
|
int flag=0;
|
String msg="";
|
if(fbs9100Setparam.getOpCmd()==FBS9100_ComBase.CMD_ResetSystem){
|
bl=sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(),0,fbs9100Setparam.getDevId().intValue());
|
if(bl){
|
flag=1;
|
msg="重启成功!";
|
}else{
|
flag=0;
|
msg="重启失败,请检查网络!";
|
}
|
}else{
|
Boolean b=mapper.updateMaintain(fbs9100Setparam);
|
if(b){
|
bl=sendCmdToFBS9100Dev(fbs9100Setparam.getOpCmd(),0,fbs9100Setparam.getDevId().intValue());
|
if(bl){
|
flag=1;
|
msg="修改成功!";
|
}else{
|
flag=0;
|
msg="启动离线养护失败,请检查网络!";
|
}
|
}else{
|
flag=0;
|
msg="修改失败!";
|
}
|
}
|
return new Response().set(1,flag>0?true:false,msg);
|
}
|
|
//在线监测-实时监控-BTS放电参数设置
|
public Response update(Fbs9100Setparam fbs9100Setparam) {
|
Boolean b=mapper.updateBtsParam(fbs9100Setparam);
|
boolean bl=false;
|
if(b){
|
bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),fbs9100Setparam.getTestCmd(),fbs9100Setparam.getDevId().intValue());
|
}
|
return new Response().set(1,bl,bl==true?"修改参数成功!":"设置9100参数失败,请检查网络!");
|
}
|
|
//在线监测-实时监控-61850放电参数设置
|
public Response update61850Param(Fbs9100Setparam fbs9100Setparam) {
|
Boolean b=mapper.update61850Param(fbs9100Setparam);
|
boolean bl=false;
|
if(b){
|
bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),0,fbs9100Setparam.getDevId().intValue());
|
}
|
return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61850参数失败,请检查网络!");
|
}
|
|
//在线监测-实时监控-A059发送指令
|
public Response updateA059Cmd(int opCmd, int devId) {
|
boolean bl=sendCmdToFBS9100Dev(opCmd,0,devId);
|
return new Response().set(1,bl,bl==true?"操控A059成功!":"操控A059失败,请检查网络!");
|
}
|
|
//在线监测-实时监控-读取FGCD_A059放电参数
|
public Response searchA059Param(int opCmd, int devId) {
|
PageHelper.startPage(1, 1);
|
QueryWrapper wrapper = new QueryWrapper();
|
wrapper.eq("dev_id", devId);
|
Fbs9100Setparam a059param = mapper.selectOne(wrapper);
|
boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId);
|
return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取A059参数失败,请检查网络!");
|
}
|
|
//在线监测-实时监控-设置FGCD_A059放电参数
|
public Response updateA059Param(Fbs9100Setparam a059setParam) {
|
Boolean b = mapper.updateA059Param(a059setParam);
|
boolean bl = false;
|
if (b) {
|
bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
|
}
|
return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!");
|
}
|
|
//在线监测-实时监控-设置FGCD_A059放电参数(二期)
|
public Response updateA059ParamPhaseII(Fbs9100Setparam a059setParam) {
|
Boolean b = mapper.updateA059ParamPhaseII(a059setParam);
|
boolean bl = false;
|
if (b) {
|
bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue());
|
}
|
return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059二期参数失败,请检查网络!");
|
}
|
|
//一体机拓扑图界面添加一个温度报警的设置值
|
@Transactional
|
public Response serchCharHighTmp(int devId) {
|
QueryWrapper wrapper = new QueryWrapper();
|
wrapper.eq("dev_id", devId);
|
wrapper.last(" limit 1");
|
Fbs9100Setparam a059param = mapper.selectOne(wrapper);
|
return new Response().setII(1, a059param == null ? false : true, a059param, a059param == null ? "查询失败" : "查询成功");
|
}
|
//在线监测-实时监控-开始/停止显示FGCD_A059图片
|
public Response StartOrStopShowPic(int devId, int opCmd) {
|
boolean bl=sendCmdToFBS9100Dev(opCmd,0,devId);
|
return new Response().set(1,bl,bl==true?"开始/停止显示FGCD_A059图片成功!":"开始/停止显示FGCD_A059图片失败,请检查网络!");
|
}
|
//在线监测-实时监控-设置FGCD_A059当前电池组
|
public Response SetNowBatt(int devId, int opCmd,int battGroupNum) {
|
Boolean b=mapper.SetNowBatt(devId,battGroupNum);
|
boolean bl=false;
|
if(b){
|
bl=sendCmdToFBS9100Dev(opCmd,0,devId);
|
}
|
return new Response().set(1,bl,bl==true?"设置当前电池组成功!":"设置当前电池组失败,请检查网络!");
|
}
|
//机房命令操作设备时的cmd和ack校验 test_type -->默认启动测试的类型
|
public boolean sendCmdToFBS9100Dev(int cmd,int test_type,int dev_id)
|
{
|
int m_cmd = cmd;
|
int m_cmd_ack = cmd;
|
switch(m_cmd) {
|
case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
|
case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
|
case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; break;
|
case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
|
case FBS9100_ComBase.CMd_SetIp_Tem: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
|
case FBS9100_ComBase.CMd_SetIp_Per: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
|
case FBS9100_ComBase.CMD_GetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK; break;
|
case FBS9100_ComBase.CMD_SetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK; break;
|
case FBS9100_ComBase.CMD_StartOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StartOffLine_ACK; break;
|
case FBS9100_ComBase.CMD_StopOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StopOffLine_ACK; break;
|
case FBS9100_ComBase.CMD_ResetSystem: m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck; break;
|
//一体机A059
|
case FBS9100_ComBase.CMD_StartDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck; break;
|
case FBS9100_ComBase.CMD_StopDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck; break;
|
case FBS9100_ComBase.CMD_PauseDischarge: m_cmd_ack = FBS9100_ComBase.CMD_PauseDischargeAck; break;
|
case FBS9100_ComBase.CMD_StartCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StartCharTestAck; break;
|
case FBS9100_ComBase.CMD_StopCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StopCharTestAck; break;
|
case FBS9100_ComBase.CMD_PauseCharTest: m_cmd_ack = FBS9100_ComBase.CMD_PauseCharTestAck; break;
|
case FBS9100_ComBase.CMD_StartHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StartHUOHUATestACK; break;
|
case FBS9100_ComBase.CMD_StopHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StopHUOHUATestACK; break;
|
case FBS9100_ComBase.CMD_PauseHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_PauseHUOHUATestACK; break;
|
//图片显示
|
case FBS9100_ComBase.CMD_StartShowPic: m_cmd_ack = FBS9100_ComBase.CMD_StartShowPic_ACK; break;
|
case FBS9100_ComBase.CMD_StopShowPic: m_cmd_ack = FBS9100_ComBase.CMD_StopShowPic_ACK; break;
|
case FBS9100_ComBase. CMD_SetNowBatt: m_cmd_ack = FBS9100_ComBase.CMD_SetNowBatt_ACK; break;
|
|
default: return false;
|
}
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("op_cmd",m_cmd);
|
if(test_type > 0 && cmd == FBS9100_ComBase.CMD_Start){ //启动测试时未点击设定参数按钮,会出现启动内阻测试bug修复
|
updateWrapper.set("TestCmd",test_type);
|
}
|
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++)
|
{
|
|
Fbs9100Setparam fbs9100Setparam=mapper.selectOne(queryWrapper);
|
if(fbs9100Setparam!=null){
|
if(fbs9100Setparam.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;
|
}
|
|
//机房命令操作设备时的cmd和ack校验 test_type -->默认启动测试的类型
|
public boolean sendCmdToFBS9100Dev2(int cmd, int test_type, int dev_id, int battGroupNum)
|
{
|
int m_cmd = cmd;
|
int m_cmd_ack = cmd;
|
switch(m_cmd) {
|
case FBS9100_ComBase.CMD_Start: m_cmd_ack = FBS9100_ComBase.CMD_StartAck; break;
|
case FBS9100_ComBase.CMD_Stop: m_cmd_ack = FBS9100_ComBase.CMD_StopAck; break;
|
case FBS9100_ComBase.CMD_SetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_SetDischargeParmAck; break;
|
case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
|
case FBS9100_ComBase.CMd_SetIp_Tem: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
|
case FBS9100_ComBase.CMd_SetIp_Per: m_cmd_ack = FBS9100_ComBase.CMd_SetIpAck; break;
|
case FBS9100_ComBase.CMD_GetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK; break;
|
case FBS9100_ComBase.CMD_SetOffLineYHParam: m_cmd_ack = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK; break;
|
case FBS9100_ComBase.CMD_StartOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StartOffLine_ACK; break;
|
case FBS9100_ComBase.CMD_StopOffLine: m_cmd_ack = FBS9100_ComBase.CMD_StopOffLine_ACK; break;
|
case FBS9100_ComBase.CMD_ResetSystem: m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck; break;
|
//一体机A059
|
case FBS9100_ComBase.CMD_StartDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck; break;
|
case FBS9100_ComBase.CMD_StopDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck; break;
|
case FBS9100_ComBase.CMD_PauseDischarge: m_cmd_ack = FBS9100_ComBase.CMD_PauseDischargeAck; break;
|
case FBS9100_ComBase.CMD_StartCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StartCharTestAck; break;
|
case FBS9100_ComBase.CMD_StopCharTest: m_cmd_ack = FBS9100_ComBase.CMD_StopCharTestAck; break;
|
case FBS9100_ComBase.CMD_PauseCharTest: m_cmd_ack = FBS9100_ComBase.CMD_PauseCharTestAck; break;
|
case FBS9100_ComBase.CMD_StartHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StartHUOHUATestACK; break;
|
case FBS9100_ComBase.CMD_StopHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_StopHUOHUATestACK; break;
|
case FBS9100_ComBase.CMD_PauseHUOHUATest: m_cmd_ack = FBS9100_ComBase.CMD_PauseHUOHUATestACK; break;
|
//图片显示
|
case FBS9100_ComBase.CMD_StartShowPic: m_cmd_ack = FBS9100_ComBase.CMD_StartShowPic_ACK; break;
|
case FBS9100_ComBase.CMD_StopShowPic: m_cmd_ack = FBS9100_ComBase.CMD_StopShowPic_ACK; break;
|
case FBS9100_ComBase. CMD_SetNowBatt: m_cmd_ack = FBS9100_ComBase.CMD_SetNowBatt_ACK; break;
|
|
default: return false;
|
}
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("op_cmd",m_cmd);
|
updateWrapper.set("BattGroupNum",battGroupNum);
|
if(test_type > 0 && cmd == FBS9100_ComBase.CMD_Start){ //启动测试时未点击设定参数按钮,会出现启动内阻测试bug修复
|
updateWrapper.set("TestCmd",test_type);
|
}
|
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++)
|
{
|
|
Fbs9100Setparam fbs9100Setparam=mapper.selectOne(queryWrapper);
|
if(fbs9100Setparam!=null){
|
if(fbs9100Setparam.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;
|
}
|
|
}
|