|
@@ -3,7 +3,14 @@ package org.springblade.archive.controller;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
|
+import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
+import org.apache.http.HttpResponse;
|
|
|
|
+import org.apache.http.client.HttpClient;
|
|
|
|
+import org.apache.http.client.methods.HttpGet;
|
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
import org.springblade.archive.service.IArchiveAutoPdfService;
|
|
import org.springblade.archive.service.IArchiveAutoPdfService;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.feign.ArchiveFileClient;
|
|
import org.springblade.business.feign.ArchiveFileClient;
|
|
@@ -14,13 +21,22 @@ import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
import org.springblade.resource.feign.CommonFileClient;
|
|
import org.springblade.resource.feign.CommonFileClient;
|
|
import org.springblade.resource.feign.IOSSClient;
|
|
import org.springblade.resource.feign.IOSSClient;
|
|
import org.springblade.resource.feign.NewIOSSClient;
|
|
import org.springblade.resource.feign.NewIOSSClient;
|
|
-import org.springframework.http.HttpStatus;
|
|
|
|
|
|
+import org.springframework.core.io.FileSystemResource;
|
|
|
|
+import org.springframework.http.*;
|
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
+import org.springframework.util.MultiValueMap;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
|
|
+import java.net.URI;
|
|
|
|
+import java.nio.file.Files;
|
|
|
|
+import java.nio.file.Path;
|
|
|
|
+import java.nio.file.StandardOpenOption;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -107,4 +123,74 @@ public class ArchiveMeasurementController {
|
|
}
|
|
}
|
|
return R.success(ResultCode.SUCCESS);
|
|
return R.success(ResultCode.SUCCESS);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @PostMapping("/test")
|
|
|
|
+ @ApiOperation(value = "上传文件", notes = "上传文件")
|
|
|
|
+ public R test() {
|
|
|
|
+ String projectName ="重庆试验项目";
|
|
|
|
+ String contractName ="第一合同段";
|
|
|
|
+ String periodName ="第三期";
|
|
|
|
+ String fileName ="交工证书";
|
|
|
|
+ String fileTime ="2023.03.11";
|
|
|
|
+ String dutyUser ="设计单位";
|
|
|
|
+ String fileUrl ="https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com//upload/20230908/8287a3eee944e8fd8dabedeeed961432.pdf";
|
|
|
|
+ String dstUrl ="http://127.0.0.1:8090/blade-archive/archiveMeasurement/upFile";
|
|
|
|
+ sendFileToArchive(projectName,contractName,periodName,fileName,fileTime,dutyUser,fileUrl,dstUrl);
|
|
|
|
+ return R.success(ResultCode.SUCCESS);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void sendFileToArchive(String projectName, String contractName, String periodName, String fileName,
|
|
|
|
+ String fileTime, String dutyUser, String fileUrl, String dstUrl) {
|
|
|
|
+ try {
|
|
|
|
+ // 使用 RestTemplate 下载文件
|
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
|
+ ResponseEntity<byte[]> response = restTemplate.getForEntity(fileUrl, byte[].class);
|
|
|
|
+ if (response.getStatusCode() == HttpStatus.OK) {
|
|
|
|
+ byte[] fileBytes = response.getBody();
|
|
|
|
+
|
|
|
|
+ // 将下载的文件保存到临时文件
|
|
|
|
+ Path tempFilePath = Files.createTempFile("temp-", "-" + fileName);
|
|
|
|
+ Files.write(tempFilePath, fileBytes, StandardOpenOption.CREATE);
|
|
|
|
+
|
|
|
|
+ // 创建请求参数
|
|
|
|
+ MultiValueMap<String, Object> requestParams = new LinkedMultiValueMap<>();
|
|
|
|
+ requestParams.add("projectName", projectName);
|
|
|
|
+ requestParams.add("contractName", contractName);
|
|
|
|
+ requestParams.add("periodName", periodName);
|
|
|
|
+ requestParams.add("fileName", fileName);
|
|
|
|
+ requestParams.add("fileTime", fileTime);
|
|
|
|
+ requestParams.add("dutyUser", dutyUser);
|
|
|
|
+ requestParams.add("fileData", new FileSystemResource(tempFilePath.toFile()));
|
|
|
|
+
|
|
|
|
+ // 发起 POST 请求
|
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
|
+ headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
|
|
|
+ HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestParams, headers);
|
|
|
|
+ RestTemplate postRestTemplate = new RestTemplate();
|
|
|
|
+ ResponseEntity<String> postResponse = postRestTemplate.exchange(
|
|
|
|
+ URI.create(dstUrl),
|
|
|
|
+ HttpMethod.POST,
|
|
|
|
+ requestEntity,
|
|
|
|
+ String.class
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ // 处理响应结果
|
|
|
|
+ if (postResponse.getStatusCode() == HttpStatus.OK) {
|
|
|
|
+ System.out.println("File sent to archive successfully.");
|
|
|
|
+ } else {
|
|
|
|
+ System.out.println("Failed to send file to archive. Response: " + postResponse.getBody());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 删除临时文件
|
|
|
|
+ Files.delete(tempFilePath);
|
|
|
|
+ } else {
|
|
|
|
+ System.out.println("Failed to download file from the provided URL: " + fileUrl);
|
|
|
|
+ }
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|