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.FBS9100BattParamMapper;
|
import com.whyc.pojo.FBS9100BattParam;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import javax.annotation.Resource;
|
|
@Service
|
public class FBS9100BattParamService {
|
|
@Resource
|
private FBS9100BattParamMapper mapper;
|
|
public Response updateBatt(FBS9100BattParam param) {
|
UpdateWrapper<FBS9100BattParam> update = Wrappers.update();
|
Integer opCmd = param.getOpCmd();
|
|
update.set("BattGroupCount",param.getBattGroupCount())
|
.set("EachGroupBattCount",param.getEachGroupBattCount())
|
.set("FloatChargeVol",param.getFloatChargeVol())
|
.set("FloatChargeCurr",param.getFloatChargeCurr())
|
.set("OnlineVolLow",param.getOnlineVolLow())
|
.set("juncharge_vol",param.getJunChargeVol())
|
.eq("dev_id",param.getDevId());
|
boolean b = mapper.update(null, update) == 1;
|
boolean bl = false;
|
String msg = "";
|
if (b) {
|
bl = sendCmdToParam(opCmd, param.getDevId().intValue());
|
if (bl) {
|
msg = "修改成功!";
|
} else {
|
msg = "设置参数失败,请检查网络!";
|
}
|
} else {
|
msg = "修改失败!";
|
}
|
return new Response().set(1, bl, msg);
|
}
|
|
public Response searchBatt(int devId, int opCmd) {
|
boolean b=sendCmdToParam(opCmd, devId);
|
QueryWrapper<FBS9100BattParam> query = Wrappers.query();
|
query.eq("dev_id",devId);
|
FBS9100BattParam param = mapper.selectOne(query);
|
return new Response().setII(1,b,param,b?"获取参数成功!":"获取参数失败!");
|
}
|
|
//系统参数命令操作设备时的cmd和ack校验
|
public boolean sendCmdToParam(int cmd, int dev_id) {
|
int m_cmd = cmd;
|
int m_cmd_ack = cmd;
|
switch (m_cmd) {
|
case FBS9100_ComBase.CMD_GetBattParam:
|
m_cmd_ack = FBS9100_ComBase.CMD_GetBattParamACK;
|
break;
|
case FBS9100_ComBase.CMD_SetBattParam:
|
m_cmd_ack = FBS9100_ComBase.CMD_SetBattParamACK;
|
break;
|
default:
|
return false;
|
}
|
UpdateWrapper<FBS9100BattParam> update = Wrappers.update();
|
update.set("op_cmd", m_cmd);
|
update.eq("dev_id", dev_id);
|
int flag = mapper.update(null, update);
|
boolean res_exe = false;
|
if (flag > 0) {
|
PageHelper.startPage(1, 1);
|
QueryWrapper<FBS9100BattParam> query = Wrappers.query();
|
query.eq("dev_id", dev_id);
|
for (int n = 0; n < 40; n++) {
|
FBS9100BattParam param = mapper.selectOne(query);
|
if (param != null) {
|
if (param.getOpCmd() == m_cmd_ack) {
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
} else {
|
break;
|
}
|
|
}
|
}
|
return res_exe;
|
}
|
}
|