jiazx0107@163.com
2023-05-29 135e1039d78e767536d91bcbce04d2efedb2f7b2
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.ld.igds.protocol.weight;
 
import com.alibaba.fastjson.JSONObject;
import com.ld.igds.inout.dto.ApiInoutData;
import com.ld.igds.util.HttpUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
 
import java.util.concurrent.Callable;
 
 
/**
 * 子任务,用于远程调用称重网关,且不影响正常业务逻辑
 */
@Slf4j
public class WeightGatewayRemoteTask implements Callable<String> {
 
    private ApiInoutData param;
 
    private String[] actionCodes;
 
 
    public ApiInoutData getParam() {
        return param;
    }
 
    public void setParam(ApiInoutData param) {
        this.param = param;
    }
 
    public String[] getActionCode() {
        return actionCodes;
    }
 
    public void setActionCode(String[] actionCode) {
        this.actionCodes = actionCodes;
    }
 
    public WeightGatewayRemoteTask() {
    }
 
    public WeightGatewayRemoteTask(ApiInoutData param, String[] actionCodes) {
        this.param = param;
        this.actionCodes = actionCodes;
    }
 
    @Override
    public String call() throws Exception {
 
 
        String url;
        JSONObject json;
 
        for (String actionCode : actionCodes) {
 
            url = "http://" + param.getIp() + ":" + param.getPort();
            json = new JSONObject();
            if (WeightUtil.ACTION_CODE_10.equals(actionCode)) {
                url += "/white-plate";
                json.put("actionCode", WeightUtil.ACTION_CODE_10);
                json.put("plateNum", param.getPlateNum());
                json.put("time", DateFormatUtils.format(param.getTime(), "yyyyMMddHHmmss"));
            }
 
            if (WeightUtil.ACTION_CODE_11.equals(actionCode)) {
                url += "/white-plate";
                json.put("actionCode", WeightUtil.ACTION_CODE_11);
                json.put("plateNum", param.getPlateNum());
                json.put("time", DateFormatUtils.format(param.getTime(), "yyyyMMddHHmmss"));
 
            }
 
            if (WeightUtil.ACTION_CODE_30.equals(actionCode)) {
                url += "/radio";
                json.put("actionCode", WeightUtil.ACTION_CODE_30);
                json.put("content", param.getMsg());
                json.put("repeat", param.getRepeat());
                json.put("time", DateFormatUtils.format(param.getTime(), "yyyyMMddHHmmss"));
            }
 
            if (WeightUtil.ACTION_CODE_60.equals(actionCode)) {
                url += "/progress";
                json.put("actionCode", WeightUtil.ACTION_CODE_60);
                json.put("progress", "30");
                json.put("time", DateFormatUtils.format(param.getTime(), "yyyyMMddHHmmss"));
            }
 
            log.debug("----调用地磅控制器-----{}-{}", url, json.toString());
 
            HttpUtils.doPostJson(url, json.toJSONString());
 
            Thread.sleep(1000);
        }
 
        return "SUCCESS";
    }
 
}