CZT
2023-10-08 ae81799a3b2a89d56280ee53db7f6789cb7842f9
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
66
67
68
69
70
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";
    }
 
}