|
@@ -1,111 +0,0 @@
|
|
|
-package cn.cslg.pas.service;
|
|
|
-
|
|
|
-import cn.cslg.pas.common.model.dto.FMSDeleteFileDTO;
|
|
|
-import com.google.gson.Gson;
|
|
|
-import lombok.RequiredArgsConstructor;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import okhttp3.*;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.FileCopyUtils;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
-
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-
|
|
|
-import static cn.hutool.core.io.FileUtil.getMimeType;
|
|
|
-
|
|
|
-/**
|
|
|
- * Okhttp调用FMS上传文件接口
|
|
|
- * @Author xiexiang
|
|
|
- * @Date 2023/8/10
|
|
|
- */
|
|
|
-@RequiredArgsConstructor
|
|
|
-@Slf4j
|
|
|
-@Service
|
|
|
-public class FileManagerService {
|
|
|
- @Value("${authorUrl}")
|
|
|
- private String PCSUrl;
|
|
|
- @Value("${OPSUrl}")
|
|
|
- private String OPSUrl;
|
|
|
- @Value("${PASUrl}")
|
|
|
- private String PASUrl;
|
|
|
- @Value("${RMSUrl}")
|
|
|
- private String RMSUrl;
|
|
|
- @Value("${FMSUrl}")
|
|
|
- private String FMSUrl;
|
|
|
-
|
|
|
- public String uploadFile(List<MultipartFile> multipartFiles, Integer sourceId) throws IOException {
|
|
|
- List<File> files = new ArrayList<>();
|
|
|
- for(MultipartFile multipartFile:multipartFiles){
|
|
|
- File file = new File(multipartFile.getOriginalFilename());
|
|
|
- FileCopyUtils.copy(multipartFile.getBytes(),file);
|
|
|
- files.add(file);
|
|
|
- }
|
|
|
- MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
|
|
|
- .setType(MultipartBody.FORM);
|
|
|
- for(File file:files){
|
|
|
- //根据文件名获取文件的MIME类型
|
|
|
- String mimeType = getMimeType(file.getPath());
|
|
|
- multipartBodyBuilder.addFormDataPart("files",file.getName(),RequestBody.create(MediaType.parse(mimeType), file));
|
|
|
- }
|
|
|
- RequestBody requestBody =multipartBodyBuilder
|
|
|
- .addFormDataPart("sourceId", String.valueOf(sourceId))
|
|
|
- .build();
|
|
|
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
|
|
- .connectTimeout(60, TimeUnit.SECONDS)
|
|
|
- .writeTimeout(60, TimeUnit.SECONDS)
|
|
|
- .readTimeout(60, TimeUnit.SECONDS)
|
|
|
- .build();
|
|
|
- Request request = new Request.Builder()
|
|
|
- .url(FMSUrl + "/fileManager/uploadSystemFile")
|
|
|
- .post(requestBody)
|
|
|
- .build();
|
|
|
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 调用文件系统查询接口
|
|
|
- * @return
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- public String getSystemFileFromFMS(List<Integer> tenantIds) throws IOException {
|
|
|
- String param = new Gson().toJson(tenantIds);
|
|
|
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
|
|
- .connectTimeout(60, TimeUnit.SECONDS)
|
|
|
- .writeTimeout(60, TimeUnit.SECONDS)
|
|
|
- .readTimeout(60, TimeUnit.SECONDS)
|
|
|
- .build();
|
|
|
- Request request = new Request.Builder()
|
|
|
- .url(FMSUrl + "/fileManager/getFileData")
|
|
|
- .post(requestBody)
|
|
|
- .build();
|
|
|
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 调用文件系统删除接口
|
|
|
- * @return
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- public String deleteFileFromFMS(FMSDeleteFileDTO fmsDeleteFileDTO) throws IOException {
|
|
|
- String param = new Gson().toJson(fmsDeleteFileDTO);
|
|
|
- RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
|
|
|
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
|
|
- .connectTimeout(60, TimeUnit.SECONDS)
|
|
|
- .writeTimeout(60, TimeUnit.SECONDS)
|
|
|
- .readTimeout(60, TimeUnit.SECONDS)
|
|
|
- .build();
|
|
|
- Request request = new Request.Builder()
|
|
|
- .url(FMSUrl + "/fileManager/deleteSystemFile")
|
|
|
- .post(requestBody)
|
|
|
- .build();
|
|
|
- return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
- }
|
|
|
-
|
|
|
-}
|