Selaa lähdekoodia

删除cad结果和临时文件映射,改为通用异步结果和通用临时文件

欧阳劲驰 1 kuukausi sitten
vanhempi
commit
43172251cf

+ 15 - 15
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyCadConvertBizService.java

@@ -6,7 +6,7 @@ import com.shkpr.service.alambizplugin.components.GisSurveyCadConverter;
 import com.shkpr.service.alambizplugin.constants.CadEnum;
 import com.shkpr.service.alambizplugin.constants.GisSurveConvertStatusEnum;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
-import com.shkpr.service.alambizplugin.dto.GisSurveyCadConvertResult;
+import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
 import org.springframework.stereotype.Component;
 import org.springframework.util.concurrent.ListenableFuture;
 import org.springframework.web.multipart.MultipartFile;
@@ -30,7 +30,7 @@ public class GisSurveyCadConvertBizService {
     /**
      * 任务缓存
      */
-    private final static Map<String, ListenableFuture<GisSurveyCadConvertResult>> TASK_CACHE = new ConcurrentHashMap<>();
+    private final static Map<String, ListenableFuture<CommAsyncResult<String>>> TASK_CACHE = new ConcurrentHashMap<>();
     /**
      * 开始时间缓存
      */
@@ -58,9 +58,9 @@ public class GisSurveyCadConvertBizService {
      * @param outCadEnum 输出cad类型
      * @return 转换结果
      */
-    public GisSurveyCadConvertResult cadConvert(MultipartFile file, String convertId, CadEnum outCadEnum) {
+    public CommAsyncResult<String> cadConvert(MultipartFile file, String convertId, CadEnum outCadEnum) {
         //如已有结果,则直接返回
-        GisSurveyCadConvertResult result = getResult(convertId);
+        CommAsyncResult<String> result = getResult(convertId);
         if (result != null) return result;
 
         try {
@@ -70,13 +70,13 @@ public class GisSurveyCadConvertBizService {
             //启动转换
             startTask(convertId, inputStream, outCadEnum);
             //返回进行中
-            return GisSurveyCadConvertResult.inProgress(convertId, LocalDateTime.now());
+            return CommAsyncResult.inProgress(convertId, LocalDateTime.now());
         } catch (IOException e) {
             //打印报错信息
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
                     , String.format("获取输入流失败 转换id:%s error:%s", convertId, e)
             );
-            return GisSurveyCadConvertResult.fail(convertId);
+            return CommAsyncResult.fail(convertId);
         }
     }
 
@@ -86,18 +86,18 @@ public class GisSurveyCadConvertBizService {
      * @param convertId 转换id
      * @return 转换结果
      */
-    public GisSurveyCadConvertResult getResult(String convertId) {
+    public CommAsyncResult<String> getResult(String convertId) {
         //获取已存在的任务
-        ListenableFuture<GisSurveyCadConvertResult> previousFuture = TASK_CACHE.get(convertId);
+        ListenableFuture<CommAsyncResult<String>> previousFuture = TASK_CACHE.get(convertId);
 
         //判断完成
         if (previousFuture != null && previousFuture.isDone()) {
             try {
                 //获取结果
-                GisSurveyCadConvertResult thirdImportResult = previousFuture.get();
+                CommAsyncResult<String> thirdImportResult = previousFuture.get();
                 //如成功/失败,则直接返回
-                if (Objects.equals(thirdImportResult.getConvertStatus(), GisSurveConvertStatusEnum.FAIL.getCode()) ||
-                        Objects.equals(thirdImportResult.getConvertStatus(), GisSurveConvertStatusEnum.SUCCESS.getCode()))
+                if (Objects.equals(thirdImportResult.getStatus(), GisSurveConvertStatusEnum.FAIL.getCode()) ||
+                        Objects.equals(thirdImportResult.getStatus(), GisSurveConvertStatusEnum.SUCCESS.getCode()))
                     removeCache(convertId);
                 return thirdImportResult;
             } catch (InterruptedException | ExecutionException e) {
@@ -105,13 +105,13 @@ public class GisSurveyCadConvertBizService {
                 LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
                         , String.format("查询转换历史异常 转换id:%s error:%s", convertId, e)
                 );
-                return GisSurveyCadConvertResult.fail(convertId);
+                return CommAsyncResult.fail(convertId);
             }
         }
 
         //进行中判断(未完成且未清除)
         if (previousFuture != null && !previousFuture.isDone() && !previousFuture.isCancelled())
-            return GisSurveyCadConvertResult.inProgress(convertId, TIME_CACHE.get(convertId));
+            return CommAsyncResult.inProgress(convertId, TIME_CACHE.get(convertId));
 
         return null;
     }
@@ -125,13 +125,13 @@ public class GisSurveyCadConvertBizService {
      */
     private void startTask(String convertId, InputStream inputStream, CadEnum cadEnum) {
         //获取已存在的任务
-        ListenableFuture<GisSurveyCadConvertResult> previousFuture = TASK_CACHE.get(convertId);
+        ListenableFuture<CommAsyncResult<String>> previousFuture = TASK_CACHE.get(convertId);
         //已结束判断,删除缓存
         if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled())) {
             removeCache(convertId);
         }
         //异步执行cad转换查任务
-        ListenableFuture<GisSurveyCadConvertResult> checkFuture = cadConverter.cadConvert(convertId, inputStream, cadEnum);
+        ListenableFuture<CommAsyncResult<String>> checkFuture = cadConverter.cadConvert(convertId, inputStream, cadEnum);
         //缓存任务句柄
         TASK_CACHE.put(convertId, checkFuture);
         //缓存时间

+ 0 - 12
src/main/java/com/shkpr/service/alambizplugin/commproperties/GisSurveyCadConvertProperties.java

@@ -5,8 +5,6 @@ import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
-import java.time.Duration;
-
 /**
  * cad转换配置
  *
@@ -19,16 +17,6 @@ import java.time.Duration;
 @Component
 public class GisSurveyCadConvertProperties {
     /**
-     * 文件生命周期
-     */
-    private Duration fileLifecycle;
-
-    /**
-     * 资源路径
-     */
-    private String resourcePath;
-
-    /**
      * 栅格化最小宽度
      */
     private Integer rasterizationMinWidth;

+ 11 - 7
src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyCadConverter.java

@@ -11,10 +11,11 @@ import com.aspose.cad.imageoptions.*;
 import com.global.base.log.LogLevelFlag;
 import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.alambizplugin.commproperties.GisSurveyCadConvertProperties;
+import com.shkpr.service.alambizplugin.commproperties.TempFileProperties;
 import com.shkpr.service.alambizplugin.constants.CadEnum;
 import com.shkpr.service.alambizplugin.constants.GisSurveConvertStatusEnum;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
-import com.shkpr.service.alambizplugin.dto.GisSurveyCadConvertResult;
+import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Component;
@@ -42,11 +43,14 @@ public class GisSurveyCadConverter {
     private final String mStrClassName;
     private final String mBizType;
 
+    private final TempFileProperties tempFileProperties;
     private final GisSurveyCadConvertProperties cadConvertProperties;
 
-    public GisSurveyCadConverter(GisSurveyCadConvertProperties cadConvertProperties) {
+    public GisSurveyCadConverter(GisSurveyCadConvertProperties cadConvertProperties
+            , TempFileProperties tempFileProperties) {
         mStrClassName = "GisSurveyCadConverter";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
+        this.tempFileProperties = tempFileProperties;
         this.cadConvertProperties = cadConvertProperties;
     }
 
@@ -59,9 +63,9 @@ public class GisSurveyCadConverter {
      * @return 文件路径
      */
     @Async
-    public ListenableFuture<GisSurveyCadConvertResult> cadConvert(String convertId, InputStream inputStream, CadEnum cadEnum) {
+    public ListenableFuture<CommAsyncResult<String>> cadConvert(String convertId, InputStream inputStream, CadEnum cadEnum) {
         //构建返回
-        GisSurveyCadConvertResult result = GisSurveyCadConvertResult.fail(convertId);
+        CommAsyncResult<String> result = CommAsyncResult.fail(convertId);
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                 , String.format(
                         "开始执行cad转换,读取文件流;转换id:%s 输出类型:%s"
@@ -181,7 +185,7 @@ public class GisSurveyCadConverter {
         try {
             //文件路径
             final String fileName = convertId + "." + cadEnum.getSuffix();
-            final Path filePath = Paths.get(cadConvertProperties.getResourcePath() + fileName);
+            final Path filePath = Paths.get(tempFileProperties.getResourcePath() + fileName);
             //如存在,则删除
             if (Files.exists(filePath)) Files.delete(filePath);
 
@@ -196,9 +200,9 @@ public class GisSurveyCadConverter {
             image.save(filePath.toString(), options);
 
             //转换完成
-            result.setConvertStatus(GisSurveConvertStatusEnum.SUCCESS.getCode());
+            result.setStatus(GisSurveConvertStatusEnum.SUCCESS.getCode());
             result.setCompleteTime(LocalDateTime.now());
-            result.setPath(fileName);
+            result.setData(fileName);
 
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                     , String.format(

+ 1 - 6
src/main/java/com/shkpr/service/alambizplugin/configuration/WebMvcConfiguration.java

@@ -33,13 +33,11 @@ import java.util.TreeMap;
 @EnableWebMvc
 public class WebMvcConfiguration implements WebMvcConfigurer {
     private final GisSurveySystemCheckProperties systemCheckProperties;
-    private final GisSurveyCadConvertProperties cadConvertProperties;
     private final TempFileProperties tempFileProperties;
 
     public WebMvcConfiguration(GisSurveySystemCheckProperties systemCheckProperties
-    , GisSurveyCadConvertProperties cadConvertProperties,TempFileProperties tempFileProperties) {
+    , TempFileProperties tempFileProperties) {
         this.systemCheckProperties = systemCheckProperties;
-        this.cadConvertProperties = cadConvertProperties;
         this.tempFileProperties = tempFileProperties;
     }
 
@@ -51,9 +49,6 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
         //系统检查结果映射
         registry.addResourceHandler(ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_SYS_CHECK_RESULTS + "/**")
                 .addResourceLocations("file:" + systemCheckProperties.getResourcePath() + "/");
-        //cad转换文件映射
-        registry.addResourceHandler(ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_CAD_CONVERT_TEMPS + "/**")
-                .addResourceLocations("file:" + cadConvertProperties.getResourcePath() + "/");
         //临时文件映射
         registry.addResourceHandler(ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_TEMP_FILES + "/**")
                 .addResourceLocations("file:" + tempFileProperties.getResourcePath() + "/");

+ 0 - 1
src/main/java/com/shkpr/service/alambizplugin/constants/ApiURI.java

@@ -36,7 +36,6 @@ public class ApiURI {
     public static final String URI_XXX_THIRD_EXPORT = "third-export";
     public static final String URI_XXX_CAD_CONVERT = "cad-convert";
     public static final String URI_XXX_CAD_CONVERT_GET = "cad-convert-get";
-    public static final String URI_XXX_CAD_CONVERT_TEMPS = "cad-convert-temps";
     public static final String URI_XXX_TEMP_FILES = "temp-files";
 
     public static final String URI_ACCESS_TOKEN_CHECK = "/kpr-plugin/apply/access-token-check";

+ 15 - 16
src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java

@@ -22,7 +22,6 @@ import com.shkpr.service.alambizplugin.controllervalid.CommonParamValidSK;
 import com.shkpr.service.alambizplugin.dbdao.services.GisSurveyLayerApplyThirdCopyServiceImpl;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyService;
 import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
-import com.shkpr.service.alambizplugin.dto.GisSurveyCadConvertResult;
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
 import com.shkpr.service.alambizplugin.dto.GisSurveySystemCheckResult;
 import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
@@ -594,17 +593,17 @@ public class ApiGisSurveyController {
     /**
      * 执行第三方导出
      *
-     * @param request         request
-     * @param strClientType   客户端类型
-     * @param strUserAgent    用户信息
-     * @param jobId      任务id
+     * @param request       request
+     * @param strClientType 客户端类型
+     * @param strUserAgent  用户信息
+     * @param jobId         任务id
      * @return cad转换结果
      */
     @GetMapping(value = ApiURI.URI_XXX_THIRD_EXPORT)
     public ResponseRes<CommAsyncResult<String>> thirdExport(HttpServletRequest request
             , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
             , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
-            ,@RequestParam(value = "jobId", required = false) String jobId) throws SelfException {
+            , @RequestParam(value = "jobId", required = false) String jobId) throws SelfException {
         //入参校验
         final String URI_PATH = request.getRequestURI();
         final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
@@ -671,7 +670,7 @@ public class ApiGisSurveyController {
      * @return cad转换结果
      */
     @PostMapping(value = ApiURI.URI_XXX_CAD_CONVERT)
-    public ResponseRes<GisSurveyCadConvertResult> cadConvert(HttpServletRequest request
+    public ResponseRes<CommAsyncResult<String>> cadConvert(HttpServletRequest request
             , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
             , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
             , @RequestParam(value = "file", required = false) MultipartFile file
@@ -731,21 +730,21 @@ public class ApiGisSurveyController {
                         , convertId));
 
         //构建result
-        ResponseRes<GisSurveyCadConvertResult> resResult = new ResponseRes<>();
+        ResponseRes<CommAsyncResult<String>> resResult = new ResponseRes<>();
         resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
         //执行cad转换
-        GisSurveyCadConvertResult result = cadConvertBizService.cadConvert(file, convertId, outCadEnum);
+        CommAsyncResult<String> result = cadConvertBizService.cadConvert(file, convertId, outCadEnum);
 
         //执行成功
-        if (result != null && !Objects.equals(result.getConvertStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
+        if (result != null && !Objects.equals(result.getStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
             resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
             resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
             resResult.setResdata(result);
         }
         //执行失败
-        if (result != null && Objects.equals(result.getConvertStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
+        if (result != null && Objects.equals(result.getStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
             resResult.setResdata(result);
         }
 
@@ -772,7 +771,7 @@ public class ApiGisSurveyController {
      * @return cad转换结果
      */
     @GetMapping(value = ApiURI.URI_XXX_CAD_CONVERT_GET)
-    public ResponseRes<GisSurveyCadConvertResult> cadConvertGet(HttpServletRequest request
+    public ResponseRes<CommAsyncResult<String>> cadConvertGet(HttpServletRequest request
             , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
             , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
             , @RequestParam(value = "convertId", required = false) String convertId) throws SelfException {
@@ -799,21 +798,21 @@ public class ApiGisSurveyController {
                         , convertId));
 
         //构建result
-        ResponseRes<GisSurveyCadConvertResult> resResult = new ResponseRes<>();
+        ResponseRes<CommAsyncResult<String>> resResult = new ResponseRes<>();
         resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
         //执行cad转换
-        GisSurveyCadConvertResult result = cadConvertBizService.getResult(convertId);
+        CommAsyncResult<String> result = cadConvertBizService.getResult(convertId);
 
         //执行成功
-        if (result != null && !Objects.equals(result.getConvertStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
+        if (result != null && !Objects.equals(result.getStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
             resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
             resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
             resResult.setResdata(result);
         }
         //执行失败
-        if (result != null && Objects.equals(result.getConvertStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
+        if (result != null && Objects.equals(result.getStatus(), GisSurveConvertStatusEnum.FAIL.getCode())) {
             resResult.setResdata(result);
         }
         //不存在

+ 0 - 3
src/main/java/com/shkpr/service/alambizplugin/controllerfilter/JWTAuthenticationFilter.java

@@ -68,9 +68,6 @@ public class JWTAuthenticationFilter extends BasicAuthenticationFilter {
                 String.format("%s%s", request.getContextPath(), ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_SYS_CHECK_RESULTS + "/**"),
                 request.getRequestURI())
                 || this.mPathMatcher.match(
-                String.format("%s%s", request.getContextPath(), ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_CAD_CONVERT_TEMPS + "/**"),
-                request.getRequestURI())
-                || this.mPathMatcher.match(
                 String.format("%s%s", request.getContextPath(), ApiURI.URI_GIS_SURVEY_H + "/" + ApiURI.URI_XXX_TEMP_FILES + "/**"),
                 request.getRequestURI())
         )) {

+ 0 - 76
src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyCadConvertResult.java

@@ -1,76 +0,0 @@
-package com.shkpr.service.alambizplugin.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.shkpr.service.alambizplugin.constants.GisSurveConvertStatusEnum;
-import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-
-/**
- * cad转换结果
- *
- * @author 欧阳劲驰
- * @since 1.0.0
- */
-@Data
-public class GisSurveyCadConvertResult {
-    /**
-     * 转换id
-     */
-    private String convertId;
-    /**
-     * 检查状态:0:进行中,1:成功,2:失败,3:不存在
-     */
-    private Integer convertStatus;
-    /**
-     * 结果地址
-     */
-    private String path;
-    /**
-     * 请求检查时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "Asia/Shanghai")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime requestTime;
-    /**
-     * 完成检查时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "Asia/Shanghai")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime completeTime;
-
-    /**
-     * 进行中
-     */
-    public static GisSurveyCadConvertResult inProgress(String convertId, LocalDateTime requestTime) {
-        GisSurveyCadConvertResult result = new GisSurveyCadConvertResult();
-        result.setConvertId(convertId);
-        result.setConvertStatus(GisSurveyImportStatusEnum.IN_PROGRESS.getCode());
-        result.setRequestTime(requestTime);
-        return result;
-    }
-
-    /**
-     * 成功
-     */
-    public static GisSurveyCadConvertResult success(String convertId) {
-        GisSurveyCadConvertResult result = new GisSurveyCadConvertResult();
-        result.setConvertId(convertId);
-        result.setConvertStatus(GisSurveConvertStatusEnum.SUCCESS.getCode());
-        result.setRequestTime(LocalDateTime.now());
-        return result;
-    }
-
-    /**
-     * 失败
-     */
-    public static GisSurveyCadConvertResult fail(String convertId) {
-        GisSurveyCadConvertResult result = new GisSurveyCadConvertResult();
-        result.setConvertId(convertId);
-        result.setConvertStatus(GisSurveConvertStatusEnum.FAIL.getCode());
-        result.setRequestTime(LocalDateTime.now());
-        return result;
-    }
-}

+ 0 - 4
src/main/resources/application.properties

@@ -153,10 +153,6 @@ third-import.ttl=1h
 #检查周期(毫秒)
 third-import.ttl-check-interval=300000
 #=============cad转换========================
-#文件生命周期
-cad-convert.file-lifecycle=15m
-#资源路径
-cad-convert.resource-path=/home/kprCloud/alam_dma_kpr_plugin/cad-convert-temps/
 #栅格化最小宽度
 cad-convert.rasterization-min-width=800
 #栅格化最小高度