diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java index 55baf583a3..ab38563025 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java @@ -489,7 +489,7 @@ public class HttpClientManager { if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { InputStream is = response.getEntity().getContent(); FileItemFactory factory = new DiskFileItemFactory(16, null); - String textFieldName = "uploadfile"; + String textFieldName = "file"; item = factory.createItem(textFieldName, ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName); OutputStream os = item.getOutputStream(); diff --git a/epmet-module/epmet-third/epmet-third-client/pom.xml b/epmet-module/epmet-third/epmet-third-client/pom.xml index 3899202cf7..37b51d9479 100644 --- a/epmet-module/epmet-third/epmet-third-client/pom.xml +++ b/epmet-module/epmet-third/epmet-third-client/pom.xml @@ -19,6 +19,12 @@ com.epmet epmet-commons-tools 2.0.0 + + + feign-form-spring + io.github.openfeign.form + + com.github.binarywang @@ -32,6 +38,21 @@ 2.0.0 compile + + io.github.openfeign.form + feign-form + 3.8.0 + + + io.github.openfeign.form + feign-form-spring + 3.8.0 + + + commons-fileupload + commons-fileupload + 1.3.3 + diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index 932f7ecc2f..125bcb0f48 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -6,8 +6,13 @@ import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.EpmetThirdOpenFeignClientFallback; +import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import feign.codec.Encoder; +import feign.form.spring.SpringFormEncoder; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.context.annotation.Bean; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -19,8 +24,10 @@ import java.util.List; * @author zhaoqifeng * @date 2021/3/18 14:18 */ -// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = GovProjectOpenFeignClientFallback.class,url = "localhost:8110") -@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class) +// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class,configuration = +// EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") +@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class, configuration = + EpmetThirdOpenFeignClient.MultipartSupportConfig.class) public interface EpmetThirdOpenFeignClient { /** * 请求项目协助 @@ -36,12 +43,22 @@ public interface EpmetThirdOpenFeignClient { /** * 上传文件 * @author zhaoqifeng - * @date 2021/3/25 16:10 + * @date 2021/3/25 18:36 * @param file - * @param formDTO + * @param customerId + * @param platformId * @return com.epmet.commons.tools.utils.Result */ - @PostMapping("third/project/uploadfile") - Result uploadFile(@RequestParam("file") MultipartFile file, UploadFileFormDTO formDTO); + @PostMapping(value= "third/project/uploadfile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + Result uploadFile(@RequestPart("file") MultipartFile file, @RequestParam("customerId") String customerId, @RequestParam( + "platformId") String platformId); + + class MultipartSupportConfig { + @Bean + public Encoder feignFormEncoder() { + return new SpringFormEncoder(); + } + } + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java index bbcd8a73ad..89f2245fce 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java @@ -38,13 +38,15 @@ public class EpmetThirdOpenFeignClientFallback implements EpmetThirdOpenFeignCli * 上传文件 * * @param file - * @param formDTO + * @param customerId + * @param platformId * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng - * @date 2021/3/25 16:10 + * @date 2021/3/25 18:36 */ @Override - public Result uploadFile(MultipartFile file, UploadFileFormDTO formDTO) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "uploadFile", formDTO); + public Result uploadFile(MultipartFile file, String customerId, String platformId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "uploadFile", customerId); } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java index d645bac2b6..9eb8bd06bb 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java @@ -9,6 +9,7 @@ import com.epmet.dto.form.TPFDemoFormDTO; import com.epmet.dto.result.UploadFileResultDTO; import com.epmet.service.ProjectService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -55,13 +56,17 @@ public class ProjectController { * @author zhaoqifeng * @date 2021/3/25 11:13 * @param file - * @param formDTO + * @param customerId + * @param platformId * @return com.epmet.commons.tools.utils.Result */ - @PostMapping("uploadfile") - public Result uploadFile(@RequestParam("file") MultipartFile file, UploadFileFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); + @PostMapping(value= "uploadfile" , consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public Result uploadFile(@RequestPart("file") MultipartFile file, @RequestParam("customerId") String customerId, @RequestParam("platformId") String platformId) { + UploadFileFormDTO formDTO = new UploadFileFormDTO(); formDTO.setFile(file); + formDTO.setPlatformId(platformId); + formDTO.setCustomerId(customerId); + ValidatorUtils.validateEntity(formDTO); UploadFileResultDTO result = projectService.uploadFile(formDTO); return new Result().ok(result); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 4042b79217..4d9344ac43 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -2091,7 +2091,8 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + uploadFileFormDTO.setFile(multipartFileResult.getData()); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2112,7 +2113,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2133,7 +2134,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2152,7 +2153,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2207,7 +2208,8 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), + projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2226,7 +2228,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2245,7 +2247,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2264,7 +2266,7 @@ public class ProjectServiceImpl extends BaseServiceImpl uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(), uploadFileFormDTO); + Result uploadResult = epmetThirdOpenFeignClient.uploadFile(multipartFileResult.getData(),projectStaff.getCustomerId(), formDTO.getPlatformId()); if (!uploadResult.success()) { throw new RenException(uploadResult.getCode(), uploadResult.getMsg()); } @@ -2440,6 +2442,7 @@ public class ProjectServiceImpl extends BaseServiceImpl