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.FBS9100_ComBase;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.DfxtBmsParamMapper;
|
import com.whyc.pojo.Dev6159PowerParam;
|
import com.whyc.pojo.DfxtBmsParam;
|
import com.whyc.util.ActionUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
@Service
|
public class DfxtBmsParamService {
|
|
@Resource
|
private DfxtBmsParamMapper mapper;
|
|
|
public Response operate(int opCmd,Integer devId) {
|
boolean b = sendCmdToDev(opCmd, devId);
|
if(b){
|
return new Response().set(1, true, "操作成功");
|
}else{
|
return new Response().set(0, false, "操作失败,请检查网络!");
|
}
|
|
}
|
|
public boolean sendCmdToDev(int opCmd, int devId) {
|
int m_cmd = opCmd;
|
int m_cmd_ack = opCmd;
|
switch(m_cmd) {
|
case FBS9100_ComBase.CMD_StartDischarge_DF: m_cmd_ack = FBS9100_ComBase.CMD_StartDischargeAck_DF; break;
|
case FBS9100_ComBase.CMD_StopDischarge_DF: m_cmd_ack = FBS9100_ComBase.CMD_StopDischargeAck_DF; break;
|
case FBS9100_ComBase.CMD_StartChrCharge_DF: m_cmd_ack = FBS9100_ComBase.CMD_StartChrChargeAck_DF; break;
|
case FBS9100_ComBase.CMD_StopChrCharge_DF: m_cmd_ack = FBS9100_ComBase.CMD_StopChrChargeAck_DF; break;
|
default:
|
return false;
|
}
|
//更新op_cmd
|
UpdateWrapper updateWrapper=new UpdateWrapper();
|
updateWrapper.set("op_cmd",m_cmd);
|
updateWrapper.eq("dev_id",devId);
|
int flag=mapper.update((DfxtBmsParam) 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<80; n++)
|
{
|
|
DfxtBmsParam parm=mapper.selectOne(queryWrapper);
|
if(parm!=null){
|
if(parm.getOpCmd()==m_cmd_ack){
|
res_exe = true;
|
break;
|
}
|
try {
|
Thread.sleep(250);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}else {
|
break;
|
}
|
}
|
}
|
return res_exe;
|
}
|
}
|