czt
2026-01-08 4c58f8f132adf830917b6b8f49f8c8de87aaf748
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.fzzy.igds.quantity.command;
 
import com.fzzy.igds.quantity.dto.IoMessage;
import com.fzzy.igds.request.QuantityRequest;
import com.ruoyi.common.core.redis.RedisCache;
import lombok.extern.slf4j.Slf4j;
 
import java.util.concurrent.Callable;
 
/**
 * @Description 数量检测进度查询,默认执行三次查询和三次抓拍
 * @Author CZT
 * @Date 2026/01/08 16:36
 */
@Slf4j
public class QueryProgressTask implements Callable<String> {
 
    private RedisCache redisUtil;
 
    private String redisKey;
 
    private BhznRemoteQuantityImpl remoteQuantityService;
 
    public QueryProgressTask() {
        super();
    }
 
    public QueryProgressTask(RedisCache 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.getCacheObject(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);
 
            } catch (Exception e) {
                log.error("平台---->>数量检测:子命令执行出现异常:" + e.getMessage());
                log.error(e.getMessage(), e);
            }
        }
        
        return "SUCCESS";
    }
 
}