Parcourir la source

第三方导入增加excel结果

欧阳劲驰 il y a 1 mois
Parent
commit
d692e65ca8
15 fichiers modifiés avec 541 ajouts et 346 suppressions
  1. 60 26
      src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyThirdImportBizService.java
  2. 80 56
      src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyThirdImporter.java
  3. 57 9
      src/main/java/com/shkpr/service/alambizplugin/components/checker/DuplicatePointsFinder.java
  4. 58 22
      src/main/java/com/shkpr/service/alambizplugin/components/checker/InvalidLinesFinder.java
  5. 107 11
      src/main/java/com/shkpr/service/alambizplugin/components/checker/InvalidPropertiesFinder.java
  6. 5 1
      src/main/java/com/shkpr/service/alambizplugin/constants/CommAsyncStatusEnum.java
  7. 0 11
      src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyExcelDefine.java
  8. 0 39
      src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyImportStatusEnum.java
  9. 42 0
      src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyThirdImportKeys.java
  10. 113 0
      src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyThirdImportResultHead.java
  11. 10 8
      src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java
  12. 1 2
      src/main/java/com/shkpr/service/alambizplugin/dto/CommAsyncResult.java
  13. 0 131
      src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportResult.java
  14. 8 0
      src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportResultDetail.java
  15. 0 30
      src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportSubtask.java

+ 60 - 26
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyThirdImportBizService.java

@@ -6,12 +6,12 @@ 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.GisSurveyThirdImportKeys;
 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 com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportElement;
