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