Browse Source

2026-08-04

TID接口
master
fengyuan_yang 2 days ago
parent
commit
322f46d7df
  1. 8
      src/main/java/com/gaotao/config/RestTemplateConfig.java
  2. 39
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java

8
src/main/java/com/gaotao/config/RestTemplateConfig.java

@ -15,16 +15,16 @@ public class RestTemplateConfig {
/**
* ERP接口调用超时配置
* - 连接超时60秒建立连接的最长等待时间
* - 读取超时120秒等待ERP接口处理响应的最长时间ERP处理较慢需要更长等待
* - 读取超时600秒日志上传等大文件场景接口处理可能较慢
*/
@Bean
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
// 设置连接超时时间毫秒- 60秒
factory.setConnectTimeout(60000);
// 设置读取超时时间毫秒- 120秒
// 用于等待ERP接口处理响应ERP接口处理较慢需要较长的等待时间
factory.setReadTimeout(120000);
// 设置读取超时时间毫秒- 600秒
// 用于等待MES/ERP接口处理响应大文件上传场景需要更长等待时间
factory.setReadTimeout(600000);
return new RestTemplate(factory);
}

39
src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java

@ -17,7 +17,7 @@ import com.gaotao.modules.shopOrder.entity.OperatorData;
import com.gaotao.modules.sys.controller.AbstractController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
@ -35,6 +35,7 @@ import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.util.UriComponentsBuilder;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.util.HashMap;
@ -2452,15 +2453,7 @@ public class ScheduleController extends AbstractController {
body.add("date", date);
body.add("shift", shift);
body.add("operatorNo", operatorNo);
final byte[] fileBytes = log.getBytes();
final String fileName = StringUtils.hasText(log.getOriginalFilename()) ? log.getOriginalFilename() : "upload.log";
body.add("log", new ByteArrayResource(fileBytes) {
@Override
public String getFilename() {
return fileName;
}
});
body.add("log", buildMultipartFileResource(log, "upload.log"));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<String> response = restTemplate.exchange(
@ -2555,15 +2548,7 @@ public class ScheduleController extends AbstractController {
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("machineNo", machineNo);
body.add("date", date);
final byte[] fileBytes = log.getBytes();
final String fileName = StringUtils.hasText(log.getOriginalFilename()) ? log.getOriginalFilename() : "upload_mt.log";
body.add("log", new ByteArrayResource(fileBytes) {
@Override
public String getFilename() {
return fileName;
}
});
body.add("log", buildMultipartFileResource(log, "upload_mt.log"));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<String> response = restTemplate.exchange(
@ -2585,6 +2570,22 @@ public class ScheduleController extends AbstractController {
}
}
private InputStreamResource buildMultipartFileResource(MultipartFile file, String defaultFileName) throws IOException {
final String fileName = StringUtils.hasText(file.getOriginalFilename()) ? file.getOriginalFilename() : defaultFileName;
final long fileSize = file.getSize();
return new InputStreamResource(file.getInputStream()) {
@Override
public String getFilename() {
return fileName;
}
@Override
public long contentLength() {
return fileSize;
}
};
}
private String buildMesApiUrl(String path) {
String baseUrl = StringUtils.hasText(mesLogsBaseUrl) ? mesLogsBaseUrl.trim() : "http://logs.bt.in/api/logs";
if (baseUrl.endsWith("/")) {

Loading…
Cancel
Save