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.whyc.constant.SuperConstant;
|
import com.whyc.dto.FBS9100_ComBase;
|
import com.whyc.mapper.FGCDFileDownloadMapper;
|
import com.whyc.pojo.FGCDFileDownload;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
import static java.lang.Thread.sleep;
|
|
@Service
|
public class FGCDFileDownloadService {
|
|
@Resource
|
private FGCDFileDownloadMapper mapper;
|
|
public List<FGCDFileDownload> getListByDeviceId(Integer deviceId) {
|
QueryWrapper<FGCDFileDownload> wrapper = Wrappers.query();
|
wrapper.eq("dev_id",deviceId);
|
return mapper.selectList(wrapper);
|
}
|
|
/**不会进行op_cmd的返回码校验*/
|
public boolean sendCmdToA059(Integer deviceId) {
|
UpdateWrapper<FGCDFileDownload> wrapper = Wrappers.update();
|
wrapper.set("op_cmd", FBS9100_ComBase.CMD_StopFile).eq("dev_id",deviceId);
|
mapper.update(null,wrapper);
|
return true;
|
}
|
|
public boolean sendCmdToA059ReadFile(Integer deviceId, Integer fileIndex) {
|
UpdateWrapper<FGCDFileDownload> wrapper = Wrappers.update();
|
wrapper.set("op_cmd", FBS9100_ComBase.CMD_ReadFBDFile).set("file_index",fileIndex).eq("dev_id",deviceId);
|
mapper.update(null,wrapper);
|
|
QueryWrapper<FGCDFileDownload> queryWrapper = Wrappers.query();
|
for (int i = 0; i < SuperConstant.CMD_SEND_TIME; i++) {
|
queryWrapper.select("op_cmd").eq("dev_id",deviceId).last(" limit 1");
|
FGCDFileDownload download = mapper.selectOne(queryWrapper);
|
if(download.getOp_cmd() == FBS9100_ComBase.CMD_ReadFBDFile_ACK){
|
return true;
|
}
|
try {
|
sleep(SuperConstant.CMD_SEND_INTERVAL_TIME);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
return false;
|
}
|
|
public boolean sendCmdToA059DownloadFile(FGCDFileDownload download) {
|
UpdateWrapper<FGCDFileDownload> wrapper = Wrappers.update();
|
wrapper.set("op_cmd", FBS9100_ComBase.CMD_DownLoadFBDFile).set("BattGroupId",download.getBattGroupId())
|
.set("download_flag1",download.getDownload_flag1())
|
.set("download_flag2",download.getDownload_flag2())
|
.set("download_flag3",download.getDownload_flag3())
|
.set("download_flag4",download.getDownload_flag4())
|
.set("download_flag5",download.getDownload_flag5())
|
.set("download_flag6",download.getDownload_flag6())
|
.set("download_flag7",download.getDownload_flag7())
|
.set("download_flag8",download.getDownload_flag8())
|
.eq("dev_id",download.getDev_id());
|
mapper.update(null,wrapper);
|
|
QueryWrapper<FGCDFileDownload> queryWrapper = Wrappers.query();
|
for (int i = 0; i < SuperConstant.CMD_SEND_TIME*2; i++) {
|
queryWrapper.select("op_cmd").eq("dev_id",download.getDev_id()).eq("BattGroupId",download.getBattGroupId()).last(" limit 1");
|
FGCDFileDownload download2 = mapper.selectOne(queryWrapper);
|
if(download2.getOp_cmd() == FBS9100_ComBase.CMD_DownLoadFBDFile_ACK){
|
return true;
|
}
|
try {
|
sleep(SuperConstant.CMD_SEND_INTERVAL_TIME);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
return false;
|
}
|
}
|