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 { 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"; } }