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.whyc.dto.CmdDto.DevCmd; import com.whyc.dto.Response; import com.whyc.mapper.AlmparamFromDeviceMapper; import com.whyc.pojo.db_ram_db.AlmparamFromDevice; import com.whyc.util.ActionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class AlmparamFromDeviceService { @Autowired(required = false) private AlmparamFromDeviceMapper mapper; public boolean sendCmdTo6185Alarm(int opCmd,int devId) { int cmd = opCmd; int cmd_ack = 0; switch(cmd) { case DevCmd.CMD_ReadAlarmParam: cmd_ack = DevCmd.CMD_ReadAlarmParam_ACK; break; case DevCmd.CMD_WriteAlarmParam: cmd_ack = DevCmd.CMD_WriteAlarmParam_ACK; break; default: return false; } //更新op_cmd UpdateWrapper updateWrapper=new UpdateWrapper(); updateWrapper.set("op_cmd",cmd); updateWrapper.eq("dev_id",devId); int flag=mapper.update((AlmparamFromDevice) ActionUtil.objeNull,updateWrapper); boolean res_exe = false; if(flag>0) { PageHelper.startPage(1,1); QueryWrapper queryWrapper=new QueryWrapper(); queryWrapper.eq("dev_id",devId); for(int n=0; n<1; n++) { AlmparamFromDevice param=mapper.selectOne(queryWrapper); if(param!=null){ if(param.getOpCmd()==cmd_ack){ res_exe = true; break; } try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } }else { break; } } } return res_exe; } //设备的告警参数设置 public Response setAlarmFromDevice(AlmparamFromDevice par) { UpdateWrapper wrapper=new UpdateWrapper(); wrapper.set("groupvol_high_val",par.getGroupvolHighVal()); wrapper.set("groupvol_low_val",par.getGroupvolLowVal()); wrapper.set("monvol_high_val",par.getMonvolHighVal()); wrapper.set("monvol_low_val",par.getMonvolLowVal()); wrapper.set("montmp_high_val",par.getMontmpHighVal()); wrapper.set("montmp_low_val",par.getMontmpLowVal()); wrapper.set("monres_high_val",par.getMonresHighVal()); wrapper.set("monres_low_val",par.getMonresLowVal()); wrapper.set("moncap_high_val",par.getMoncapHighVal()); wrapper.set("moncap_low_val",par.getMoncapLowVal()); wrapper.set("battgroupnum",par.getBattgroupnum()); wrapper.set("onlinevol_high_val",par.getOnlinevolHighVal()); wrapper.set("onlinevol_low_val",par.getOnlinevolLowVal()); wrapper.set("onlinevol_en",par.getOnlinevolEn()); wrapper.set("groupvol_en",par.getGroupvolEn()); wrapper.set("monvol_en",par.getMonvolEn()); wrapper.set("montmp_en",par.getMontmpEn()); wrapper.set("monres_en",par.getMonresEn()); wrapper.set("moncap_en",par.getMoncapEn()); wrapper.set("discurr_high_val",par.getDiscurrHighVal()); wrapper.set("discurr_en",par.getDiscurrEn()); wrapper.set("chrcurr_high_val",par.getChrcurrHighVal()); wrapper.set("chrcurr_en",par.getChrcurrEn()); wrapper.eq("dev_id",par.getDevId()); int flag=mapper.update((AlmparamFromDevice) ActionUtil.objeNull,wrapper); boolean bl=false; if(flag>0){ bl= sendCmdTo6185Alarm(DevCmd.CMD_WriteAlarmParam, par.getDevId()); } return new Response().set(1, bl, bl == true ? "设置成功!" : "设置失败,请检查网络!"); } //设备的告警参数读取 public Response getAlarmFromDevice(int devId) { boolean bl = sendCmdTo6185Alarm(DevCmd.CMD_ReadAlarmParam, devId); UpdateWrapper wrapper = new UpdateWrapper(); wrapper.eq("dev_id", devId); wrapper.last("limit 1"); AlmparamFromDevice par = mapper.selectOne(wrapper); return new Response().setII(1, bl,par, bl == true ? "读取成功!" : "读取失败,请检查网络!"); } }