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.github.pagehelper.PageInfo; import com.whyc.dto.DeviceTypeDTO; import com.whyc.dto.FBS9100_ComBase; import com.whyc.dto.Response; import com.whyc.mapper.BattInfMapper; import com.whyc.mapper.Fbs9100SetParamTempMapper; import com.whyc.mapper.Fbs9100SetparamMapper; import com.whyc.mapper.Li9130SetparamPlanMapper; import com.whyc.pojo.Battinf; import com.whyc.pojo.Fbs9100SetParamTemp; import com.whyc.pojo.Fbs9100Setparam; import com.whyc.pojo.Li9130SetparamPlan; import com.whyc.util.ActionUtil; import com.whyc.util.ThreadLocalUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Date; import java.util.List; @Service public class Fbs9100SetparamService { @Resource private Fbs9100SetparamMapper mapper; @Resource private Li9130SetparamPlanMapper li9130Mapper; @Resource private BattInfMapper binfMapper; @Resource private Fbs9100SetParamTempMapper tmpMapper; @Autowired private PwrdevAcdcdataService pwrdevAcdcservice; //查询设备的参数 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停止61850,6184 public Response serchbyDev_id(int num, Integer testCmd, int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(num, testCmd != null ? testCmd : 0, devId, battGroupNum); if ((devId / 100000 == DeviceTypeDTO.DEVICE6185) && (num == FBS9100_ComBase.CMD_Start)) {//当启动放电设备为6185时 //将二次放电表中电池组id的ischarge改为1 //先查询出电池组id int battGroupId = 0; QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("FBSDeviceId", devId); queryWrapper.eq("GroupIndexInFBSDevice", battGroupNum - 1); queryWrapper.last("limit 1"); Battinf binf = binfMapper.selectOne(queryWrapper); if (binf != null) { battGroupId = binf.getBattGroupId(); } //修改ischarge改为1 UpdateWrapper wrapper = new UpdateWrapper(); wrapper.set("is_charge", 1); wrapper.eq("battGroupId", battGroupId); tmpMapper.update((Fbs9100SetParamTemp) ActionUtil.objeNull, wrapper); } Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1); /*重庆bts4810(61850) 目前客户的负载电流比较小,充放电参数设置时,小于0.1C10的,电流值要求能自动识别, 采用一天内电流平均值来放电。负载电流大于0.1C10.用0.1C10放电客户要求自动填充,不要人为的录入. (100AH电池 负载电流小于10A 就用负载电流的平均值 大于10A 就用10A) */ if (devId / 100000 == DeviceTypeDTO.DEVICE6185){ //根据devId获取机房id QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("FBSDeviceId", devId); queryWrapper.last("limit 1"); Battinf binf = binfMapper.selectOne(queryWrapper); if(binf!=null){ //获取电源的负载电流 float loadCurr=pwrdevAcdcservice.getBts4810LoadCurr(binf.getStationId(),binf.getMonCapStd()); setparam.setLoadCurr(loadCurr); }else { setparam.setLoadCurr(0f); } } return new Response().setII(1, setparam, bl, bl == true ? "查询成功!" : "设置9100参数失败,请检查网络!"); } //内阻测试 public Response serchbyDev_id_res(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start, 50, devId, battGroupNum); return new Response().set(1,bl, bl == true ? "内阻测试成功!" : "内阻测试失败,请检查网络!"); } //右键查看参数和弹出框的刷新按钮-----BTS停止基础上加上tb_li9130_setparam_plan表得is_statup设置为0 public Response serchbyDev_id_li9130(int num, Integer testCmd, int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(num, testCmd != null ? testCmd : 0, devId, battGroupNum); //tb_li9130_setparam_plan表得is_statup设置为0 UpdateWrapper wrapper = new UpdateWrapper(); wrapper.set("is_startup", 0); wrapper.eq("dev_id", devId); int flag = li9130Mapper.update((Li9130SetparamPlan) ActionUtil.objeNull, wrapper); Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1); return new Response().setIII(1, setparam, bl, flag > 0, 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参数失败,请检查网络!"); } //在线监测-实时监控-设置61853放电参数设置 public Response update61853Param(Fbs9100Setparam fbs9100Setparam) { Boolean b=mapper.update61853Param(fbs9100Setparam); boolean bl=false; if(b){ bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),0,fbs9100Setparam.getDevId().intValue()); } return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61853参数失败,请检查网络!"); } //在线监测-实时监控-设置6186放电参数设置 public Response update6186Param(Fbs9100Setparam fbs9100Setparam) { Boolean b=mapper.update6186Param(fbs9100Setparam); boolean bl=false; if(b){ bl=sendCmdToFBS9100Dev(fbs9100Setparam.getNum().intValue(),0,fbs9100Setparam.getDevId().intValue()); } return new Response().set(1,bl,bl==true?"修改参数成功!":"设置61853参数失败,请检查网络!"); } //在线监测-实时监控-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); boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); Fbs9100Setparam a059param = mapper.selectOne(wrapper); 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; int stopTime=40; 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; stopTime=80;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/fbo4830 case FBS9100_ComBase.CMD_StartDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck; stopTime=80; break; case FBS9100_ComBase.CMD_StopDischarge: m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck; stopTime=80; 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; case FBS9100_ComBase.CMD_ForceSetNowBatt: m_cmd_ack = FBS9100_ComBase.CMD_ForceSetNowBatt_ACK; break; case FBS9100_ComBase.CMD_updateXZTime: m_cmd_ack = FBS9100_ComBase.CMD_updateXZTimeAck; 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((Fbs9100Setparam) 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默认启动测试的类型 public boolean sendCmdToFBS9100Dev3(int cmd, int testCmd, 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_GetMutilMode_Param: m_cmd_ack = FBS9100_ComBase.CMD_GetMutilMode_Param_Ack; break; case FBS9100_ComBase.CMD_SetMutilMode_Param: m_cmd_ack = FBS9100_ComBase.CMD_SetMutilMode_Param_Ack; break; default: return false; } UpdateWrapper updateWrapper = new UpdateWrapper(); updateWrapper.set("op_cmd", m_cmd); updateWrapper.set("BattGroupNum", battGroupNum); //读取时加参数在testcmd中参数类型,0-实时核容参数 1-计划核容参数 2-活化参数 3-充电参数 HV_mon_uppernum1 if (cmd == FBS9100_ComBase.CMD_GetMutilMode_Param) { updateWrapper.set("HV_mon_uppernum1", testCmd); } if (cmd == FBS9100_ComBase.CMD_Start || cmd == FBS9100_ComBase.CMD_Stop) { updateWrapper.set("TestCmd", testCmd); } updateWrapper.eq("dev_id", dev_id); int flag = mapper.update((Fbs9100Setparam) 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++) { Fbs9100Setparam fbs9100Setparam = mapper.selectOne(queryWrapper); if (fbs9100Setparam != null) { if (fbs9100Setparam.getOpCmd() == m_cmd_ack) { res_exe = true; break; } try { Thread.sleep(500); } 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||cmd == FBS9100_ComBase.CMD_Stop)){ //启动测试时未点击设定参数按钮,会出现启动内阻测试bug修复 updateWrapper.set("TestCmd",test_type); } updateWrapper.eq("dev_id",dev_id); int flag=mapper.update((Fbs9100Setparam) 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++) { Fbs9100Setparam fbs9100Setparam=mapper.selectOne(queryWrapper); if(fbs9100Setparam!=null){ if(fbs9100Setparam.getOpCmd()==m_cmd_ack){ res_exe = true; break; } try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else { break; } } } return res_exe; } public boolean sendCmdToDev(int opCmd,int dev_id) { int m_cmd = opCmd; int m_cmd_ack = opCmd; switch(m_cmd) { 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_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_EOperatingSwitch_ControlSwitch: m_cmd_ack = FBS9100_ComBase.CMD_EOperatingSwitch_ControlSwitchAck; break; case FBS9100_ComBase.CMD_ResetSystem: m_cmd_ack = FBS9100_ComBase.CMD_ResetSystemAck; break; case FBS9100_ComBase.CMD_ReadTest_Param: m_cmd_ack = FBS9100_ComBase.CMD_ReadTest_Param_ACK; break; case FBS9100_ComBase.CMD_WriteTest_Param: m_cmd_ack = FBS9100_ComBase.CMD_WriteTest_Param_ACK; break; case FBS9100_ComBase.CMD_StartDcdcTest: m_cmd_ack = FBS9100_ComBase.CMD_StartDcdcTest_ACK; break; case FBS9100_ComBase.CMD_StopDcdcTest: m_cmd_ack = FBS9100_ComBase.CMD_StopDcdcTest_ACK; break; default: return false; } //更新op_cmd UpdateWrapper updateWrapper=new UpdateWrapper(); updateWrapper.set("op_cmd",m_cmd); updateWrapper.eq("dev_id",dev_id); int flag=mapper.update((Fbs9100Setparam) 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++) { 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) { e.printStackTrace(); } }else { break; } } } return res_exe; } public Response updateEOperatingSwitch(Fbs9100Setparam fbs9100Setparam) { Boolean b=mapper.updateEOperatingSwitch(fbs9100Setparam); boolean bl=false; if(b){ bl=sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm,fbs9100Setparam.getDevId().intValue()); } return new Response().set(1,bl, bl ?"修改参数成功!":"设置参数失败,请检查网络!"); } public Response updateEOperatingSwitchStart(Fbs9100Setparam fbs9100Setparam) { UpdateWrapper update = Wrappers.update(); update.set("TestCmd",fbs9100Setparam.getTestCmd()).eq("dev_id",fbs9100Setparam.getDevId()); Boolean b=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1; boolean bl=false; if(b){ bl=sendCmdToDev(FBS9100_ComBase.CMD_Start,fbs9100Setparam.getDevId().intValue()); } return new Response().set(1,bl, bl ?"启动测试成功!":"启动测试失败,请检查网络!"); } public Response updateEOperatingSwitchStop(Fbs9100Setparam fbs9100Setparam) { boolean bl=sendCmdToDev(FBS9100_ComBase.CMD_Stop,fbs9100Setparam.getDevId().intValue()); return new Response().set(1,bl, bl ?"停止测试成功!":"停止测试失败,请检查网络!"); } public Response updateEOperatingSwitchControl(Fbs9100Setparam fbs9100Setparam) { UpdateWrapper update = Wrappers.update(); update.set("TestCmd",fbs9100Setparam.getTestCmd()) .set("FlowOver_Count",fbs9100Setparam.getFlowoverCount()) .eq("dev_id",fbs9100Setparam.getDevId()); Boolean b=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1; boolean bl=false; if(b){ bl=sendCmdToDev(FBS9100_ComBase.CMD_EOperatingSwitch_ControlSwitch,fbs9100Setparam.getDevId().intValue()); } return new Response().set(1,bl, bl ?"电操开关控制成功!":"电操开关控制失败,请检查网络!"); } public Response getEOperatingSwitch(int devId, int battGroupNum) { //根据设备id先设置电池组号 UpdateWrapper update = Wrappers.update(); update.set("BattGroupNum",battGroupNum).eq("dev_id",devId); mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update); //发送cmd boolean b = sendCmdToDev(FBS9100_ComBase.CMD_GetDischargeParm, devId); if (b) { QueryWrapper query = Wrappers.query(); query.eq("dev_id", devId).last(" limit 1"); Fbs9100Setparam param = mapper.selectOne(query); return new Response().setII(1, true, param, ""); } return new Response().set(1, false, "读取参数失败,请检查网络!"); } //在线监测-实时监控-读取FBO_4830放电参数 public Response searchFBO4830Param(int opCmd, int devId) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); Fbs9100Setparam a059param = mapper.selectOne(wrapper); return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4830参数失败,请检查网络!"); } //在线监测-实时监控-读取FBO_4831放电参数 public Response searchFBO4831Param(int opCmd, int devId) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); Fbs9100Setparam a059param = mapper.selectOne(wrapper); return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4831参数失败,请检查网络!"); } //在线监测-实时监控-设置FBO_4830放电参数 public Response updateFBO4830Param(Fbs9100Setparam a059setParam) { Boolean b = mapper.updateFBO4830Param(a059setParam); boolean bl = false; if (b) { bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue()); } return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!"); } //在线监测-实时监控-控制FBO_4830充放电停止 public Response controllerFBO4830(int opCmd, int devId) { boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); return new Response().set(1, bl, bl == true ? "操控FBO4830成功!" : "操控FBO4830失败,请检查网络!"); } //在线监测-实时监控-读取kgdy放电参数 public Response searchKgdyParam(int opCmd, int devId) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); Fbs9100Setparam a059param = mapper.selectOne(wrapper); return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取A059参数失败,请检查网络!"); } //在线监测-实时监控-设置kgdy放电参数 public Response updateKgdyParam(Fbs9100Setparam a059setParam) { Boolean b = mapper.updateKgdyParam(a059setParam); boolean bl = false; if (b) { bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue()); } return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!"); } //在线监测-实时监控-控制并联电源充放电停止 public Response controllerParalle(int opCmd, Integer testCmd, int battGroupNum, int devId) { boolean bl = sendCmdToFBS9100Dev3(opCmd, testCmd, devId, battGroupNum); return new Response().set(1, bl, bl == true ? "操控并联电源成功!" : "操控并联电源失败,请检查网络!"); } //在线监测-实时监控-读取并联电源放电参数 public Response searchParalleParam(int opCmd, int hvMonUppernum1, int battGroupNum, int devId) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); //读取时加参数在testcmd中参数类型,0-实时核容参数 1-计划核容参数 2-活化参数 3-充电参数 HV_mon_uppernum1 boolean bl = sendCmdToFBS9100Dev3(opCmd, hvMonUppernum1, devId, battGroupNum); Fbs9100Setparam paralleParam = mapper.selectOne(wrapper); return new Response().setII(1, bl, paralleParam, bl == true ? "读取参数成功!" : "读取并联电源参数失败,请检查网络!"); } //在线监测-实时监控-设置并联电源放电参数 public Response updateParalleParam(Fbs9100Setparam a059setParam) { Boolean b = mapper.updateParalleParam(a059setParam); boolean bl = false; if (b) { bl = sendCmdToFBS9100Dev3(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue(), a059setParam.getBattGroupNum()); } return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置并联电源参数失败,请检查网络!"); } public Response searchPW(int devId) { int opCmd = FBS9100_ComBase.CMD_GetDischargeParm; return searchParam(devId,opCmd); } public Response searchML(int devId) { int opCmd = FBS9100_ComBase.CMD_ReadTest_Param; return searchParam(devId,opCmd); } private Response searchParam(int devId, int opCmd) { boolean res = sendCmdToDev(opCmd, devId); Fbs9100Setparam fbs9100Setparam = null; if(res){ QueryWrapper query = Wrappers.query(); query.eq("dev_id",devId).last(" limit 1"); fbs9100Setparam = mapper.selectOne(query); } return new Response().setII(1, res, fbs9100Setparam, res ? "读取参数成功" : "读取参数失败,请检查网络"); } public Response updatePW(Fbs9100Setparam param) { Long devId = param.getDevId(); UpdateWrapper update = Wrappers.update(); update.set("DisCurr",param.getDisCurr()) .set("DisCap",param.getDisCap()) .set("DisTime",param.getDisTime()) .set("GroupVol_LOW",param.getGroupvolLow()) .set("BattGroupNum",param.getBattGroupNum()) .set("DCVolHighLimit",param.getDCVolHighLimit()) .set("ChargeCurrSet",param.getChargeCurrSet()) .eq("dev_id",devId); mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update); boolean res = sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm, devId.intValue()); return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络"); } public Response updateML(Fbs9100Setparam param) { Long devId = param.getDevId(); UpdateWrapper update = Wrappers.update(); update.set("dcdc1_outputvol",param.getDcdc1OutputVol()) .set("dcdc2_outputvol",param.getDcdc2OutputVol()) .set("dcdc1_outputcurr",param.getDcdc1OutputCurr()) .set("dcdc2_outputcurr",param.getDcdc2OutputCurr()) .set("screensaver_time",param.getScreenSaverTime()) .eq("dev_id",devId); mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update); boolean res = sendCmdToDev(FBS9100_ComBase.CMD_WriteTest_Param, devId.intValue()); return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络"); } public Response updateOpCmdAndTestCmd(int devId,int opCmd,int testCmd) { UpdateWrapper update = Wrappers.update(); update.set("TestCmd",testCmd).eq("dev_id",devId); Boolean res=mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update)==1; boolean res2=false; if(res){ res2=sendCmdToDev(opCmd,devId); } return new Response().set(1,res2, res2 ?"启动测试成功!":"启动测试失败,请检查网络!"); } public Response updateOpCmd(int devId,int opCmd) { boolean res = sendCmdToDev(opCmd,devId); return new Response().set(1,res, res ?"停止测试成功!":"停止测试失败,请检查网络!"); } public Response updatePWStartTest(int devId,int opCmd,int testCmd) { return updateOpCmdAndTestCmd(devId,opCmd,testCmd); } public Response updatePWStopTest(int devId) { return updateOpCmd(devId,FBS9100_ComBase.CMD_Stop); } public Response updatePWRestartDevice(int devId) { return updateOpCmd(devId,FBS9100_ComBase.CMD_ResetSystem); } public Response searchLD6(int devId) { int opCmd = FBS9100_ComBase.LD6_CMD_GETPARAM; return searchParam(devId,opCmd); } public Response updateLD6(Fbs9100Setparam param) { Long devId = param.getDevId(); UpdateWrapper update = Wrappers.update(); update .set("GroupVol_LOW",param.getGroupvolLow()) .set("MonomerVol_LOW",param.getMonomervolLow()) .set("MonomerLowCount",param.getMonomerLowCount()) .set("MonomerTmp_High",param.getMonomertmpHigh()) .set("DisTime",param.getDisTime()) .set("DisCap",param.getDisCap()) .set("AutoTestStartVol",param.getAutoTestStartVol()) .set("ChargeCurrSet",param.getChargeCurrSet()) .set("DisCurr",param.getDisCurr()) .set("BattGroupNum",param.getBattGroupNum()) .set("DCVolHighLimit",param.getDCVolHighLimit()) .eq("dev_id",devId); mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update); boolean res = sendCmdToDev(FBS9100_ComBase.CMD_SetDischargeParm, devId.intValue()); return new Response().set(1, res, res ? "修改参数成功" : "设置参数失败,请检查网络"); } //设置参数-61850-同步时间 public Response update61850SyncTime(int devId,String syncTime) { UpdateWrapper update = Wrappers.update(); update.set("OffLineYHstarttime",ThreadLocalUtil.parse(syncTime,1));//同步时间 update.eq("dev_id",devId); mapper.update((Fbs9100Setparam) ActionUtil.objeNull,update); boolean bl=sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_updateXZTime,0,devId); return new Response().set(1, bl, bl ? "同步时间成功" : "同步时间失败,请检查网络"); } public Response updateLD6StartTest(int devId) { return updateOpCmd(devId,FBS9100_ComBase.LD6_CMD_STARTTEST); } public Response updateLD6StopTest(int devId) { return updateOpCmd(devId,FBS9100_ComBase.LD6_CMD_STOPTEST); } //在线监测-实时监控-读取FBS9612放电参数 public Response searchFBS9612Param(int opCmd, int devId) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); boolean bl = sendCmdToFBS9100Dev(opCmd, 0, devId); Fbs9100Setparam a059param = mapper.selectOne(wrapper); return new Response().setII(1, bl, a059param, bl == true ? "读取参数成功!" : "读取FBO_4830参数失败,请检查网络!"); } //在线监测-实时监控-设置FBS9612放电参数 public Response updateFBS9612Param(Fbs9100Setparam a059setParam) { Boolean b = mapper.updateFBS9612Param(a059setParam); boolean bl = false; if (b) { bl = sendCmdToFBS9100Dev(a059setParam.getOpCmd().intValue(), 0, a059setParam.getDevId().intValue()); } return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置A059参数失败,请检查网络!"); } //在线监测-实时监控-控制FBS9612充放电停止/内阻测试 public Response controllerFBS9612(int opCmd,int testType, int devId) { boolean bl = sendCmdToFBS9100Dev(opCmd, testType, devId); return new Response().set(1, bl, bl == true ? "操控FBO4830成功!" : "操控FBO4830失败,请检查网络!"); } //在线监测-实时监控-设置6184放电参数设置 public Response update6184Param(Fbs9100Setparam fbs9100Setparam) { Boolean b=mapper.update6184Param(fbs9100Setparam); boolean bl=false; if(b){ bl=sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_SetDischargeParm,0,fbs9100Setparam.getDevId().intValue(),fbs9100Setparam.getBattGroupNum()); } return new Response().set(1,bl,bl==true?"修改参数成功!":"设置6184参数失败,请检查网络!"); } //在线监测-实时监控-读取6184放电参数 public Response get6184Param(int devId, int battGroupNum) { PageHelper.startPage(1, 1); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("dev_id", devId); boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_GetDischargeParm,0, devId, battGroupNum); Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1); return new Response().setII(1, bl, setparam, bl == true ? "读取参数成功!" : "读取6184放电参数,请检查网络!"); } //在线监测-实时监控-6184设备远程重启 public Response restart6184(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_ResetSystem,0, devId, battGroupNum); return new Response().set(1,bl,bl==true?"6184设备远程重启成功!":"6184设备远程重启失败!"); } //在线监测-实时监控-6184远程启动放电测试 public Response startDis6184(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start,FBS9100_ComBase.CMD_StartDischarge, devId, battGroupNum); return new Response().set(1,bl,bl==true?"6184远程启动放电测试成功!":"6184远程启动放电测试失败!"); } //在线监测-实时监控-6184启动内阻测试 public Response startRes6184(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Start,FBS9100_ComBase.CMD_StartResDischarge, devId, battGroupNum); return new Response().set(1,bl,bl==true?"启动内阻测试成功!":"启动内阻测试失败!"); } //在线监测-实时监控-6184停止测试 public Response stop6184(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Stop,FBS9100_ComBase.CMD_StopDischarge, devId, battGroupNum); return new Response().set(1,bl,bl==true?"6184停止测试成功!":"6184停止测试失败!"); } //在线监测-实时监控-6184停止内阻测试 public Response stopRes6184(int devId, int battGroupNum) { boolean bl = sendCmdToFBS9100Dev2(FBS9100_ComBase.CMD_Stop,FBS9100_ComBase.CMD_StopResDischarge, devId, battGroupNum); return new Response().set(1,bl,bl==true?"停止内阻测试成功!":"停止内阻测试失败!"); } }