Quellcode durchsuchen

增加数据错误状态

欧阳劲驰 vor 2 Monaten
Ursprung
Commit
1cc2f0a2bc

+ 3 - 2
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyThirdImportBizService.java

@@ -77,8 +77,9 @@ public class GisSurveyThirdImportBizService {
                 //如不忽略失败,且失败,则返回失败
                 if (!params.getIgnoreFail() && Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode()))
                     return thirdImportResult;
-                else if (Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.SUCCESS.getCode())) {
-                    //如成功,返回成功,并清除缓存
+                else if (Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.SUCCESS.getCode()) ||
+                        Objects.equals(thirdImportResult.getImportStatus(), GisSurveyImportStatusEnum.DATA_ERROR.getCode())) {
+                    //如处理成功(导入成功或数据检查成功),返回成功,并清除缓存
                     removeCache(params.getJobId());
                     return thirdImportResult;
                 }

+ 34 - 2
src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyThirdImporter.java

@@ -11,6 +11,7 @@ import com.shkpr.service.alambizplugin.constants.ExcelEnum;
 import com.shkpr.service.alambizplugin.constants.GisMetadataDefine;
 import com.shkpr.service.alambizplugin.constants.GisSurveyCheckStatusEnum;
 import com.shkpr.service.alambizplugin.constants.GisSurveyImportDefine;
+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.dto.GisMetadataLayerTemplate;
@@ -18,6 +19,7 @@ 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 org.apache.commons.collections4.CollectionUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Component;
@@ -129,8 +131,19 @@ public class GisSurveyThirdImporter {
             //存入无效线结果
             result.setInvalidLinesResult(invalidLinesFuture.get());
 
-            //完成检查
-            result.setImportStatus(GisSurveyCheckStatusEnum.SUCCESS.getCode());
+            //结果未通过
+            if (!checkResult(result)) {
+                result.setImportStatus(GisSurveyImportStatusEnum.DATA_ERROR.getCode());
+                result.setCompleteTime(LocalDateTime.now());
+                //弃用子任务
+                onDeprecatedSubtask.accept(params.getJobId());
+                return new AsyncResult<>(result);
+            }
+
+            //格式化数据,并入库
+
+            //完成任务
+            result.setImportStatus(GisSurveyImportStatusEnum.SUCCESS.getCode());
             result.setCompleteTime(LocalDateTime.now());
 
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
@@ -233,4 +246,23 @@ public class GisSurveyThirdImporter {
 
         return new GisSurveyThirdImportResultDetail<>(true, importElements);
     }
+
+    /**
+     * 检查结果
+     *
+     * @param result 结果
+     * @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> duplicatePoints = result.getDuplicatePointsResult().getResults();
+        List<GisSurveyThirdImportElement> invalidLines = result.getInvalidLinesResult().getResults();
+        //检查是否都为空
+        return CollectionUtils.isEmpty(invalidLayers) && CollectionUtils.isEmpty(missingRequirements) &&
+                CollectionUtils.isEmpty(invalidTypesResult) && CollectionUtils.isEmpty(outRanges) &&
+                CollectionUtils.isEmpty(duplicatePoints) && CollectionUtils.isEmpty(invalidLines);
+    }
 }

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

@@ -27,7 +27,11 @@ public enum GisSurveyImportStatusEnum {
     /**
      * 不存在
      */
-    NOT_EXISTS(3);
+    NOT_EXISTS(3),
+    /**
+     * 数据错误
+     */
+    DATA_ERROR(4);
     /**
      * code
      */