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