|
@@ -103,11 +103,16 @@ public interface ITurnPointCalculator {
|
|
|
Random rd = new Random();
|
|
|
LevelInfo info = turnPointList.get(0).getLevelInfo();
|
|
|
List<TurnPoint> result = new ArrayList<>();
|
|
|
+ TurnPoint lastCd = turnPointList.stream().filter(TurnPoint::isCe).reduce((a,b)->b).orElse(null);
|
|
|
for (TurnPoint tp : turnPointList) {
|
|
|
try {
|
|
|
+ if(tp.equals(lastCd)){
|
|
|
+ /*已经是最后一个测点*/
|
|
|
+ tp.getLevelInfo().setHasCe(Boolean.FALSE);
|
|
|
+ }
|
|
|
/*先判断是不是转点*/
|
|
|
if (tp.getType().equals(TurnPoint.ZD)) {
|
|
|
- if (tp.getQ() == null && tp.getH() == null && tp.getBmd() != null) {
|
|
|
+ if (Func.isBlank(tp.getQ()) && Func.isBlank(tp.getH()) && Func.isNotBlank(tp.getBmd())) {
|
|
|
double dh = Math.abs(tp.getLevelInfo().getSightHeight() - tp.getBmd0L());
|
|
|
double big = BigDecimal.valueOf(rd.nextDouble() * (info.getStep() - dh) + dh).setScale(info.getScale(), ROUND_HALF_UP).doubleValue();
|
|
|
double small = big - dh;
|
|
@@ -118,26 +123,29 @@ public interface ITurnPointCalculator {
|
|
|
tp.setH(small);
|
|
|
tp.setQ(big);
|
|
|
}
|
|
|
- tp.setSc(info.getSightHeight() - tp.getQ0L());
|
|
|
/* 更新仪器高*/
|
|
|
info.setSightHeight(tp.getBmd0L());
|
|
|
- } else if (tp.getQ() == null && tp.getH() != null && tp.getBmd() != null) {
|
|
|
+ } else if ( Func.isBlank(tp.getQ()) && Func.isNotBlank(tp.getH()) && Func.isNotBlank(tp.getBmd())) {
|
|
|
tp.setQ(info.getSightHeight() + tp.getH0L() - tp.getBmd0L());
|
|
|
info.setSightHeight(tp.getBmd0L());
|
|
|
- } else if (tp.getQ() != null && tp.getH() == null && tp.getBmd() != null) {
|
|
|
+ } else if (Func.isNotBlank(tp.getQ()) && Func.isBlank(tp.getH()) && Func.isNotBlank(tp.getBmd())) {
|
|
|
tp.setH(info.getSightHeight() - tp.getQ0L() - tp.getBmd0L());
|
|
|
info.setSightHeight(tp.getBmd0L());
|
|
|
- } else if (tp.getQ() != null && tp.getH() != null && tp.getBmd() == null) {
|
|
|
+ } else if (Func.isNotBlank(tp.getQ() ) && Func.isNotBlank(tp.getH()) && Func.isBlank( tp.getBmd()) ) {
|
|
|
tp.setBmd(info.getSightHeight() + tp.getH0L() - tp.getQ0L());
|
|
|
info.setSightHeight(tp.getBmd0L());
|
|
|
- } else if(tp.getQ() != null && tp.getH() != null && tp.getBmd() != null){
|
|
|
+ } else if(Func.isNotBlank(tp.getQ()) && Func.isNotBlank(tp.getH()) && Func.isNotBlank(tp.getBmd())){
|
|
|
info.setSightHeight(tp.getBmd0L());
|
|
|
}else {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
/*可能存在自动插入转点情况,所以每个转点的序号需要实时计算*/
|
|
|
- tp.setName("ZD"+info.getCloseZd().size());
|
|
|
- tp.getLevelInfo().getCloseZd().add(tp.clone());
|
|
|
+ if(tp.getLevelInfo().getHasCe()) {
|
|
|
+ tp.setName("ZD"+info.getCloseZd().size());
|
|
|
+ tp.getLevelInfo().getCloseZd().add(tp.clone());
|
|
|
+ }else{
|
|
|
+ tp.getLevelInfo().getCloseZd().remove(tp.getLevelInfo().getCloseZd().size()-1);
|
|
|
+ }
|
|
|
} else if (tp.getType().equals(TurnPoint.CLOSE)) {
|
|
|
/*闭合转点*/
|
|
|
tp.setQ(info.getSightHeight() - tp.getSc0L());
|