|
@@ -4,6 +4,7 @@ import com.global.base.log.LogLevelFlag;
|
|
import com.global.base.log.LogPrintMgr;
|
|
import com.global.base.log.LogPrintMgr;
|
|
import com.shkpr.service.alambizplugin.apiparam.GisSurveyCheckParams;
|
|
import com.shkpr.service.alambizplugin.apiparam.GisSurveyCheckParams;
|
|
import com.shkpr.service.alambizplugin.components.checker.DuplicatePointsFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.DuplicatePointsFinder;
|
|
|
|
+import com.shkpr.service.alambizplugin.components.checker.ElevationDiffFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.IsolatedLinesFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.IsolatedLinesFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.IsolatedPointsFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.IsolatedPointsFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.OverlapLinesFinder;
|
|
import com.shkpr.service.alambizplugin.components.checker.OverlapLinesFinder;
|
|
@@ -52,8 +53,13 @@ public class GisSurveySystemChecker {
|
|
private final IsolatedLinesFinder isolatedLinesFinder;
|
|
private final IsolatedLinesFinder isolatedLinesFinder;
|
|
private final DuplicatePointsFinder duplicatePointsFinder;
|
|
private final DuplicatePointsFinder duplicatePointsFinder;
|
|
private final OverlapLinesFinder overlapLinesFinder;
|
|
private final OverlapLinesFinder overlapLinesFinder;
|
|
|
|
+ private final ElevationDiffFinder elevationDiffFinder;
|
|
|
|
|
|
- public GisSurveySystemChecker(GisSurveySystemCheckResultManager systemCheckResultManager, GisSurveyLayerApplyService gisSurveyLayerApplyService, TypeDefineService typeDefineService, IsolatedPointsFinder isolatedPointsFinder, IsolatedLinesFinder isolatedLinesFinder, DuplicatePointsFinder duplicatePointsFinder, OverlapLinesFinder overlapLinesFinder) {
|
|
|
|
|
|
+ public GisSurveySystemChecker(GisSurveySystemCheckResultManager systemCheckResultManager
|
|
|
|
+ , GisSurveyLayerApplyService gisSurveyLayerApplyService, TypeDefineService typeDefineService
|
|
|
|
+ , IsolatedPointsFinder isolatedPointsFinder, IsolatedLinesFinder isolatedLinesFinder
|
|
|
|
+ , DuplicatePointsFinder duplicatePointsFinder, OverlapLinesFinder overlapLinesFinder
|
|
|
|
+ , ElevationDiffFinder elevationDiffFinder) {
|
|
mStrClassName = "GisSurveySystemChecker";
|
|
mStrClassName = "GisSurveySystemChecker";
|
|
mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
|
|
mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
|
|
this.systemCheckResultManager = systemCheckResultManager;
|
|
this.systemCheckResultManager = systemCheckResultManager;
|
|
@@ -63,6 +69,7 @@ public class GisSurveySystemChecker {
|
|
this.isolatedLinesFinder = isolatedLinesFinder;
|
|
this.isolatedLinesFinder = isolatedLinesFinder;
|
|
this.duplicatePointsFinder = duplicatePointsFinder;
|
|
this.duplicatePointsFinder = duplicatePointsFinder;
|
|
this.overlapLinesFinder = overlapLinesFinder;
|
|
this.overlapLinesFinder = overlapLinesFinder;
|
|
|
|
+ this.elevationDiffFinder = elevationDiffFinder;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -92,6 +99,8 @@ public class GisSurveySystemChecker {
|
|
ListenableFuture<GisSurveySystemCheckResultDetail> duplicatePointsFuture = null;
|
|
ListenableFuture<GisSurveySystemCheckResultDetail> duplicatePointsFuture = null;
|
|
//重叠线任务
|
|
//重叠线任务
|
|
ListenableFuture<GisSurveySystemCheckResultDetail> overlapLinesFuture = null;
|
|
ListenableFuture<GisSurveySystemCheckResultDetail> overlapLinesFuture = null;
|
|
|
|
+ //高程差任务
|
|
|
|
+ ListenableFuture<GisSurveySystemCheckResultDetail> elevationDiffFuture = null;
|
|
//点集合
|
|
//点集合
|
|
List<GisSurveyLayerApplyPoint> points = null;
|
|
List<GisSurveyLayerApplyPoint> points = null;
|
|
//线集合
|
|
//线集合
|
|
@@ -128,17 +137,20 @@ public class GisSurveySystemChecker {
|
|
if (params.getDuplicatePointsStart())
|
|
if (params.getDuplicatePointsStart())
|
|
duplicatePointsFuture = duplicatePointsFinder.findDuplicatePoints(points, typeDefines, systemCheckId);
|
|
duplicatePointsFuture = duplicatePointsFinder.findDuplicatePoints(points, typeDefines, systemCheckId);
|
|
}
|
|
}
|
|
- //孤立线和重叠线检查
|
|
|
|
|
|
+ //孤立线\重叠线\高程差异常检查
|
|
if (lines != null) {
|
|
if (lines != null) {
|
|
if (params.getIsolatedLinesStart())
|
|
if (params.getIsolatedLinesStart())
|
|
isolatedLinesFuture = isolatedLinesFinder.findIsolatedLines(lines, systemCheckId);
|
|
isolatedLinesFuture = isolatedLinesFinder.findIsolatedLines(lines, systemCheckId);
|
|
if (params.getOverlapLinesStart())
|
|
if (params.getOverlapLinesStart())
|
|
overlapLinesFuture = overlapLinesFinder.findOverlapLines(lines, systemCheckId);
|
|
overlapLinesFuture = overlapLinesFinder.findOverlapLines(lines, systemCheckId);
|
|
|
|
+ if (params.getElevationDiffStart())
|
|
|
|
+ elevationDiffFuture = elevationDiffFinder.findElevationDiff(lines, systemCheckId);
|
|
}
|
|
}
|
|
|
|
|
|
//返回子任务
|
|
//返回子任务
|
|
onStartSubtask.accept(
|
|
onStartSubtask.accept(
|
|
- new GisSurveySystemCheckSubtask(isolatedPointsFuture, isolatedLinesFuture, duplicatePointsFuture, overlapLinesFuture)
|
|
|
|
|
|
+ new GisSurveySystemCheckSubtask(isolatedPointsFuture, isolatedLinesFuture, duplicatePointsFuture
|
|
|
|
+ , overlapLinesFuture,elevationDiffFuture)
|
|
);
|
|
);
|
|
|
|
|
|
//等待结果,并存入返回,优先监听点相关(执行速度快且只需要点集合,优先释放点集合内存)
|
|
//等待结果,并存入返回,优先监听点相关(执行速度快且只需要点集合,优先释放点集合内存)
|
|
@@ -166,6 +178,11 @@ public class GisSurveySystemChecker {
|
|
final GisSurveySystemCheckResultDetail overlapLinesResult = overlapLinesFuture.get();
|
|
final GisSurveySystemCheckResultDetail overlapLinesResult = overlapLinesFuture.get();
|
|
result.setOverlapLinesResult(overlapLinesResult);
|
|
result.setOverlapLinesResult(overlapLinesResult);
|
|
}
|
|
}
|
|
|
|
+ if (elevationDiffFuture != null) {
|
|
|
|
+ //监听高程差异常
|
|
|
|
+ final GisSurveySystemCheckResultDetail elevationDiffResult = elevationDiffFuture.get();
|
|
|
|
+ result.setElevationDiffResult(elevationDiffResult);
|
|
|
|
+ }
|
|
|
|
|
|
//完成检查
|
|
//完成检查
|
|
result.setCheckStatus(CommAsyncStatusEnum.SUCCESS.getCode());
|
|
result.setCheckStatus(CommAsyncStatusEnum.SUCCESS.getCode());
|
|
@@ -207,6 +224,7 @@ public class GisSurveySystemChecker {
|
|
if (isolatedLinesFuture != null) isolatedLinesFuture.cancel(true);
|
|
if (isolatedLinesFuture != null) isolatedLinesFuture.cancel(true);
|
|
if (duplicatePointsFuture != null) duplicatePointsFuture.cancel(true);
|
|
if (duplicatePointsFuture != null) duplicatePointsFuture.cancel(true);
|
|
if (overlapLinesFuture != null) overlapLinesFuture.cancel(true);
|
|
if (overlapLinesFuture != null) overlapLinesFuture.cancel(true);
|
|
|
|
+ if (elevationDiffFuture != null) elevationDiffFuture.cancel(true);
|
|
|
|
|
|
//失败信息
|
|
//失败信息
|
|
result.setCheckStatus(CommAsyncStatusEnum.FAIL.getCode());
|
|
result.setCheckStatus(CommAsyncStatusEnum.FAIL.getCode());
|