package com.fgkj.services.Ld9;
|
|
import com.fgkj.dto.BattInf;
|
import com.fgkj.dto.LD9_setparam;
|
import com.fgkj.dto.ServiceModel;
|
import com.fgkj.mapper.FBS9100_ComBase;
|
import com.fgkj.mapper.impl.BattInfMapper;
|
import com.fgkj.mapper.impl.Batt_rtdataMapper;
|
import com.fgkj.mapper.impl.Ld9.LD9_setparamMapper;
|
import com.github.pagehelper.PageHelper;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
@Service
|
public class LD9_setparamService {
|
|
@Resource
|
private LD9_setparamMapper mapper;
|
|
@Resource
|
private Batt_rtdataMapper battRtDataMapper;
|
|
@Resource
|
private BattInfMapper battInfMapper;
|
|
//弹出框的确定操作
|
public ServiceModel update(LD9_setparam ld9) {
|
ServiceModel model = new ServiceModel();
|
Boolean b=mapper.update(ld9);
|
if(b){
|
boolean bl=sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
|
if(bl){
|
model.setCode(1);
|
model.setMsg("修改成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("设置ld9参数失败,请检查网络!");
|
}
|
}else{
|
model.setCode(0);
|
model.setMsg("修改失败!");
|
}
|
return model;
|
}
|
//根据机房编号和维护区查询放电机房的信息和放电参数
|
public ServiceModel serchByCondition(BattInf binf) {
|
ServiceModel model = new ServiceModel();
|
//根据电池组id查询对应的设备id
|
Integer dev_id = battInfMapper.serchDev_id(binf);
|
//机房命令操作设备时的cmd和ack校验
|
int cmd = binf.getNum();
|
boolean bl = false;
|
if (dev_id != null) {
|
bl = sendCmdToLd9Dev(cmd, dev_id);
|
}
|
|
if (bl) {
|
List list = mapper.findByCondition(binf);
|
model.setCode(1);
|
model.setData(list);
|
model.setMsg("查询成功!");
|
} else {
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
|
private boolean sendCmdToLd9Dev(int cmd, 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_StartRES: m_cmd_ack = FBS9100_ComBase.CMD_StartRES_ACK; break;
|
case FBS9100_ComBase.CMD_GetDischargeParm: m_cmd_ack = FBS9100_ComBase.CMD_GetDischargeParmAck; break;
|
default: return false;
|
}
|
boolean res_exe = false;
|
boolean b1 = mapper.updateOpCmd(cmd,dev_id)>0;
|
if(b1) {
|
for (int i = 0; i < 20; i++) {
|
int opCmd = mapper.getOpCmd(dev_id);
|
//查看操作执行指令发送到数据库后,通讯程序是否执行了指令并返回了ack
|
if(opCmd==m_cmd_ack){
|
res_exe = true;
|
break;
|
}
|
}
|
}
|
return res_exe;
|
|
}
|
|
//右键查看参数和弹出框的刷新按钮
|
public ServiceModel serchbyDev_id(LD9_setparam ld9) {
|
ServiceModel model = new ServiceModel();
|
boolean bl=sendCmdToLd9Dev(ld9.getNum(), ld9.getDev_id());
|
if(bl){
|
List list=mapper.serchbyDev_id(ld9);
|
model.setCode(1);
|
model.setData(list);
|
model.setMsg("查询成功!");
|
|
}else{
|
model.setCode(0);
|
model.setMsg("设置9100参数失败,请检查网络!");
|
}
|
//System.out.println(model.getData());
|
return model;
|
}
|
|
|
//根据电池组id查询电池组内前五的内阻数据
|
public ServiceModel serchByThirdBatt(BattInf binf){
|
ServiceModel model = new ServiceModel();
|
PageHelper.startPage(0,10,false);
|
List list=battRtDataMapper.serchByThirdBatt(binf);
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setData(list);
|
model.setMsg("查询成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
}
|