From ce2d24454495d6f145dc8af7936b31541b2fdfa3 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期三, 06 八月 2025 13:29:47 +0800 Subject: [PATCH] 保存一个版本 --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/ReportThirdScheduler.java | 29 +++++ zy-acs-manager/pom.xml | 7 + zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/HttpHandler.java | 213 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 248 insertions(+), 1 deletions(-) diff --git a/zy-acs-manager/pom.xml b/zy-acs-manager/pom.xml index c98e97f..dafba19 100644 --- a/zy-acs-manager/pom.xml +++ b/zy-acs-manager/pom.xml @@ -160,6 +160,13 @@ <!-- <version>1.0.0-M2.1</version>--> <!-- </dependency>--> + <!-- okHttp3 --> + <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>okhttp</artifactId> + <version>3.10.0</version> + </dependency> + </dependencies> <build> diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/ReportThirdScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/ReportThirdScheduler.java index 1d8ada4..aa94167 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/ReportThirdScheduler.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/ReportThirdScheduler.java @@ -1,10 +1,13 @@ package com.zy.acs.manager.core.scheduler; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.core.service.MainLockWrapService; import com.zy.acs.manager.core.service.MainService; import com.zy.acs.manager.core.service.TrafficService; +import com.zy.acs.manager.core.utils.HttpHandler; import com.zy.acs.manager.manager.entity.TaskReport; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.service.ConfigService; @@ -14,6 +17,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.io.IOException; import java.util.List; @Slf4j @@ -24,6 +28,9 @@ @Autowired private TaskReportService taskReportService; + @Autowired + private ConfigService configService; + // @Scheduled(fixedDelay = 1000) public void execute() { @@ -31,11 +38,31 @@ // for (TaskReport taskReport : list) { // report(taskReport); // } + + String wmsUrl = configService.getVal("WMS_URL", String.class); + String wmsPath = configService.getVal("WMS_PATH", String.class); } @Transactional - public void report(TaskReport taskReport) { + public void report(TaskReport taskReport,String wmsUrl,String wmsPath) { //TODO 鍘熷厛搴旇璋冪敤鎺ュ彛锛岀幇鍦ㄧ洿鎺ヤ慨鏀规暟鎹� + String response = null; + try { + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(wmsPath) + .setJson(JSON.toJSONString(taskReport)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + } + } catch (IOException e) { + throw new RuntimeException(e); + } + JSONObject jsonObject = JSON.parseObject(response); } + + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/HttpHandler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/HttpHandler.java new file mode 100644 index 0000000..18d0c60 --- /dev/null +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/HttpHandler.java @@ -0,0 +1,213 @@ +package com.zy.acs.manager.core.utils; + + +import okhttp3.*; + +import java.io.IOException; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +/** + * Http鍗忚瀹㈡埛绔� + * @author luxiaotao + * @date 2018-9-27 + */ +public class HttpHandler { + + private static final Integer DEFAULT_TIMEOUT_SECONDS = 5; + private static final MediaType MEDIA_TYPE = MediaType.parse("application/json;charset=utf-8"); + + private String uri; + private String path; + private String json; + private Map<String, Object> params; + private Map<String, Object> headers; + private boolean https; + private Integer timeout; + private TimeUnit timeUnit; + + public HttpHandler(Builder builder){ + this.uri = builder.uri; + this.path = builder.path; + this.json = builder.json; + this.params = builder.params; + this.headers = builder.headers; + this.https = builder.https; + this.timeout = builder.timeout; + this.timeUnit = builder.timeUnit; + } + + /** + * GET璇锋眰鎵ц + * @return the HttpHandler response + */ + public String doGet() throws IOException { + String url = paramsToUrl(uri, path, params, https); + Request.Builder headerBuilder = new Request.Builder(); + if (headers != null && headers.size()>0){ + for (Map.Entry<String, Object> entry : headers.entrySet()){ + headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue())); + } + } + Request request = headerBuilder.url(url).build(); + Response response = getClient(timeout, timeUnit).newCall(request).execute(); + return response.isSuccessful() ? response.body().string() : null; + } + + /** + * POST璇锋眰鎵ц + * @return the HttpHandler response + */ + public String doPost() throws IOException { + Request request; + Request.Builder headerBuilder = new Request.Builder(); + if (headers != null && headers.size()>0){ + for (Map.Entry<String, Object> entry : headers.entrySet()){ + headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue())); + } + } + if (json == null || "".equals(json)){ + FormBody.Builder builder = new FormBody.Builder(); + for (Map.Entry<String, Object> entry : params.entrySet()){ + builder.add(entry.getKey(), String.valueOf(entry.getValue())); + } + FormBody body = builder.build(); + request = headerBuilder + .url((https?"https://":"http://")+uri+path) + .post(body) + .build(); + } else { + RequestBody body = RequestBody.create(MEDIA_TYPE, json); + Request.Builder builder = headerBuilder.url((https?"https://":"http://")+uri+path); + builder.header("Content-Type", "application/json;charset=UTF-8"); + request = builder.post(body).build(); + + } + Call call = getClient(timeout, timeUnit).newCall(request); + Response response = call.execute(); + return response.body().string(); + + } + + /** + * get璇锋眰鍙傛暟鎷兼帴鏂规硶 + * @return 璇锋眰琛� + */ + private String paramsToUrl(String uri, String path, Map<String, Object> params, boolean isHttps) { + StringBuilder res = new StringBuilder(); + res.append(isHttps ? "https://" : "http://"); + res.append(uri); + if (path.length() > 0 && !(path.charAt(0) == '/')){ + res.append("/"); + } + res.append(path); + Optional.ofNullable(params).ifPresent( + args -> { + res.append("?"); + args.forEach((key, value) -> { + res.append(key); + res.append("="); + res.append(value); + res.append("&"); + }); + } + ); + String url = res.toString(); + if ("&".equals(url.substring(url.length()-1, url.length()))){ + url = url.substring(0, url.length()-1); + } + return url; + } + + /** + * 鑾峰彇 okHttpClient + * @return the HttpHandler instance + */ + private OkHttpClient getClient(Integer timeout, TimeUnit timeUnit){ + return new OkHttpClient + .Builder() + .connectTimeout(timeout, timeUnit) + .readTimeout(timeout, timeUnit) + .build(); + } + + /** + * Http鍗忚鎶ユ枃寤洪�犺�� + */ + public static class Builder { + + private String uri; + private String path; + private String json; + private Map<String, Object> params; + private Map<String, Object> headers; + private boolean https; + private Integer timeout; + private TimeUnit timeUnit; + + { + // 榛樿5s瓒呮椂 + timeout = DEFAULT_TIMEOUT_SECONDS; + timeUnit = TimeUnit.SECONDS; + path = ""; + } + + /** + * 寤洪�犲櫒 + * @return the HttpHandler instance + */ + public HttpHandler build(){ + if (null == this.uri || "".equals(this.uri)){ + throw new RuntimeException("uri is null"); + } + if (this.uri.startsWith("http://")){ + this.uri = this.uri.substring(6,uri.length()); + } else if (this.uri.startsWith("https://")){ + this.uri = this.uri.substring(7,uri.length()); + } + return new HttpHandler(this); + } + + public Builder setUri(String uri) { + this.uri = uri; + return this; + } + + public Builder setPath(String path) { + if (!path.startsWith("/")){ + path = "/" + path; + } + this.path = path; + return this; + } + + public Builder setTimeout(Integer timeout, TimeUnit timeUnit) { + this.timeout = timeout; + this.timeUnit = timeUnit; + return this; + } + + public Builder setParams(Map<String, Object> params) { + this.params = params; + return this; + } + + public Builder setHeaders(Map<String, Object> headers) { + this.headers = headers; + return this; + } + + public Builder setHttps(boolean https) { + this.https = https; + return this; + } + + public Builder setJson(String json) { + this.json = json; + return this; + } + + } + +} -- Gitblit v1.9.1