+import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResultDetail;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 import org.springframework.stereotype.Component;
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -40,7 +41,8 @@ public class GisSurveyThirdImportBizService {
     /**
      * 导入任务缓存
      */
-    private final static Map<String, ListenableFuture<GisSurveyThirdImportResult>> IMPORT_TASK_CACHE = new ConcurrentHashMap<>();
+    private final static Map<String, ListenableFuture<CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>>>
+            IMPORT_TASK_CACHE = new ConcurrentHashMap<>();
     /**
      * 提交任务缓存
      */
@@ -48,7 +50,7 @@ public class GisSurveyThirdImportBizService {
     /**
      * 子任务缓存
      */
-    private final static Map<String, GisSurveyThirdImportSubtask> SUBTASK_CACHE = new ConcurrentHashMap<>();
+    private final static Map<String, Map<String, ListenableFuture<?>>> SUBTASK_CACHE = new ConcurrentHashMap<>();
     /**
      * 开始时间缓存
      */
@@ -90,9 +92,11 @@ public class GisSurveyThirdImportBizService {
      * @param params 第三方导入参数
      * @return 导入状态
      */
-    public GisSurveyThirdImportResult thirdImport(GisSurveyThirdImportParams params) {
+    public CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>> thirdImport(
+            GisSurveyThirdImportParams params) {
         //获取结果
-        GisSurveyThirdImportResult result = getImportResult(params);
+        CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>
+                result = getImportResult(params);
         if (result != null) return result;
 
         //获取文件流
@@ -101,13 +105,13 @@ public class GisSurveyThirdImportBizService {
             try {
                 inputStreams.add(file.getInputStream());
             } catch (IOException e) {
-                return GisSurveyThirdImportResult.fail(params);
+                return CommAsyncResult.fail(params.getJobId());
             }
         }
         //启动检查任务
         startImport(params, inputStreams);
         //返回进行中
-        return GisSurveyThirdImportResult.inProgress(params, SUBTASK_CACHE.get(IMPORT_PREFIX + params.getJobId()),
+        return CommAsyncResult.inProgress(params.getJobId(),
                 LocalDateTime.now(),
                 params.getOperator()
         );
@@ -141,18 +145,20 @@ public class GisSurveyThirdImportBizService {
      * @param params 第三方导入参数
      * @return 导入结果
      */
-    public GisSurveyThirdImportResult getImportResult(GisSurveyThirdImportParams params) {
+    public CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>> getImportResult(GisSurveyThirdImportParams params) {
         //获取已存在的任务
-        ListenableFuture<GisSurveyThirdImportResult> previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + params.getJobId());
+        ListenableFuture<CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>>
+                previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + params.getJobId());
         //判断完成
         if (previousFuture != null && previousFuture.isDone()) {
             try {
                 //获取结果
-                GisSurveyThirdImportResult thirdImportResult = previousFuture.get();
+                CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>
+                        thirdImportResult = previousFuture.get();
                 //如处理成功/失败,返回结果,并清除缓存
-                if (Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode()) ||
-                        Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.SUCCESS.getCode()) ||
-                        Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.DATA_ERROR.getCode())) {
+                if (Objects.equals(thirdImportResult.getStatus(), CommAsyncStatusEnum.FAIL.getCode()) ||
+                        Objects.equals(thirdImportResult.getStatus(), CommAsyncStatusEnum.SUCCESS.getCode()) ||
+                        Objects.equals(thirdImportResult.getStatus(), CommAsyncStatusEnum.RESULT_ERROR.getCode())) {
                     removeCache(IMPORT_PREFIX + params.getJobId());
                     return thirdImportResult;
                 }
@@ -161,18 +167,44 @@ public class GisSurveyThirdImportBizService {
                 LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
                         , String.format("检查历史异常 任务id:%s msg:%s", params.getJobId(), e.getMessage())
                 );
-                return GisSurveyThirdImportResult.fail(params);
+                return CommAsyncResult.fail(params.getJobId());
             }
         }
 
         //进行中判断(未完成且未清除)
         if (previousFuture != null && !previousFuture.isDone() && !previousFuture.isCancelled()) {
             CommAsyncCache asyncCache = INFO_CACHE.get(IMPORT_PREFIX + params.getJobId());
-            if (asyncCache != null)
-                return GisSurveyThirdImportResult.inProgress(params,
-                        SUBTASK_CACHE.get(IMPORT_PREFIX + params.getJobId()),
-                        asyncCache.getStartTime(), asyncCache.getOperator()
-                );
+            if (asyncCache != null) {
+                //构建结果
+                CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>
+                        result = CommAsyncResult.inProgress(params.getJobId(),
+                        asyncCache.getStartTime(), asyncCache.getOperator());
+                //数据
+                Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> data = new HashMap<>();
+                //获取子任务
+                Map<String, ListenableFuture<?>> subtask = SUBTASK_CACHE.get(IMPORT_PREFIX + params.getJobId());
+                //无效属性任务
+                ListenableFuture<?> invalidPropertiesFuture = subtask.get(GisSurveyThirdImportKeys.INVALID_PROPERTIES);
+                if (invalidPropertiesFuture != null) {
+                    data.put(GisSurveyThirdImportKeys.INVALID_LAYERS, new GisSurveyThirdImportResultDetail<>(invalidPropertiesFuture.isDone()));
+                    data.put(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS, new GisSurveyThirdImportResultDetail<>(invalidPropertiesFuture.isDone()));
+                    data.put(GisSurveyThirdImportKeys.INVALID_TYPES, new GisSurveyThirdImportResultDetail<>(invalidPropertiesFuture.isDone()));
+                    data.put(GisSurveyThirdImportKeys.OUT_RANGES, new GisSurveyThirdImportResultDetail<>(invalidPropertiesFuture.isDone()));
+                    data.put(GisSurveyThirdImportKeys.OUT_CONSTRAINT, new GisSurveyThirdImportResultDetail<>(invalidPropertiesFuture.isDone()));
+                }
+                //重复点任务
+                ListenableFuture<?> duplicatePointsFuture = subtask.get(GisSurveyThirdImportKeys.DUPLICATE_POINTS);
+                if (duplicatePointsFuture != null)
+                    data.put(GisSurveyThirdImportKeys.DUPLICATE_POINTS, new GisSurveyThirdImportResultDetail<>(duplicatePointsFuture.isDone()));
+                //无效线任务
+                ListenableFuture<?> invalidLinesFuture = subtask.get(GisSurveyThirdImportKeys.INVALID_LINES);
+                if (invalidLinesFuture != null)
+                    data.put(GisSurveyThirdImportKeys.INVALID_LINES, new GisSurveyThirdImportResultDetail<>(invalidLinesFuture.isDone()));
+
+                result.setData(data);
+                return result;
+
+            }
         }
 
         return null;
@@ -230,7 +262,7 @@ public class GisSurveyThirdImportBizService {
     public int cancelImport(String jobId) {
         //如无缓存,则直接返回不存在
         if (!IMPORT_TASK_CACHE.containsKey(IMPORT_PREFIX + jobId))
-            return GisSurveyImportStatusEnum.NOT_EXISTS.getCode();
+            return CommAsyncStatusEnum.NOT_EXISTS.getCode();
         //关闭检查任务
         if (stopTask(IMPORT_TASK_CACHE.get(IMPORT_PREFIX + jobId))) {
             removeCache(IMPORT_PREFIX + jobId);
@@ -241,9 +273,9 @@ public class GisSurveyThirdImportBizService {
                             , jobId
                     )
             );
-            return GisSurveyImportStatusEnum.SUCCESS.getCode();
+            return CommAsyncStatusEnum.SUCCESS.getCode();
         }
-        return GisSurveyImportStatusEnum.FAIL.getCode();
+        return CommAsyncStatusEnum.FAIL.getCode();
     }
 
     /**
@@ -255,12 +287,14 @@ public class GisSurveyThirdImportBizService {
     private void startImport(GisSurveyThirdImportParams params, List<InputStream> inputStreams) {
         String jobId = params.getJobId();
         //获取已存在的任务
-        ListenableFuture<GisSurveyThirdImportResult> previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + jobId);
+        ListenableFuture<CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>>
+                previousFuture = IMPORT_TASK_CACHE.get(IMPORT_PREFIX + jobId);
         //已结束判断,删除缓存
         if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled()))
             removeCache(IMPORT_PREFIX + params.getJobId());
         //异步执行第三方导入查任务
-        ListenableFuture<GisSurveyThirdImportResult> future = thirdImporter.thirdImportTask(params, inputStreams,
+        ListenableFuture<CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>>
+                future = thirdImporter.thirdImportTask(params, inputStreams,
                 //缓存子任务句柄
                 subtask -> SUBTASK_CACHE.put(IMPORT_PREFIX + jobId, subtask),
                 //删除子任务句柄

+ 80 - 56
src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyThirdImporter.java

@@ -18,14 +18,21 @@ import com.shkpr.service.alambizplugin.constants.CommCRSDefine;
 import com.shkpr.service.alambizplugin.constants.ExcelEnum;
 import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
-import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportKeys;
 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.*;
+import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
+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.GisSurveyThirdImportResultDetail;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
@@ -64,11 +71,17 @@ import java.util.stream.Collectors;
 @Component
 public class GisSurveyThirdImporter {
     /**
+     * 结果前缀
+     */
+    public final static String RESULT_PREFIX = "third-import-";
+    /**
      * log
      */
     private final String mStrClassName;
     private final String mBizType;
+
     private final GeometryFactory geometryFactory;
+    private final AsyncResultManager asyncResultManager;
     private final GisSurveyProjectInfoService projectInfoService;
     private final GisSurveyJobInfoService jobInfoService;
     private final GisMetadataLayerTemplateService layerTemplateService;
@@ -78,7 +91,7 @@ public class GisSurveyThirdImporter {
     private final InvalidLinesFinder invalidLinesFinder;
     private final InvalidPropertiesFinder invalidPropertiesFinder;
 
-    public GisSurveyThirdImporter(GisSurveyProjectInfoService projectInfoService
+    public GisSurveyThirdImporter(AsyncResultManager asyncResultManager, GisSurveyProjectInfoService projectInfoService
             , GisSurveyJobInfoService jobInfoService
             , GisMetadataLayerTemplateService layerTemplateService
             , GisSurveyLayerApplyThirdCopyService layerApplyThirdCopyService
@@ -89,6 +102,7 @@ public class GisSurveyThirdImporter {
         mStrClassName = "GisSurveyThirdImporter";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
         geometryFactory = new GeometryFactory(new PrecisionModel(), 4490);
+        this.asyncResultManager = asyncResultManager;
         this.projectInfoService = projectInfoService;
         this.jobInfoService = jobInfoService;
         this.layerTemplateService = layerTemplateService;
@@ -109,13 +123,15 @@ public class GisSurveyThirdImporter {
      * @return 系统检查返回
      */
     @Async
-    public ListenableFuture<GisSurveyThirdImportResult> thirdImportTask(GisSurveyThirdImportParams params, List<InputStream> inputStreams
-            , Consumer<GisSurveyThirdImportSubtask> onStartSubtask, Consumer<String> onDeprecatedSubtask) {
+    public ListenableFuture<CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>> thirdImportTask(
+            GisSurveyThirdImportParams params, List<InputStream> inputStreams
+            , Consumer<Map<String, ListenableFuture<?>>> onStartSubtask, Consumer<String> onDeprecatedSubtask) {
         //构建返回
-        GisSurveyThirdImportResult result = GisSurveyThirdImportResult.fail(params);
+        CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>> result
+                = CommAsyncResult.fail(params.getJobId());
         result.setOperator(params.getOperator());
         //无效属性任务
-        ListenableFuture<GisSurveyThirdImportResultDetail<Map<String, List<GisSurveyThirdImportElement>>>> invalidPropertiesFuture = null;
+        ListenableFuture<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>> invalidPropertiesFuture = null;
         //重复点号任务
         ListenableFuture<GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> duplicatePointsFuture = null;
         //无效线任务
@@ -144,35 +160,53 @@ public class GisSurveyThirdImporter {
             List<GisMetadataLayerTemplate> pointLayerTemplates = layerTemplateService.findByNatureAndNameIn(params.getNature(), pointLayerNames);
             List<GisMetadataLayerTemplate> lineLayerTemplates = layerTemplateService.findByNatureAndNameIn(params.getNature(), lineLayerNames);
 
+            //结果flag
+            final String FLAG = RESULT_PREFIX + params.getJobId();
+            //创建临时文件夹
+            if (!asyncResultManager.createTempDirectory(FLAG))
+                return new AsyncResult<>(result);
+
+            //子任务
+            Map<String, ListenableFuture<?>> subtask = new HashMap<>();
+
             //无效属性检查
             invalidPropertiesFuture = invalidPropertiesFinder.findInvalidProperties(points, lines
-                    , pointLayerTemplates, lineLayerTemplates, params.getCheckConstraint(), projectConstraints);
+                    , pointLayerTemplates, lineLayerTemplates, params.getCheckConstraint(), projectConstraints, params.getJobId());
+            subtask.put(GisSurveyThirdImportKeys.INVALID_PROPERTIES, invalidPropertiesFuture);
             //重复点检查
-            duplicatePointsFuture = duplicatePointsFinder.findDuplicatePoints(points, pointLayerTemplates);
+            duplicatePointsFuture = duplicatePointsFinder.findDuplicatePoints(points, pointLayerTemplates, params.getJobId());
+            subtask.put(GisSurveyThirdImportKeys.DUPLICATE_POINTS, duplicatePointsFuture);
             //无效线检查
-            invalidLinesFuture = invalidLinesFinder.finderInvalidLines(points, lines, pointLayerTemplates, lineLayerTemplates);
+            invalidLinesFuture = invalidLinesFinder.finderInvalidLines(points, lines, pointLayerTemplates, lineLayerTemplates, params.getJobId());
+            subtask.put(GisSurveyThirdImportKeys.INVALID_LINES, invalidLinesFuture);
 
             //返回子任务
-            onStartSubtask.accept(
-                    new GisSurveyThirdImportSubtask(invalidPropertiesFuture, duplicatePointsFuture, invalidLinesFuture)
-            );
-
-            //等待结果
-            GisSurveyThirdImportResultDetail<Map<String, List<GisSurveyThirdImportElement>>> invalidPropertiesResult = invalidPropertiesFuture.get();
-            //存入无效属性结果
-            result.setInvalidLayersResult(untarInvalidProperties(invalidPropertiesResult, GisSurveyExcelDefine.RESULT.INVALID_LAYERS));
-            result.setMissingRequirementsResult(untarInvalidProperties(invalidPropertiesResult, GisSurveyExcelDefine.RESULT.MISSING_REQUIREMENTS));
-            result.setInvalidTypesResult(untarInvalidProperties(invalidPropertiesResult, GisSurveyExcelDefine.RESULT.INVALID_TYPES));
-            result.setOutRangesResult(untarInvalidProperties(invalidPropertiesResult, GisSurveyExcelDefine.RESULT.OUT_RANGES));
-            result.setOutConstraintResult(untarInvalidProperties(invalidPropertiesResult, GisSurveyExcelDefine.RESULT.OUT_CONSTRAINT));
-            //存入重复点结果
-            result.setDuplicatePointsResult(duplicatePointsFuture.get());
-            //存入无效线结果
-            result.setInvalidLinesResult(invalidLinesFuture.get());
+            onStartSubtask.accept(subtask);
+
+            //数据
+            Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> data = new HashMap<>();
+
+            //等待子任务
+            Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> invalidPropertiesResult = invalidPropertiesFuture.get();
+            //存入无效属性数据
+            data.put(GisSurveyThirdImportKeys.INVALID_LAYERS, invalidPropertiesResult.get(GisSurveyThirdImportKeys.INVALID_LAYERS));
+            data.put(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS, invalidPropertiesResult.get(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS));
+            data.put(GisSurveyThirdImportKeys.INVALID_TYPES, invalidPropertiesResult.get(GisSurveyThirdImportKeys.INVALID_TYPES));
+            data.put(GisSurveyThirdImportKeys.OUT_RANGES, invalidPropertiesResult.get(GisSurveyThirdImportKeys.OUT_RANGES));
+            data.put(GisSurveyThirdImportKeys.OUT_CONSTRAINT, invalidPropertiesResult.get(GisSurveyThirdImportKeys.OUT_CONSTRAINT));
+            //存入重复点数据
+            data.put(GisSurveyThirdImportKeys.DUPLICATE_POINTS, duplicatePointsFuture.get());
+            //存入无效线数据
+            data.put(GisSurveyThirdImportKeys.INVALID_LINES, invalidLinesFuture.get());
+            //存入数据
+            result.setData(data);
+
+            //替换结果
+            asyncResultManager.replaceResult(FLAG);
 
             //结果未通过
-            if (!checkResult(result)) {
-                result.setImportStatus(GisSurveyImportStatusEnum.DATA_ERROR.getCode());
+            if (!checkResult(data)) {
+                result.setStatus(CommAsyncStatusEnum.RESULT_ERROR.getCode());
                 result.setCompleteTime(LocalDateTime.now());
                 LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                         , String.format(
@@ -209,7 +243,7 @@ public class GisSurveyThirdImporter {
             }
 
             //完成任务
-            result.setImportStatus(GisSurveyImportStatusEnum.SUCCESS.getCode());
+            result.setStatus(CommAsyncStatusEnum.SUCCESS.getCode());
             result.setCompleteTime(LocalDateTime.now());
 
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
@@ -237,7 +271,7 @@ public class GisSurveyThirdImporter {
             if (invalidLinesFuture != null) invalidLinesFuture.cancel(true);
 
             //失败信息
-            result.setImportStatus(CommAsyncStatusEnum.FAIL.getCode());
+            result.setStatus(CommAsyncStatusEnum.FAIL.getCode());
             result.setCompleteTime(LocalDateTime.now());
 
             //弃用子任务
@@ -337,35 +371,25 @@ public class GisSurveyThirdImporter {
     }
 
     /**
-     * 解包无效属性
+     * 检查数据
      *
-     * @param invalidPropertiesResult 无效属性结果
-     * @param resultKey               结果key
-     * @return 具体结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> untarInvalidProperties(
-            GisSurveyThirdImportResultDetail<Map<String, List<GisSurveyThirdImportElement>>> invalidPropertiesResult
-            , String resultKey) {
-        //获取结果
-        List<GisSurveyThirdImportElement> importElements = invalidPropertiesResult.getResults().get(resultKey);
-
-        return new GisSurveyThirdImportResultDetail<>(true, importElements);
-    }
-
-    /**
-     * 检查结果
-     *
-     * @param result 结果
+     * @param data 数据
      * @return 结果通过状态
      */
-    private Boolean checkResult(GisSurveyThirdImportResult result) {
-        List<GisSurveyThirdImportElement> invalidLayers = result.getInvalidLayersResult().getResults();
-        List<GisSurveyThirdImportElement> missingRequirements = result.getMissingRequirementsResult().getResults();
-        List<GisSurveyThirdImportElement> invalidTypesResult = result.getInvalidTypesResult().getResults();
-        List<GisSurveyThirdImportElement> outRanges = result.getOutRangesResult().getResults();
-        List<GisSurveyThirdImportElement> outConstraint = result.getOutConstraintResult().getResults();
-        List<GisSurveyThirdImportElement> duplicatePoints = result.getDuplicatePointsResult().getResults();
-        List<GisSurveyThirdImportElement> invalidLines = result.getInvalidLinesResult().getResults();
+    private Boolean checkResult(Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> data) {
+        //检查key
+        if (!data.containsKey(GisSurveyThirdImportKeys.INVALID_LAYERS) || !data.containsKey(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS) ||
+                !data.containsKey(GisSurveyThirdImportKeys.INVALID_TYPES) || !data.containsKey(GisSurveyThirdImportKeys.OUT_RANGES) ||
+                !data.containsKey(GisSurveyThirdImportKeys.OUT_CONSTRAINT) || !data.containsKey(GisSurveyThirdImportKeys.DUPLICATE_POINTS) ||
+                !data.containsKey(GisSurveyThirdImportKeys.INVALID_LINES)) return false;
+        //获取结果
+        List<GisSurveyThirdImportElement> invalidLayers = data.get(GisSurveyThirdImportKeys.INVALID_LAYERS).getResults();
+        List<GisSurveyThirdImportElement> missingRequirements = data.get(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS).getResults();
+        List<GisSurveyThirdImportElement> invalidTypesResult = data.get(GisSurveyThirdImportKeys.INVALID_TYPES).getResults();
+        List<GisSurveyThirdImportElement> outRanges = data.get(GisSurveyThirdImportKeys.OUT_RANGES).getResults();
+        List<GisSurveyThirdImportElement> outConstraint = data.get(GisSurveyThirdImportKeys.OUT_CONSTRAINT).getResults();
+        List<GisSurveyThirdImportElement> duplicatePoints = data.get(GisSurveyThirdImportKeys.DUPLICATE_POINTS).getResults();
+        List<GisSurveyThirdImportElement> invalidLines = data.get(GisSurveyThirdImportKeys.INVALID_LINES).getResults();
         //检查是否都为空
         return CollectionUtils.isEmpty(invalidLayers) && CollectionUtils.isEmpty(missingRequirements) &&
                 CollectionUtils.isEmpty(invalidTypesResult) && CollectionUtils.isEmpty(outRanges) &&

+ 57 - 9
src/main/java/com/shkpr/service/alambizplugin/components/checker/DuplicatePointsFinder.java

@@ -5,11 +5,14 @@ import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.alambizplugin.commtools.BeanUtil;
 import com.shkpr.service.alambizplugin.commtools.ThirdImportTemplateUtils;
 import com.shkpr.service.alambizplugin.components.AsyncResultManager;
+import com.shkpr.service.alambizplugin.components.GisSurveyThirdImporter;
 import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveySystemCheckKeys;
 import com.shkpr.service.alambizplugin.constants.GisSurveySystemCheckResultHead;
 import com.shkpr.service.alambizplugin.constants.GisSurveyTemplateDefine;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportKeys;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportResultHead;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.dto.*;
 import com.shkpr.service.alambizplugin.exception.UncheckedInterruptedException;
@@ -74,11 +77,12 @@ public class DuplicatePointsFinder {
      *
      * @param points              点集合
      * @param pointLayerTemplates 点图层模版
+     * @param jobId               任务id
      * @return 重复点
      */
     @Async
-    public ListenableFuture<GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> findDuplicatePoints(
-            List<Map<String, String>> points, List<GisMetadataLayerTemplate> pointLayerTemplates) throws InterruptedException {
+    public ListenableFuture<GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> findDuplicatePoints(List<Map<String, String>> points
+            , List<GisMetadataLayerTemplate> pointLayerTemplates, String jobId) throws InterruptedException {
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, "开始执行寻找重复点   ======>");
         long begin = System.currentTimeMillis();
 
@@ -122,7 +126,7 @@ public class DuplicatePointsFinder {
                             , (end - begin)
                     )
             );
-            return new AsyncResult<>(new GisSurveyThirdImportResultDetail<>(true, groupElements));
+            return new AsyncResult<>(createThirdImportResult(groupElements, jobId, begin));
         } catch (UncheckedInterruptedException e) {
             throw e.getCause();
         }
@@ -233,7 +237,7 @@ public class DuplicatePointsFinder {
                     })
                     .filter(it -> it.size() > 1)
                     .collect(Collectors.toList());
-            return new AsyncResult<>(createResult(collect, systemCheckId, begin));
+            return new AsyncResult<>(createSystemCheckResult(collect, systemCheckId, begin));
         } catch (UncheckedInterruptedException e) {
             throw e.getCause();
         }
@@ -320,14 +324,43 @@ public class DuplicatePointsFinder {
     }
 
     /**
-     * 创建结果
+     * 创建第三方导入结果
+     *
+     * @param data  数据
+     * @param jobId 任务id
+     * @param begin 开始时间
+     * @return 结果
+     */
+    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> createThirdImportResult(
+            List<GisSurveyThirdImportElement> data, String jobId, long begin) {
+        long end = System.currentTimeMillis();
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
+                , String.format(
+                        "结束执行寻找重复点,用时(毫秒):%d"
+                        , (end - begin)
+                )
+        );
+
+        //结果flag
+        final String FLAG = GisSurveyThirdImporter.RESULT_PREFIX + jobId;
+        //写入excel结果
+        Path excelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.DUPLICATE_POINTS
+                , buildThirdImportExcel(data), FLAG, GisSurveyThirdImportKeys.DUPLICATE_POINTS + ".xlsx");
+
+        //构建结果
+        return new GisSurveyThirdImportResultDetail<>(true
+                , data, FLAG + "/" + excelPath.getFileName());
+    }
+
+    /**
+     * 创建系统检查结果
      *
      * @param data          数据
      * @param systemCheckId 系统检查id
      * @param begin         开始时间
      * @return 结果
      */
-    private GisSurveySystemCheckResultDetail createResult(List<List<GisSurveySystemCheckElement>> data
+    private GisSurveySystemCheckResultDetail createSystemCheckResult(List<List<GisSurveySystemCheckElement>> data
             , GisSurveySystemCheckId systemCheckId, long begin) {
         long end = System.currentTimeMillis();
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
@@ -344,7 +377,7 @@ public class DuplicatePointsFinder {
         //写入json和excel结果
         Path jsonPath = asyncResultManager.writeJson(data, FLAG, GisSurveySystemCheckKeys.DUPLICATE_POINTS + ".json");
         Path excelPath = asyncResultManager.writeExcel(GisSurveySystemCheckResultHead.DUPLICATE_POINTS
-                , buildExcel(data), FLAG, GisSurveySystemCheckKeys.DUPLICATE_POINTS + ".xlsx");
+                , buildSystemCheckExcel(data), FLAG, GisSurveySystemCheckKeys.DUPLICATE_POINTS + ".xlsx");
 
         //构建结果
         return new GisSurveySystemCheckResultDetail(true
@@ -354,12 +387,27 @@ public class DuplicatePointsFinder {
     }
 
     /**
-     * 构建excel数据
+     * 构建第三方导入excel数据
+     *
+     * @param data 数据
+     * @return excel数据
+     */
+    private List<Map<String, Object>> buildThirdImportExcel(List<GisSurveyThirdImportElement> data) {
+        return data.stream().map(element -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put(GisSurveyThirdImportResultHead.KEYS.KIND, element.getKind());
+            map.put(GisSurveyThirdImportResultHead.KEYS.NO, element.getNo());
+            return map;
+        }).collect(Collectors.toList());
+    }
+
+    /**
+     * 构建系统检查excel数据
      *
      * @param data 数据
      * @return excel数据
      */
-    private List<Map<String, Object>> buildExcel(List<List<GisSurveySystemCheckElement>> data) {
+    private List<Map<String, Object>> buildSystemCheckExcel(List<List<GisSurveySystemCheckElement>> data) {
         return IntStream.range(0, data.size())
                 .boxed()
                 .flatMap(i -> data.get(i).stream().map(element -> {

+ 58 - 22
src/main/java/com/shkpr/service/alambizplugin/components/checker/InvalidLinesFinder.java

@@ -6,10 +6,13 @@ import com.google.common.collect.Lists;
 import com.shkpr.service.alambizplugin.commtools.BeanUtil;
 import com.shkpr.service.alambizplugin.commtools.ThirdImportTemplateUtils;
 import com.shkpr.service.alambizplugin.components.AsyncResultManager;
+import com.shkpr.service.alambizplugin.components.GisSurveyThirdImporter;
 import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveySystemCheckKeys;
 import com.shkpr.service.alambizplugin.constants.GisSurveySystemCheckResultHead;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportKeys;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportResultHead;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.dto.GisMetadataLayerTemplate;
 import com.shkpr.service.alambizplugin.dto.GisMetadataPropertyTemplate;
@@ -64,12 +67,14 @@ public class InvalidLinesFinder {
      * @param lines               线集合
      * @param pointLayerTemplates 点图层模版
      * @param lineLayerTemplates  线图层模版
+     * @param jobId               任务ID
      * @return 线分组
      */
     @Async
     public ListenableFuture<GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> finderInvalidLines(
             List<Map<String, String>> points, List<Map<String, String>> lines,
-            List<GisMetadataLayerTemplate> pointLayerTemplates, List<GisMetadataLayerTemplate> lineLayerTemplates) throws InterruptedException {
+            List<GisMetadataLayerTemplate> pointLayerTemplates, List<GisMetadataLayerTemplate> lineLayerTemplates,
+            String jobId) throws InterruptedException {
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, "开始执行寻找无效线   ======>");
         long begin = System.currentTimeMillis();
 
@@ -82,7 +87,7 @@ public class InvalidLinesFinder {
                             , (end - begin)
                     )
             );
-            return new AsyncResult<>(new GisSurveyThirdImportResultDetail<>(true,
+            return new AsyncResult<>(createThirdImportResult(
                     lines.stream()
                             //转结果
                             .map(line -> {
@@ -104,7 +109,8 @@ public class InvalidLinesFinder {
                                         ThirdImportTemplateUtils.getValue(line, downNoTemplate),
                                         line.get(GisSurveyExcelDefine.FILE.LINE_LAYER), String.join(",", propertyNames));
                             })
-                            .collect(Collectors.toList())
+                            .collect(Collectors.toList()),
+                    jobId, begin
             ));
         }
         //如线为空,则无无效线
@@ -116,9 +122,7 @@ public class InvalidLinesFinder {
                             , (end - begin)
                     )
             );
-            return new AsyncResult<>(new GisSurveyThirdImportResultDetail<>(
-                    true, Lists.newArrayList()
-            ));
+            return new AsyncResult<>(createThirdImportResult(Lists.newArrayList(), jobId, begin));
         }
 
         //点号集合
@@ -161,14 +165,7 @@ public class InvalidLinesFinder {
             }
         }
 
-        long end = System.currentTimeMillis();
-        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
-                , String.format(
-                        "结束执行寻找无效线,用时(毫秒):%d"
-                        , (end - begin)
-                )
-        );
-        return new AsyncResult<>(new GisSurveyThirdImportResultDetail<>(true, results));
+        return new AsyncResult<>(createThirdImportResult(results, jobId, begin));
     }
 
     /**
@@ -195,10 +192,11 @@ public class InvalidLinesFinder {
                     //转为返回元素
                     .map(line -> BeanUtil.copy(line, GisSurveySystemCheckElement.class))
                     .collect(Collectors.toList());
-            return new AsyncResult<>(createResult(elements, systemCheckId, begin));
+            return new AsyncResult<>(createSystemCheckResult(elements, systemCheckId, begin));
         }
         //如线为空,则无无效线
-        if (lines.isEmpty()) return new AsyncResult<>(createResult(Lists.newArrayList(), systemCheckId, begin));
+        if (lines.isEmpty())
+            return new AsyncResult<>(createSystemCheckResult(Lists.newArrayList(), systemCheckId, begin));
 
         //点编码集合
         Set<String> pointCodes = points.parallelStream()
@@ -225,6 +223,18 @@ public class InvalidLinesFinder {
                 .map(line -> BeanUtil.copy(line, GisSurveySystemCheckElement.class))
                 .collect(Collectors.toList());
 
+        return new AsyncResult<>(createSystemCheckResult(elements, systemCheckId, begin));
+    }
+
+    /**
+     * 创建第三方导入结果
+     *
+     * @param data  数据
+     * @param jobId 任务id
+     * @param begin 开始时间
+     * @return 结果
+     */
+    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> createThirdImportResult(List<GisSurveyThirdImportElement> data, String jobId, long begin) {
         long end = System.currentTimeMillis();
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                 , String.format(
@@ -232,18 +242,27 @@ public class InvalidLinesFinder {
                         , (end - begin)
                 )
         );
-        return new AsyncResult<>(createResult(elements, systemCheckId, begin));
+
+        //结果flag
+        final String FLAG = GisSurveyThirdImporter.RESULT_PREFIX + jobId;
+        //excel结果
+        Path excelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.INVALID_LINES,
+                buildThirdImportExcel(data), FLAG, GisSurveyThirdImportKeys.INVALID_LINES + ".xlsx");
+
+        //构建结果
+        return new GisSurveyThirdImportResultDetail<>(true
+                ,data, FLAG + "/" + excelPath.getFileName());
     }
 
     /**
-     * 创建结果
+     * 创建系统检查结果
      *
      * @param data          数据
      * @param systemCheckId 系统检查id
      * @param begin         开始时间
      * @return 结果
      */
-    private GisSurveySystemCheckResultDetail createResult(List<GisSurveySystemCheckElement> data
+    private GisSurveySystemCheckResultDetail createSystemCheckResult(List<GisSurveySystemCheckElement> data
             , GisSurveySystemCheckId systemCheckId, long begin) {
         long end = System.currentTimeMillis();
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
@@ -260,7 +279,7 @@ public class InvalidLinesFinder {
         //写入json和excel结果
         Path jsonPath = asyncResultManager.writeJson(data, FLAG, GisSurveySystemCheckKeys.INVALID_LINES + ".json");
         Path excelPath = asyncResultManager.writeExcel(GisSurveySystemCheckResultHead.INVALID_LINES,
-                buildExcel(data), FLAG, GisSurveySystemCheckKeys.INVALID_LINES + ".xlsx");
+                buildSystemCheckExcel(data), FLAG, GisSurveySystemCheckKeys.INVALID_LINES + ".xlsx");
 
         //构建结果
         return new GisSurveySystemCheckResultDetail(true
@@ -270,12 +289,29 @@ public class InvalidLinesFinder {
     }
 
     /**
-     * 构建excel数据
+     * 构建第三方导入excel数据
+     *
+     * @param data 数据
+     * @return excel数据
+     */
+    private List<Map<String, Object>> buildThirdImportExcel(List<GisSurveyThirdImportElement> data) {
+        return data.stream().map(element -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put(GisSurveyThirdImportResultHead.KEYS.LAYER_NAME, element.getLayerName());
+            map.put(GisSurveyThirdImportResultHead.KEYS.UP_NO, element.getUpNO());
+            map.put(GisSurveyThirdImportResultHead.KEYS.DOWN_NO, element.getDownNO());
+            map.put(GisSurveyThirdImportResultHead.KEYS.PROPERTY_NAME, element.getPropertyName());
+            return map;
+        }).collect(Collectors.toList());
+    }
+
+    /**
+     * 构建系统检查excel数据
      *
      * @param data 数据
      * @return excel数据
      */
-    private List<Map<String, Object>> buildExcel(List<GisSurveySystemCheckElement> data) {
+    private List<Map<String, Object>> buildSystemCheckExcel(List<GisSurveySystemCheckElement> data) {
         return data.stream().map(element -> {
             Map<String, Object> map = new HashMap<>();
             map.put(GisSurveySystemCheckResultHead.KEYS.UP_NO, element.getUpNo());

+ 107 - 11
src/main/java/com/shkpr/service/alambizplugin/components/checker/InvalidPropertiesFinder.java

@@ -4,8 +4,12 @@ import com.global.base.log.LogLevelFlag;
 import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.alambizplugin.commtools.BeanUtil;
 import com.shkpr.service.alambizplugin.commtools.ThirdImportTemplateUtils;
+import com.shkpr.service.alambizplugin.components.AsyncResultManager;
+import com.shkpr.service.alambizplugin.components.GisSurveyThirdImporter;
 import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveyExcelDefine;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportKeys;
+import com.shkpr.service.alambizplugin.constants.GisSurveyThirdImportResultHead;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.dto.GisMetadataLayerTemplate;
 import com.shkpr.service.alambizplugin.dto.GisMetadataPropertyTemplate;
@@ -20,6 +24,7 @@ import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Component;
 import org.springframework.util.concurrent.ListenableFuture;
 
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -49,9 +54,12 @@ public class InvalidPropertiesFinder {
     private final String mStrClassName;
     private final String mBizType;
 
-    public InvalidPropertiesFinder() {
+    private final AsyncResultManager asyncResultManager;
+
+    public InvalidPropertiesFinder(AsyncResultManager asyncResultManager) {
         mStrClassName = "InvalidPropertiesFinder";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
+        this.asyncResultManager = asyncResultManager;
     }
 
     /**
@@ -63,12 +71,15 @@ public class InvalidPropertiesFinder {
      * @param lineLayerTemplates  线图层模版集合
      * @param checkConstraint     检查约束
      * @param projectConstraints  项目约束条件
+     * @param jobId               任务id
      * @return 重复点
      */
     @Async
-    public ListenableFuture<GisSurveyThirdImportResultDetail<Map<String, List<GisSurveyThirdImportElement>>>> findInvalidProperties(
-            List<Map<String, String>> points, List<Map<String, String>> lines, List<GisMetadataLayerTemplate> pointLayerTemplates
-            , List<GisMetadataLayerTemplate> lineLayerTemplates, Boolean checkConstraint, List<GisSurveyCondition> projectConstraints) throws InterruptedException {
+    public ListenableFuture<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>> findInvalidProperties(
+            List<Map<String, String>> points, List<Map<String, String>> lines
+            , List<GisMetadataLayerTemplate> pointLayerTemplates, List<GisMetadataLayerTemplate> lineLayerTemplates
+            , Boolean checkConstraint, List<GisSurveyCondition> projectConstraints
+            , String jobId) throws InterruptedException {
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, "开始执行寻找无效属性   ======>");
         long begin = System.currentTimeMillis();
 
@@ -140,14 +151,99 @@ public class InvalidPropertiesFinder {
                 )
         );
 
+        return new AsyncResult<>(createResult(invalidLayersResult, missingRequirementsResult, invalidTypesResult,
+                outRangesResult, outConstraintResult, jobId, begin));
+    }
+
+    /**
+     * 创建结果
+     *
+     * @param invalidLayersResult       无效图层结果
+     * @param missingRequirementsResult 缺失必填结果
+     * @param invalidTypesResult        无效类型结果
+     * @param outRangesResult           超出范围结果
+     * @param outConstraintResult       超出约束结果
+     * @param jobId                     任务id
+     * @param begin                     开始时间
+     * @return 结果
+     */
+    private Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> createResult(
+            List<GisSurveyThirdImportElement> invalidLayersResult,
+            List<GisSurveyThirdImportElement> missingRequirementsResult,
+            List<GisSurveyThirdImportElement> invalidTypesResult,
+            List<GisSurveyThirdImportElement> outRangesResult,
+            List<GisSurveyThirdImportElement> outConstraintResult,
+            String jobId, long begin) {
+        long end = System.currentTimeMillis();
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
+                , String.format(
+                        "结束执行寻找无效线,用时(毫秒):%d"
+                        , (end - begin)
+                )
+        );
+
+        //结果flag
+        final String FLAG = GisSurveyThirdImporter.RESULT_PREFIX + jobId;
+
+        //无效图层构建excel和详情
+        Path invalidLayersExcelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.INVALID_LAYERS,
+                buildExcel(invalidLayersResult), FLAG, GisSurveyThirdImportKeys.INVALID_LAYERS + ".xlsx");
+        GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> invalidLayersDetail
+                = new GisSurveyThirdImportResultDetail<>(true, invalidLayersResult
+                , FLAG + "/" + invalidLayersExcelPath.getFileName());
+        //缺失必填构建excel和详情
+        Path missingRequirementsExcelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.MISSING_REQUIREMENTS,
+                buildExcel(missingRequirementsResult), FLAG, GisSurveyThirdImportKeys.MISSING_REQUIREMENTS + ".xlsx");
+        GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> missingRequirementsDetail
+                = new GisSurveyThirdImportResultDetail<>(true, missingRequirementsResult
+                , FLAG + "/" + missingRequirementsExcelPath.getFileName());
+        //无效类型构建excel和详情
+        Path invalidTypesExcelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.INVALID_TYPES,
+                buildExcel(invalidTypesResult), FLAG, GisSurveyThirdImportKeys.INVALID_TYPES + ".xlsx");
+        GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> invalidTypesDetail
+                = new GisSurveyThirdImportResultDetail<>(true, invalidTypesResult
+                , FLAG + "/" + invalidTypesExcelPath.getFileName());
+        //超出范围构建excel和详情
+        Path outRangesExcelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.OUT_RANGES,
+                buildExcel(outRangesResult), FLAG, GisSurveyThirdImportKeys.OUT_RANGES + ".xlsx");
+        GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> outRangesDetail
+                = new GisSurveyThirdImportResultDetail<>(true, outRangesResult
+                , FLAG + "/" + outRangesExcelPath.getFileName());
+        //超出约束构建excel和详情
+        Path outConstraintExcelPath = asyncResultManager.writeExcel(GisSurveyThirdImportResultHead.OUT_CONSTRAINT,
+                buildExcel(outConstraintResult), FLAG, GisSurveyThirdImportKeys.OUT_CONSTRAINT + ".xlsx");
+        GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> outConstraintDetail
+                = new GisSurveyThirdImportResultDetail<>(true, outConstraintResult
+                , FLAG + "/" + outConstraintExcelPath.getFileName());
+
         //构建结果
-        Map<String, List<GisSurveyThirdImportElement>> result = new HashMap<>();
-        result.put(GisSurveyExcelDefine.RESULT.INVALID_LAYERS, invalidLayersResult);
-        result.put(GisSurveyExcelDefine.RESULT.MISSING_REQUIREMENTS, missingRequirementsResult);
-        result.put(GisSurveyExcelDefine.RESULT.INVALID_TYPES, invalidTypesResult);
-        result.put(GisSurveyExcelDefine.RESULT.OUT_RANGES, outRangesResult);
-        result.put(GisSurveyExcelDefine.RESULT.OUT_CONSTRAINT, outConstraintResult);
-        return new AsyncResult<>(new GisSurveyThirdImportResultDetail<>(true, result));
+        Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>> result = new HashMap<>();
+        result.put(GisSurveyThirdImportKeys.INVALID_LAYERS, invalidLayersDetail);
+        result.put(GisSurveyThirdImportKeys.MISSING_REQUIREMENTS, missingRequirementsDetail);
+        result.put(GisSurveyThirdImportKeys.INVALID_TYPES, invalidTypesDetail);
+        result.put(GisSurveyThirdImportKeys.OUT_RANGES, outRangesDetail);
+        result.put(GisSurveyThirdImportKeys.OUT_CONSTRAINT, outConstraintDetail);
+
+        return result;
+    }
+
+    /**
+     * 构建第三方导入excel数据
+     *
+     * @param data 数据
+     * @return excel数据
+     */
+    private List<Map<String, Object>> buildExcel(List<GisSurveyThirdImportElement> data) {
+        return data.stream().map(element -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put(GisSurveyThirdImportResultHead.KEYS.KIND, element.getKind());
+            map.put(GisSurveyThirdImportResultHead.KEYS.LAYER_NAME, element.getLayerName());
+            map.put(GisSurveyThirdImportResultHead.KEYS.NO, element.getNo());
+            map.put(GisSurveyThirdImportResultHead.KEYS.UP_NO, element.getUpNO());
+            map.put(GisSurveyThirdImportResultHead.KEYS.DOWN_NO, element.getDownNO());
+            map.put(GisSurveyThirdImportResultHead.KEYS.PROPERTY_NAME, element.getPropertyName());
+            return map;
+        }).collect(Collectors.toList());
     }
 
     /**

+ 5 - 1
src/main/java/com/shkpr/service/alambizplugin/constants/CommAsyncStatusEnum.java

@@ -27,7 +27,11 @@ public enum CommAsyncStatusEnum {
     /**
      * 不存在
      */
-    NOT_EXISTS(3);
+    NOT_EXISTS(3),
+    /**
+     * 结果错误
+     */
+    RESULT_ERROR(4);
     /**
      * code
      */

+ 0 - 11
src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyExcelDefine.java

@@ -61,15 +61,4 @@ public interface GisSurveyExcelDefine {
         Short ACTION = (short) 1;
         Short STATUS = (short) 4;
     }
-
-    /**
-     * 结果key
-     */
-    interface RESULT {
-        String INVALID_LAYERS = "invalidLayersResult";
-        String MISSING_REQUIREMENTS = "missingRequirementsResult";
-        String INVALID_TYPES = "invalidTypesResult";
-        String OUT_RANGES = "outRangesResult";
-        String OUT_CONSTRAINT = "outConstraint";
-    }
 }

+ 0 - 39
src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyImportStatusEnum.java

@@ -1,39 +0,0 @@
-package com.shkpr.service.alambizplugin.constants;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 第三方导入状态枚举
- *
- * @author 欧阳劲驰
- * @serial 1.0.0
- */
-@AllArgsConstructor
-@Getter
-public enum GisSurveyImportStatusEnum {
-    /**
-     * 进行中
-     */
-    IN_PROGRESS(0),
-    /**
-     * 成功
-     */
-    SUCCESS(1),
-    /**
-     * 失败
-     */
-    FAIL(2),
-    /**
-     * 不存在
-     */
-    NOT_EXISTS(3),
-    /**
-     * 数据错误
-     */
-    DATA_ERROR(4);
-    /**
-     * code
-     */
-    private final Integer code;
-}

+ 42 - 0
src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyThirdImportKeys.java

@@ -0,0 +1,42 @@
+package com.shkpr.service.alambizplugin.constants;
+
+/**
+ * 第三方导入key
+ *
+ * @author 欧阳劲驰
+ * @since 1.0.0
+ */
+public interface GisSurveyThirdImportKeys {
+    /**
+     * 无效属性
+     */
+    String INVALID_PROPERTIES = "InvalidProperties";
+    /**
+     * 无效图层
+     */
+    String INVALID_LAYERS = "invalidLayers";
+    /**
+     * 缺失必填
+     */
+    String MISSING_REQUIREMENTS = "missingRequirements";
+    /**
+     * 无效类型
+     */
+    String INVALID_TYPES = "invalidTypesResult";
+    /**
+     * 超出范围
+     */
+    String OUT_RANGES = "outRangesResult";
+    /**
+     * 超出约束
+     */
+    String OUT_CONSTRAINT = "outConstraint";
+    /**
+     * 重复点号
+     */
+    String DUPLICATE_POINTS = "duplicatePoints";
+    /**
+     * 无效线
+     */
+    String INVALID_LINES = "invalidLines";
+}

+ 113 - 0
src/main/java/com/shkpr/service/alambizplugin/constants/GisSurveyThirdImportResultHead.java

@@ -0,0 +1,113 @@
+package com.shkpr.service.alambizplugin.constants;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 第三方导入结果表头
+ *
+ * @author 欧阳劲驰
+ * @since 1.0.0
+ */
+public class GisSurveyThirdImportResultHead {
+    /**
+     * 无效图层
+     */
+    public final static Map<String, String> INVALID_LAYERS = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.LAYER_NAME, "图层名称");
+    }};
+
+    /**
+     * 缺失必填
+     */
+    public final static Map<String, String> MISSING_REQUIREMENTS = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.LAYER_NAME, "图层名称");
+        put(KEYS.NO, "点号");
+        put(KEYS.UP_NO, "起点号");
+        put(KEYS.DOWN_NO, "终点号");
+        put(KEYS.PROPERTY_NAME, "属性名称");
+    }};
+
+    /**
+     * 无效类型
+     */
+    public final static Map<String, String> INVALID_TYPES = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.LAYER_NAME, "图层名称");
+        put(KEYS.NO, "点号");
+        put(KEYS.UP_NO, "起点号");
+        put(KEYS.DOWN_NO, "终点号");
+        put(KEYS.PROPERTY_NAME, "属性名称");
+    }};
+
+    /**
+     * 超出范围
+     */
+    public final static Map<String, String> OUT_RANGES = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.LAYER_NAME, "图层名称");
+        put(KEYS.NO, "点号");
+    }};
+
+    /**
+     * 无效类型
+     */
+    public final static Map<String, String> OUT_CONSTRAINT = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.LAYER_NAME, "图层名称");
+        put(KEYS.NO, "点号");
+        put(KEYS.UP_NO, "起点号");
+        put(KEYS.DOWN_NO, "终点号");
+        put(KEYS.PROPERTY_NAME, "属性名称");
+    }};
+
+    /**
+     * 重复点
+     */
+    public final static Map<String, String> DUPLICATE_POINTS = new LinkedHashMap<String, String>() {{
+        put(KEYS.KIND, "元素分类");
+        put(KEYS.NO, "点号");
+    }};
+
+    /**
+     * 无效线
+     */
+    public final static Map<String, String> INVALID_LINES = new LinkedHashMap<String, String>() {{
+        put(KEYS.LAYER_NAME, "图层名称");
+        put(KEYS.UP_NO, "起点号");
+        put(KEYS.DOWN_NO, "终点号");
+        put(KEYS.PROPERTY_NAME, "属性名称");
+    }};
+
+    /**
+     * 键
+     */
+    public interface KEYS {
+        /**
+         * 点号
+         */
+        String NO = "no";
+        /**
+         * 起点号
+         */
+        String UP_NO = "upNo";
+        /**
+         * 终点号
+         */
+        String DOWN_NO = "downNo";
+        /**
+         * 元素分类
+         */
+        String KIND = "kind";
+        /**
+         * 图层名称
+         */
+        String LAYER_NAME = "layerName";
+        /**
+         * 属性名称
+         */
+        String PROPERTY_NAME = "propertyName";
+    }
+}

+ 10 - 8
src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java

@@ -20,7 +20,6 @@ import com.shkpr.service.alambizplugin.constants.CadEnum;
 import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum;
 import com.shkpr.service.alambizplugin.constants.CommCRSDefine;
 import com.shkpr.service.alambizplugin.constants.FileTypeEnum;
-import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
 import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.constants.ResponseCode;
 import com.shkpr.service.alambizplugin.controllerfilter.TokenAuthenticationService;
@@ -31,7 +30,8 @@ import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
 import com.shkpr.service.alambizplugin.dto.CommCRSInfo;
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
 import com.shkpr.service.alambizplugin.dto.GisSurveySystemCheckResultDetail;
-import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
+import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportElement;
+import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResultDetail;
 import com.shkpr.service.alambizplugin.dto.PageResponse;
 import com.shkpr.service.alambizplugin.dto.ResponseRes;
 import com.shkpr.service.alambizplugin.exception.SelfException;
@@ -320,7 +320,8 @@ public class ApiGisSurveyController {
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
         //执行第三方导入
-        GisSurveyThirdImportResult result = thirdImportBizService.thirdImport(params);
+        CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>
+                result = thirdImportBizService.thirdImport(params);
         String resultStr = null;
         try {
             if (result != null) resultStr = objectMapper.writeValueAsString(result);
@@ -330,13 +331,13 @@ public class ApiGisSurveyController {
         }
 
         //执行成功
-        if (resultStr != null && !Objects.equals(result.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) {
+        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.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) {
+        if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
             resResult.setResdata(resultStr);
         }
         //结果为空
@@ -402,7 +403,8 @@ public class ApiGisSurveyController {
         resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
 
         //执行
-        GisSurveyThirdImportResult result = thirdImportBizService.getImportResult(params);
+        CommAsyncResult<Map<String, GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>>>>
+                result = thirdImportBizService.getImportResult(params);
         String resultStr = null;
         try {
             if (result != null) resultStr = objectMapper.writeValueAsString(result);
@@ -412,13 +414,13 @@ public class ApiGisSurveyController {
         }
 
         //执行成功
-        if (resultStr != null && !Objects.equals(result.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
+        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.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
+        if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
             resResult.setResdata(resultStr);
         }
         //不存在

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

@@ -2,7 +2,6 @@ package com.shkpr.service.alambizplugin.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum;
-import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -63,7 +62,7 @@ public class CommAsyncResult<T> {
     public static <T> CommAsyncResult<T> inProgress(String id, LocalDateTime requestTime, String operator) {
         CommAsyncResult<T> result = new CommAsyncResult<>();
         result.setId(id);
-        result.setStatus(GisSurveyImportStatusEnum.IN_PROGRESS.getCode());
+        result.setStatus(CommAsyncStatusEnum.IN_PROGRESS.getCode());
         result.setRequestTime(requestTime);
         result.setOperator(operator);
         return result;

+ 0 - 131
src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportResult.java

@@ -1,131 +0,0 @@
-package com.shkpr.service.alambizplugin.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdImportParams;
-import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
-import lombok.Data;
-import org.springframework.beans.BeanUtils;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-/**
- * 第三方导入返回dto
- *
- * @author 欧阳劲驰
- * @since 1.0.0
- */
-@Data
-public class GisSurveyThirdImportResult {
-    /**
-     * 导入状态:0:进行中,1:成功,2:失败,3:不存在
-     */
-    private Integer importStatus;
-
-    /**
-     * 任务id
-     */
-    private String jobId;
-    /**
-     * 当前操作人id
-     */
-    private String operator;
-    /**
-     * 请求导入时间
-     */
-    @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;
-
-    /**
-     * 无效图层结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> invalidLayersResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 缺失必填结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> missingRequirementsResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 无效类型结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> invalidTypesResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 超出范围结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> outRangesResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 超出约束结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> outConstraintResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 重复点号结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> duplicatePointsResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 无效线结果
-     */
-    private GisSurveyThirdImportResultDetail<List<GisSurveyThirdImportElement>> invalidLinesResult = new GisSurveyThirdImportResultDetail<>();
-
-    /**
-     * 进行中
-     */
-    public static GisSurveyThirdImportResult inProgress(GisSurveyThirdImportParams params, GisSurveyThirdImportSubtask subtask, LocalDateTime requestTime,String operator) {
-        GisSurveyThirdImportResult result = new GisSurveyThirdImportResult();
-        BeanUtils.copyProperties(params, result);
-
-        //设置子任务状态
-        if (subtask != null) {
-            if (subtask.getInvalidPropertiesFuture() != null) {
-                result.getInvalidLayersResult().setDone(subtask.getInvalidPropertiesFuture().isDone());
-                result.getMissingRequirementsResult().setDone(subtask.getInvalidPropertiesFuture().isDone());
-                result.getInvalidTypesResult().setDone(subtask.getInvalidPropertiesFuture().isDone());
-                result.getOutRangesResult().setDone(subtask.getInvalidPropertiesFuture().isDone());
-                result.getOutConstraintResult().setDone(subtask.getInvalidPropertiesFuture().isDone());
-            }
-            if (subtask.getDuplicatePointsFuture() != null)
-                result.getDuplicatePointsResult().setDone(subtask.getDuplicatePointsFuture().isDone());
-            if (subtask.getInvalidLinesFuture() != null)
-                result.getInvalidLinesResult().setDone(subtask.getInvalidLinesFuture().isDone());
-        }
-
-        result.setImportStatus(GisSurveyImportStatusEnum.IN_PROGRESS.getCode());
-        result.setRequestTime(requestTime);
-        result.setOperator(operator);
-        return result;
-    }
-
-    /**
-     * 成功
-     */
-    public static GisSurveyThirdImportResult success(GisSurveyThirdImportParams params) {
-        GisSurveyThirdImportResult result = new GisSurveyThirdImportResult();
-        BeanUtils.copyProperties(params, result);
-        result.setImportStatus(GisSurveyImportStatusEnum.SUCCESS.getCode());
-        result.setRequestTime(LocalDateTime.now());
-        return result;
-    }
-
-    /**
-     * 失败
-     */
-    public static GisSurveyThirdImportResult fail(GisSurveyThirdImportParams params) {
-        GisSurveyThirdImportResult result = new GisSurveyThirdImportResult();
-        BeanUtils.copyProperties(params, result);
-        result.setImportStatus(GisSurveyImportStatusEnum.FAIL.getCode());
-        result.setRequestTime(LocalDateTime.now());
-        return result;
-    }
-}

+ 8 - 0
src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportResultDetail.java

@@ -24,4 +24,12 @@ public class GisSurveyThirdImportResultDetail<T> {
      * 结果
      */
     private T results;
+    /**
+     * excel地址
+     */
+    private String excelPath;
+
+    public GisSurveyThirdImportResultDetail(Boolean done) {
+        this.done = done;
+    }
 }

+ 0 - 30
src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyThirdImportSubtask.java

@@ -1,30 +0,0 @@
-package com.shkpr.service.alambizplugin.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.util.concurrent.ListenableFuture;
-
-/**
- * 第三方导入子任务
- *
- * @author 欧阳劲驰
- * @since 0.0.1
- */
-@Getter
-@Setter
-@AllArgsConstructor
-public class GisSurveyThirdImportSubtask {
-    /**
-     * 无效属性任务
-     */
-    private ListenableFuture<? extends GisSurveyThirdImportResultDetail<?>> invalidPropertiesFuture;
-    /**
-     * 重复点号任务
-     */
-    private ListenableFuture<? extends GisSurveyThirdImportResultDetail<?>> duplicatePointsFuture;
-    /**
-     * 无效线任务
-     */
-    private ListenableFuture<? extends GisSurveyThirdImportResultDetail<?>> invalidLinesFuture;
-}