package com.ld.igds.io.fzzy.command;
|
|
import com.ld.igds.io.fzzy.dto.IoMessage;
|
import com.ld.igds.io.request.QuantityRequest;
|
import com.ld.igds.util.RedisUtil;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.util.concurrent.Callable;
|
|
/**
|
* @Desc: 数量检测进度查询,默认执行三次查询和三次抓拍
|
* @author: Andy
|
* @update-time: 2022/12/23
|
*/
|
@Slf4j
|
public class QueryProgressTask implements Callable<String> {
|
|
private RedisUtil redisUtil;
|
|
private String redisKey;
|
|
private BhznRemoteQuantityImpl remoteQuantityService;
|
|
public QueryProgressTask() {
|
super();
|
}
|
|
public QueryProgressTask(RedisUtil redisUtil, BhznRemoteQuantityImpl remoteQuantityService, String redisKey) {
|
super();
|
this.redisUtil = redisUtil;
|
this.remoteQuantityService = remoteQuantityService;
|
this.redisKey = redisKey;
|
}
|
|
@Override
|
public String call() throws Exception {
|
|
int index = 1;
|
while (index <= 10) {
|
index++;
|
try {
|
Thread.sleep(1000 * 35);
|
QuantityRequest request = (QuantityRequest) redisUtil.get(redisKey);
|
if (null == request) {
|
index = 11;
|
log.debug("子命令执行进度查询结束:检测完成" );
|
return "SUCCESS";
|
}
|
|
IoMessage message = CommandBuilder.getInstance().build2003Message(request);
|
log.debug("平台---->>数量检测:子命令执行进度查询:" + message.toString());
|
remoteQuantityService.sendMsg(request.getIp(), request.getPort(), message);
|
|
Thread.sleep(1000 * 3);
|
|
|
// message = CommandBuilder.getInstance().build2006Message(request);
|
// log.debug("平台---->>数量检测:子命令执行抓拍:" + message.toString());
|
// remoteQuantityService.sendMsg(request.getIp(), request.getPort(), message);
|
|
} catch (Exception e) {
|
log.error("平台---->>数量检测:子命令执行出现异常:" + e.getMessage());
|
log.error(e.getMessage(), e);
|
}
|
}
|
|
return "SUCCESS";
|
}
|
|
}
|