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 com.whyc.util.ActionUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
|
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) {
|
boolean exeRes = false;
|
UpdateWrapper<FGCDFileDownload> wrapper = Wrappers.update();
|
wrapper.set("op_cmd", FBS9100_ComBase.CMD_StopFile).eq("dev_id",deviceId);
|
mapper.update((FGCDFileDownload) ActionUtil.objeNull,wrapper);
|
|
QueryWrapper<FGCDFileDownload> queryWrapper = Wrappers.query();
|
for (int i = 0; i < SuperConstant.CMD_SEND_TIME; i++) {
|
queryWrapper.eq("dev_id",deviceId).last(" limit 1");
|
FGCDFileDownload download = mapper.selectOne(queryWrapper);
|
if(FBS9100_ComBase.CMD_StopFile_ACK == download.getOpCmd()){
|
exeRes = true;
|
}
|
try {
|
sleep(SuperConstant.CMD_SEND_INTERVAL_TIME);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
return exeRes;
|
}
|
|
public List sendCmdToA059ReadFile(Integer deviceId, Integer fileIndex) {
|
List<Object> resList = new LinkedList<>();
|
UpdateWrapper<FGCDFileDownload> wrapper = Wrappers.update();
|
wrapper.set("op_cmd", FBS9100_ComBase.CMD_ReadFBDFile).set("file_index",fileIndex).eq("dev_id",deviceId);
|
mapper.update((FGCDFileDownload) ActionUtil.objeNull,wrapper);
|
|
QueryWrapper<FGCDFileDownload> queryWrapper = Wrappers.query();
|
for (int i = 0; i < SuperConstant.CMD_SEND_TIME; i++) {
|
queryWrapper.eq("dev_id",deviceId).last(" limit 1");
|
FGCDFileDownload download = mapper.selectOne(queryWrapper);
|
if(FBS9100_ComBase.CMD_ReadFBDFile_ACK == download.getOpCmd()){
|
resList.add(true);
|
resList.add(download);
|
return resList;
|
}
|
try {
|
sleep(SuperConstant.CMD_SEND_INTERVAL_TIME);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
resList.add(false);
|
return resList;
|
}
|
|
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.getDownloadFlag1())
|
.set("download_flag2",download.getDownloadFlag2())
|
.set("download_flag3",download.getDownloadFlag3())
|
.set("download_flag4",download.getDownloadFlag4())
|
.set("download_flag5",download.getDownloadFlag5())
|
.set("download_flag6",download.getDownloadFlag6())
|
.set("download_flag7",download.getDownloadFlag7())
|
.set("download_flag8",download.getDownloadFlag8())
|
.eq("dev_id",download.getDevId());
|
mapper.update((FGCDFileDownload) ActionUtil.objeNull,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.getDevId()).eq("BattGroupId",download.getBattGroupId()).last(" limit 1");
|
List<Map<String, Object>> downloadMap = mapper.selectMaps(queryWrapper);
|
int op_cmd = (int) downloadMap.get(0).get("op_cmd");
|
if(FBS9100_ComBase.CMD_DownLoadFBDFile_ACK == op_cmd){
|
return true;
|
}
|
try {
|
sleep(SuperConstant.CMD_SEND_INTERVAL_TIME);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
return false;
|
}
|
}
|