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.constant.CMD_Constant;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.CKPowerDevAlmParamMapper;
|
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevAlmParam;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class CKPowerDevAlmParamService {
|
@Autowired(required = false)
|
private CKPowerDevAlmParamMapper mapper;
|
|
//发送命令
|
public boolean sendCmd(int cmd,int powerDeviceId)
|
{
|
int ack = cmd;
|
int stopTime=40;
|
switch(cmd) {
|
case CMD_Constant.CMD_GetAlarmParam: ack =CMD_Constant.CMD_GetAlarmParam_ACK ; break;
|
case CMD_Constant.CMD_SetAlarmParam: ack =CMD_Constant.CMD_SetAlarmParam_ACK ; break;
|
default:
|
return false;
|
}
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("op_cmd",cmd);
|
updateWrapper.eq("power_device_id",powerDeviceId);
|
int flag=mapper.update(null,updateWrapper);
|
boolean res_exe = false;
|
if(flag>0)
|
{
|
PageHelper.startPage(1,1);
|
QueryWrapper queryWrapper=new QueryWrapper();
|
queryWrapper.eq("power_device_id",powerDeviceId);
|
for(int n=0; n<stopTime; n++)
|
{
|
CKPowerDevAlmParam param=mapper.selectOne(queryWrapper);
|
if(param!=null){
|
if (param.getOpCmd() == ack) {
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
} else {
|
break;
|
}
|
}
|
}
|
return res_exe;
|
}
|
//读取告警控制
|
public Response getAlmParam(int powerDeviceId) {
|
boolean bl=sendCmd(CMD_Constant.CMD_GetAlarmParam,powerDeviceId);
|
if(bl){
|
QueryWrapper queryWrapper=new QueryWrapper();
|
queryWrapper.eq("power_device_id",powerDeviceId);
|
CKPowerDevAlmParam param=mapper.selectOne(queryWrapper);
|
return new Response().setII(1,bl,param,"读取成功返回数据");
|
}else{
|
return new Response().set(1,bl,"读取失败");
|
}
|
}
|
|
//设置告警参数
|
public Response setAlmParam(CKPowerDevAlmParam almParam) {
|
UpdateWrapper wrapper=new UpdateWrapper();
|
wrapper.eq("power_device_id",almParam.getPowerDeviceId());
|
int flag = mapper.update(almParam,wrapper);
|
boolean bl = false;
|
if (flag>0) {
|
bl = sendCmd(almParam.getOpCmd().intValue(),almParam.getPowerDeviceId());
|
}
|
return new Response().set(1, bl, bl == true ? "修改参数成功!" : "设置告警参数失败,请检查网络!");
|
}
|
}
|