Jelajahi Sumber

提交导入改为异步处理,文件上传大小改为200MB

欧阳劲驰 4 hari lalu
induk
melakukan
371763d518

+ 1 - 6
src/main/java/com/shkpr/service/alambizplugin/apiparam/GisSurveyThirdImportParams.java

@@ -47,13 +47,8 @@ public class GisSurveyThirdImportParams {
      * 是否检查约束
      */
     private Boolean checkConstraint;
-    /**
-     * 忽略失败
-     */
-    private Boolean ignoreFail;
 
-    public GisSurveyThirdImportParams(String jobId, Boolean ignoreFail) {
+    public GisSurveyThirdImportParams(String jobId) {
         this.jobId = jobId;
-        this.ignoreFail = ignoreFail;
     }
 }

+ 147 - 34
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyThirdImportBizService.java

@@ -5,9 +5,11 @@ import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdImportParams;
 import com.shkpr.service.alambizplugin.commproperties.AsyncTaskProperties;
 import com.shkpr.service.alambizplugin.components.GisSurveyThirdImporter;
+import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum;
 import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.dto.CommAsyncCache;
+import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
 import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
 import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportSubtask;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -36,9 +38,13 @@ import java.util.concurrent.ExecutionException;
 @Component
 public class GisSurveyThirdImportBizService {
     /**
-     * 任务缓存
+     * 导入任务缓存
      */
-    private final static Map<String, ListenableFuture<GisSurveyThirdImportResult>> TASK_CACHE = new ConcurrentHashMap<>();
+    private final static Map<String, ListenableFuture<GisSurveyThirdImportResult>> IMPORT_TASK_CACHE = new ConcurrentHashMap<>();
+    /**
+     * 提交任务缓存
+     */
+    private final static Map<String, ListenableFuture<CommAsyncResult<Boolean>>> COMMIT_TASK_CACHE = new ConcurrentHashMap<>();
     /**
      * 子任务缓存
      */
@@ -47,6 +53,16 @@ public class GisSurveyThirdImportBizService {
      * 开始时间缓存
      */
     private final static Map<String, CommAsyncCache> INFO_CACHE = new ConcurrentHashMap<>();
+
+    /**
+     * 导入前缀
+     */
+    private final static String IMPORT_PREFIX = "import-";
+    /**
+     * 提交前缀
+     */
+    private final static String COMMIT_PREFIX = "commit-";
+
     /**
      * log
      */
@@ -76,7 +92,7 @@ public class GisSurveyThirdImportBizService {
      */
     public GisSurveyThirdImportResult thirdImport(GisSurveyThirdImportParams params) {
         //获取结果
-        GisSurveyThirdImportResult result = getResult(params);
+        GisSurveyThirdImportResult result = getImportResult(params);
         if (result != null) return result;
 
         //获取文件流
@@ -89,41 +105,61 @@ public class GisSurveyThirdImportBizService {
             }
         }
         //启动检查任务
-        startTask(params, inputStreams);
+        startImport(params, inputStreams);
         //返回进行中
-        return GisSurveyThirdImportResult.inProgress(params, SUBTASK_CACHE.get(params.getJobId()),
+        return GisSurveyThirdImportResult.inProgress(params, SUBTASK_CACHE.get(IMPORT_PREFIX + params.getJobId()),
                 LocalDateTime.now(),
                 params.getOperator()
         );
     }
 
     /**
-     * 获取结果
+     * 提交导入
+     *
+     * @param jobId    任务id
+     * @param operator 操作人
+     * @return 提交状态
+     */
+    public CommAsyncResult<Boolean> commitImport(String jobId, String operator) {
+        //获取结果
+        CommAsyncResult<Boolean> result = getCommitResult(jobId);
+        if (result != null) return result;
+
+        //启动提交任务
+        startCommit(jobId, operator);
+        //返回进行中
+        return CommAsyncResult.inProgress(jobId,
+                LocalDateTime.now(),
+                operator
+        );
+    }
+
+
+    /**
+     * 获取导入结果
      *
      * @param params 第三方导入参数
      * @return 导入结果
      */
-    public GisSurveyThirdImportResult getResult(GisSurveyThirdImportParams params) {
+    public GisSurveyThirdImportResult getImportResult(GisSurveyThirdImportParams params) {
         //获取已存在的任务
-        ListenableFuture<GisSurveyThirdImportResult> previousFuture = TASK_CACHE.get(params.getJobId());
+        ListenableFuture<GisSurveyThirdImportResult> previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + params.getJobId());
         //判断完成
         if (previousFuture != null && previousFuture.isDone()) {
             try {
                 //获取结果
                 GisSurveyThirdImportResult thirdImportResult = previousFuture.get();
-                //如不忽略失败,且失败,则返回失败
-                if (!params.getIgnoreFail() && Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode()))
-                    return thirdImportResult;
-                else if (Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.SUCCESS.getCode()) ||
+                //如处理成功/失败,返回结果,并清除缓存
+                if (Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode()) ||
+                        Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.SUCCESS.getCode()) ||
                         Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.DATA_ERROR.getCode())) {
-                    //如处理成功(导入成功或数据检查成功),返回成功,并清除缓存
-                    removeCache(params.getJobId());
+                    removeCache(IMPORT_PREFIX + params.getJobId());
                     return thirdImportResult;
                 }
             } catch (InterruptedException | ExecutionException e) {
                 //打印报错信息
                 LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
-                        , String.format("检查历史失败异常 任务id:%s msg:%s", params.getJobId(), e.getMessage())
+                        , String.format("检查历史异常 任务id:%s msg:%s", params.getJobId(), e.getMessage())
                 );
                 return GisSurveyThirdImportResult.fail(params);
             }
@@ -131,10 +167,10 @@ public class GisSurveyThirdImportBizService {
 
         //进行中判断(未完成且未清除)
         if (previousFuture != null && !previousFuture.isDone() && !previousFuture.isCancelled()) {
-            CommAsyncCache asyncCache = INFO_CACHE.get(params.getJobId());
+            CommAsyncCache asyncCache = INFO_CACHE.get(IMPORT_PREFIX + params.getJobId());
             if (asyncCache != null)
                 return GisSurveyThirdImportResult.inProgress(params,
-                        SUBTASK_CACHE.get(params.getJobId()),
+                        SUBTASK_CACHE.get(IMPORT_PREFIX + params.getJobId()),
                         asyncCache.getStartTime(), asyncCache.getOperator()
                 );
         }
@@ -143,6 +179,49 @@ public class GisSurveyThirdImportBizService {
     }
 
     /**
+     * 获取提交结果
+     *
+     * @param jobId 任务id
+     * @return 提交结果
+     */
+    private CommAsyncResult<Boolean> getCommitResult(String jobId) {
+        //获取已存在的任务
+        ListenableFuture<CommAsyncResult<Boolean>> previousFuture = COMMIT_TASK_CACHE.get(COMMIT_PREFIX + jobId);
+        //判断完成
+        if (previousFuture != null && previousFuture.isDone()) {
+            try {
+                //获取结果
+                CommAsyncResult<Boolean> commitResult = previousFuture.get();
+                //如处理成功/失败,返回结果,并清除缓存
+                if (Objects.equals(commitResult.getStatus(), CommAsyncStatusEnum.FAIL.getCode()) ||
+                        Objects.equals(commitResult.getStatus(), CommAsyncStatusEnum.SUCCESS.getCode())) {
+                    removeCache(COMMIT_PREFIX + jobId);
+                    return commitResult;
+                }
+            } catch (InterruptedException | ExecutionException e) {
+                //打印报错信息
+                LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
+                        , String.format("检查历史异常 任务id:%s msg:%s", jobId, e.getMessage())
+                );
+                return CommAsyncResult.fail(jobId);
+            }
+        }
+
+        //进行中判断(未完成且未清除)
+        if (previousFuture != null && !previousFuture.isDone() && !previousFuture.isCancelled()) {
+            CommAsyncCache asyncCache = INFO_CACHE.get(COMMIT_PREFIX + jobId);
+            if (asyncCache != null)
+                return CommAsyncResult.inProgress(jobId,
+                        asyncCache.getStartTime(),
+                        asyncCache.getOperator()
+                );
+        }
+
+        return null;
+    }
+
+
+    /**
      * 取消导入
      *
      * @param jobId 任务id
@@ -150,10 +229,11 @@ public class GisSurveyThirdImportBizService {
      */
     public int cancelImport(String jobId) {
         //如无缓存,则直接返回不存在
-        if (!TASK_CACHE.containsKey(jobId)) return GisSurveyImportStatusEnum.NOT_EXISTS.getCode();
+        if (!IMPORT_TASK_CACHE.containsKey(IMPORT_PREFIX + jobId))
+            return GisSurveyImportStatusEnum.NOT_EXISTS.getCode();
         //关闭检查任务
-        if (stopTask(TASK_CACHE.get(jobId))) {
-            removeCache(jobId);
+        if (stopTask(IMPORT_TASK_CACHE.get(IMPORT_PREFIX + jobId))) {
+            removeCache(IMPORT_PREFIX + jobId);
 
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                     , String.format(
@@ -167,29 +247,29 @@ public class GisSurveyThirdImportBizService {
     }
 
     /**
-     * 启动任务
+     * 启动导入
      *
      * @param params       导入参数
      * @param inputStreams 文件输入流
      */
-    private void startTask(GisSurveyThirdImportParams params, List<InputStream> inputStreams) {
+    private void startImport(GisSurveyThirdImportParams params, List<InputStream> inputStreams) {
         String jobId = params.getJobId();
         //获取已存在的任务
-        ListenableFuture<GisSurveyThirdImportResult> previousFuture = TASK_CACHE.get(jobId);
+        ListenableFuture<GisSurveyThirdImportResult> previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + jobId);
         //已结束判断,删除缓存
         if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled()))
-            removeCache(params.getJobId());
+            removeCache(IMPORT_PREFIX + params.getJobId());
         //异步执行第三方导入查任务
         ListenableFuture<GisSurveyThirdImportResult> future = thirdImporter.thirdImportTask(params, inputStreams,
                 //缓存子任务句柄
-                subtask -> SUBTASK_CACHE.put(jobId, subtask),
+                subtask -> SUBTASK_CACHE.put(IMPORT_PREFIX + jobId, subtask),
                 //删除子任务句柄
-                subtaskSystemCheckId -> SUBTASK_CACHE.remove(jobId)
+                subtaskSystemCheckId -> SUBTASK_CACHE.remove(IMPORT_PREFIX + jobId)
         );
         //任务超时
         taskScheduler.schedule(() -> {
             if (!future.isCancelled() && !future.isDone() && stopTask(future)) {
-                removeCache(jobId);
+                removeCache(IMPORT_PREFIX + jobId);
                 LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                         , String.format(
                                 "第三方导入超时,成功停止任务;任务id: %s"
@@ -199,9 +279,41 @@ public class GisSurveyThirdImportBizService {
             }
         }, Instant.now().plusMillis(asyncTaskProperties.getThirdImportTimeout().toMillis()));
         //缓存任务句柄
-        TASK_CACHE.put(jobId, future);
+        IMPORT_TASK_CACHE.put(IMPORT_PREFIX + jobId, future);
+        //缓存时间
+        INFO_CACHE.put(IMPORT_PREFIX + jobId, new CommAsyncCache(LocalDateTime.now(), params.getOperator()));
+    }
+
+    /**
+     * 启动提交
+     *
+     * @param jobId    任务id
+     * @param operator 操作人
+     */
+    private void startCommit(String jobId, String operator) {
+        //获取已存在的任务
+        ListenableFuture<CommAsyncResult<Boolean>> previousFuture = COMMIT_TASK_CACHE.get(COMMIT_PREFIX + jobId);
+        //已结束判断,删除缓存
+        if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled()))
+            removeCache(COMMIT_PREFIX + jobId);
+        //异步执行第三方导入查任务
+        ListenableFuture<CommAsyncResult<Boolean>> future = thirdImporter.commitImportTask(jobId, operator);
+        //任务超时
+        taskScheduler.schedule(() -> {
+            if (!future.isCancelled() && !future.isDone() && stopTask(future)) {
+                removeCache(COMMIT_PREFIX + jobId);
+                LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
+                        , String.format(
+                                "提交导入超时,成功停止任务;任务id: %s"
+                                , jobId
+                        )
+                );
+            }
+        }, Instant.now().plusMillis(asyncTaskProperties.getCommitImportTimeout().toMillis()));
+        //缓存任务句柄
+        COMMIT_TASK_CACHE.put(COMMIT_PREFIX + jobId, future);
         //缓存时间
-        INFO_CACHE.put(jobId, new CommAsyncCache(LocalDateTime.now(), params.getOperator()));
+        INFO_CACHE.put(COMMIT_PREFIX + jobId, new CommAsyncCache(LocalDateTime.now(), operator));
     }
 
     /**
@@ -220,11 +332,12 @@ public class GisSurveyThirdImportBizService {
     /**
      * 清除缓存
      *
-     * @param jobId 任务id
+     * @param key 缓存key
      */
-    private void removeCache(String jobId) {
-        TASK_CACHE.remove(jobId);
-        SUBTASK_CACHE.remove(jobId);
-        INFO_CACHE.remove(jobId);
+    private void removeCache(String key) {
+        IMPORT_TASK_CACHE.remove(key);
+        COMMIT_TASK_CACHE.remove(key);
+        SUBTASK_CACHE.remove(key);
+        INFO_CACHE.remove(key);
     }
 }

+ 5 - 0
src/main/java/com/shkpr/service/alambizplugin/commproperties/AsyncTaskProperties.java

@@ -33,6 +33,11 @@ public class AsyncTaskProperties {
     private Duration thirdImportTimeout;
 
     /**
+     * 第三方导入超时时间
+     */
+    private Duration commitImportTimeout;
+
+    /**
      * 第三方导出超时时间
      */
     private Duration thirdExportTimeout;

+ 42 - 9
src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyThirdImporter.java

@@ -22,17 +22,10 @@ import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisMetadataLayerTemplateService;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyJobInfoService;
+import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyService;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyThirdCopyService;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyProjectInfoService;
-import com.shkpr.service.alambizplugin.dto.GisMetadataLayerTemplate;
-import com.shkpr.service.alambizplugin.dto.GisMetadataPropertyTemplate;
-import com.shkpr.service.alambizplugin.dto.GisSurveyCondition;
-import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
-import com.shkpr.service.alambizplugin.dto.GisSurveyPropertyValueThirdCopy;
-import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportElement;
-import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
-import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResultDetail;
-import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportSubtask;
+import com.shkpr.service.alambizplugin.dto.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -80,6 +73,7 @@ public class GisSurveyThirdImporter {
     private final GisSurveyJobInfoService jobInfoService;
     private final GisMetadataLayerTemplateService layerTemplateService;
     private final GisSurveyLayerApplyThirdCopyService layerApplyThirdCopyService;
+    private final GisSurveyLayerApplyService layerApplyService;
     private final DuplicatePointsFinder duplicatePointsFinder;
     private final InvalidLinesFinder invalidLinesFinder;
     private final InvalidPropertiesFinder invalidPropertiesFinder;
@@ -88,6 +82,7 @@ public class GisSurveyThirdImporter {
             , GisSurveyJobInfoService jobInfoService
             , GisMetadataLayerTemplateService layerTemplateService
             , GisSurveyLayerApplyThirdCopyService layerApplyThirdCopyService
+            , GisSurveyLayerApplyService layerApplyService
             , DuplicatePointsFinder duplicatePointsFinder
             , InvalidLinesFinder invalidLinesFinder
             , InvalidPropertiesFinder invalidPropertiesFinder) {
@@ -98,6 +93,7 @@ public class GisSurveyThirdImporter {
         this.jobInfoService = jobInfoService;
         this.layerTemplateService = layerTemplateService;
         this.layerApplyThirdCopyService = layerApplyThirdCopyService;
+        this.layerApplyService = layerApplyService;
         this.duplicatePointsFinder = duplicatePointsFinder;
         this.invalidLinesFinder = invalidLinesFinder;
         this.invalidPropertiesFinder = invalidPropertiesFinder;
@@ -251,6 +247,43 @@ public class GisSurveyThirdImporter {
     }
 
     /**
+     * 提交导入任务
+     *
+     * @param jobId    任务id
+     * @param operator 操作人
+     * @return 提交状态
+     */
+    @Async
+    public ListenableFuture<CommAsyncResult<Boolean>> commitImportTask(String jobId, String operator) {
+        //构建返回
+        CommAsyncResult<Boolean> result = CommAsyncResult.fail(jobId);
+        result.setOperator(operator);
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
+                , String.format(
+                        "开始执合并导入;任务id: %s"
+                        , jobId
+                )
+        );
+
+        //合并副表
+        Boolean merged = layerApplyService.mergeCopy(jobId, operator);
+
+        //完成任务
+        result.setStatus(CommAsyncStatusEnum.SUCCESS.getCode());
+        result.setCompleteTime(LocalDateTime.now());
+        result.setData(merged);
+
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
+                , String.format(
+                        "结束执行合并导入;任务id: %s, 用时(毫秒):%d",
+                        jobId,
+                        Duration.between(result.getRequestTime(), result.getCompleteTime()).toMillis()
+                )
+        );
+        return new AsyncResult<>(result);
+    }
+
+    /**
      * 解析excel
      *
      * @param inputStreams 输入流

+ 30 - 20
src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java

@@ -27,7 +27,6 @@ import com.shkpr.service.alambizplugin.controllerfilter.TokenAuthenticationServi
 import com.shkpr.service.alambizplugin.controllerserializer.GeometrySerializer;
 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.CommCRSInfo;
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
@@ -85,7 +84,6 @@ public class ApiGisSurveyController {
     private final GisSurveyThirdImportBizService thirdImportBizService;
     private final GisSurveyThirdExportBizService thirdExportBizService;
     private final GisSurveyCadConvertBizService cadConvertBizService;
-    private final GisSurveyLayerApplyService layerApplyService;
     private final GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService;
 
     public ApiGisSurveyController(ObjectMapper objectMapper
@@ -93,7 +91,6 @@ public class ApiGisSurveyController {
             , GisSurveyThirdImportBizService thirdImportBizService
             , GisSurveyThirdExportBizService thirdExportBizService
             , GisSurveyCadConvertBizService cadConvertBizService
-            , GisSurveyLayerApplyService layerApplyService
             , GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService) {
         mStrClassName = "ApiGisSurveyController";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
@@ -115,7 +112,6 @@ public class ApiGisSurveyController {
         this.thirdImportBizService = thirdImportBizService;
         this.thirdExportBizService = thirdExportBizService;
         this.cadConvertBizService = cadConvertBizService;
-        this.layerApplyService = layerApplyService;
         this.layerApplyThirdCopyService = layerApplyThirdCopyService;
     }
 
@@ -279,7 +275,6 @@ public class ApiGisSurveyController {
      * @param nature        用水性质,supply/drain
      * @param sourceCRSCode 源坐标系code
      * @param resetNo       是否重置点号
-     * @param ignoreFail    是否忽略失败
      * @return 第三方导入结果
      */
     @PostMapping(value = ApiURI.URI_XXX_THIRD_IMPORT)
@@ -292,8 +287,7 @@ public class ApiGisSurveyController {
             , @RequestParam(value = "nature", required = false) String nature
             , @RequestParam(value = "sourceCRSCode", required = false, defaultValue = CommCRSDefine.CGCS2000) String sourceCRSCode
             , @RequestParam(value = "resetNo", required = false) Boolean resetNo
-            , @RequestParam(value = "checkConstraint", required = false, defaultValue = "false") Boolean checkConstraint
-            , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException {
+            , @RequestParam(value = "checkConstraint", required = false, defaultValue = "false") Boolean checkConstraint) throws SelfException {
         //入参校验
         final String URI_PATH = request.getRequestURI();
         final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
@@ -308,7 +302,7 @@ public class ApiGisSurveyController {
         }
         //构建入参数
         GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(files, operator, jobId, nature, sourceCRSCode,
-                resetNo, checkConstraint, Boolean.parseBoolean(ignoreFail));
+                resetNo, checkConstraint);
         //begin
         long llReqBefore = System.currentTimeMillis();
         String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportReq.incrementAndGet());
@@ -369,15 +363,13 @@ public class ApiGisSurveyController {
      * @param strClientType 客户端类型
      * @param strUserAgent  用户信息
      * @param jobId         任务id
-     * @param ignoreFail    是否忽略错误
      * @return 第三方导入结果
      */
     @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_GET)
     public ResponseRes<String> thirdImportGet(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
-            , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException {
+            , @RequestParam(value = "jobId", required = false) String jobId) throws SelfException {
         //入参校验
         final String URI_PATH = request.getRequestURI();
         final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
@@ -391,7 +383,7 @@ public class ApiGisSurveyController {
         }
 
         //构建入参数
-        GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(jobId, Boolean.parseBoolean(ignoreFail));
+        GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(jobId);
         //begin
         long llReqBefore = System.currentTimeMillis();
         String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportGetReq.incrementAndGet());
@@ -407,8 +399,8 @@ public class ApiGisSurveyController {
         resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
-        //执行cad转换
-        GisSurveyThirdImportResult result = thirdImportBizService.getResult(params);
+        //执行
+        GisSurveyThirdImportResult result = thirdImportBizService.getImportResult(params);
         String resultStr = null;
         try {
             if (result != null) resultStr = objectMapper.writeValueAsString(result);
@@ -588,11 +580,11 @@ public class ApiGisSurveyController {
      * @param strUserAgent  用户信息
      * @param jobId         任务id
      * @param operator      操作人
-     * @return 清除状态
+     * @return 提交状态
      * @throws SelfException selfException
      */
     @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_COMMIT)
-    public ResponseRes<?> commitImport(HttpServletRequest request
+    public ResponseRes<String> commitImport(HttpServletRequest request
             , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
             , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
             , @RequestParam("jobId") String jobId, @RequestParam("operator") String operator) throws Exception {
@@ -618,16 +610,34 @@ public class ApiGisSurveyController {
                         , strRunSeq
                         , jobId));
         //构建result
-        ResponseRes<?> resResult = new ResponseRes<>();
+        ResponseRes<String> resResult = new ResponseRes<>();
         resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
         //提交导入
-        Boolean commitStatus = layerApplyService.mergeCopy(jobId, operator);
-        //成功
-        if (Objects.equals(commitStatus, Boolean.TRUE)) {
+        CommAsyncResult<Boolean> result = thirdImportBizService.commitImport(jobId, operator);
+        String resultStr = null;
+        try {
+            if (result != null) resultStr = objectMapper.writeValueAsString(result);
+        } catch (JsonProcessingException e) {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
+                    , String.format("Json序列化异常: error:%s", e));
+        }
+
+        //执行成功
+        if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
             resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
             resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
+            resResult.setResdata(resultStr);
+        }
+        //执行失败
+        if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
+            resResult.setResdata(resultStr);
+        }
+        //不存在
+        if (resultStr == null) {
+            resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
+            resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
         }
 
         //end

+ 1 - 1
src/main/java/com/shkpr/service/alambizplugin/dto/CommAsyncResult.java

@@ -19,7 +19,7 @@ import java.util.Map;
 @Data
 public class CommAsyncResult<T> {
     /**
-     * 转换id
+     * id
      */
     private String id;
     /**

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

@@ -2,6 +2,9 @@
 spring.application.name=v1-alam-biz-plugin
 # 项目contextPath
 server.servlet.context-path= /
+#文件大小配置
+spring.servlet.multipart.max-file-size= 200MB
+spring.servlet.multipart.max-request-size= 200MB
 # 错误页,指定发生错误时,跳转的URL。请查看BasicErrorController源码便知
 server.error.path= /
 # 服务端口
@@ -147,6 +150,7 @@ cad-convert.rasterization-min-height=800
 async-task.system-check-timeout=PT1H
 async-task.system-check-result-lag=PT30M
 async-task.third-import-timeout=PT30M
+async-task.commit-import-timeout=PT30M
 async-task.third-export-timeout=PT30M
 async-task.third-export-result-lag=PT1S
 async-task.cad-convert-timeout=PT10M