Procházet zdrojové kódy

数据结构添加

zhanghaijun před 2 roky
rodič
revize
32629ab8c6

+ 33 - 0
train-server/src/main/java/top/haijunit/train/domain/dto/RouteDto.java

@@ -0,0 +1,33 @@
+package top.haijunit.train.domain.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import top.haijunit.train.domain.constant.RouteStatus;
+import top.haijunit.train.domain.entity.RouteEntity;
+
+/**
+ * @author zhang
+ * @date 2023/11/21 06:53
+ * @description 进路
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RouteDto extends RouteEntity {
+
+    private RouteStatus status;
+
+    /** 是否触发进路 */
+    public boolean isTrigger(TrainDto train) {
+        double position = this.getTrigPosition();
+        return train.getFirst().getFrontPos() >= position && train.getLsat().getFrontPos() < position;
+    }
+
+    /** 是否包含道岔 */
+    public boolean isContainSwitch(){
+        // TODO 是否包含道岔
+        return false;
+    }
+    public boolean isValid(){
+        return this.getStatus() == RouteStatus.IDLE;
+    }
+}

+ 4 - 9
train-server/src/main/java/top/haijunit/train/domain/dto/TrainDto.java

@@ -2,7 +2,6 @@ package top.haijunit.train.domain.dto;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import top.haijunit.train.domain.constant.DirectionEnum;
 import top.haijunit.train.domain.entity.TrainEntity;
 
 /**
@@ -14,12 +13,8 @@ import top.haijunit.train.domain.entity.TrainEntity;
 @EqualsAndHashCode(callSuper = true)
 public class TrainDto extends TrainEntity {
 
-    // 速度
-    private double speed;
-    // 加速度
-    private double speedFull;
-    // 车头位置
-    private double frontPos;
-    // 车尾位置
-    private double tailPos;
+    // 上一个周期的信息
+    private TravelDto first;
+    // 下一个周期的信息
+    private TravelDto lsat;
 }

+ 2 - 2
train-server/src/main/java/top/haijunit/train/domain/entity/RouteEntity.java

@@ -20,11 +20,11 @@ public class RouteEntity {
     // 关联区段列表
     private String seleIds;
     // 关联道岔
-    private String switchs;
+    private String switchId;
     // 关联道岔状态
     private String switchState;
     // 触发点位置
-    private String trigPosition;
+    private double trigPosition;
     // 进路方向
     private String direction;
 }

+ 36 - 0
train-server/src/main/java/top/haijunit/train/service/RouteService.java

@@ -0,0 +1,36 @@
+package top.haijunit.train.service;
+
+import lombok.extern.slf4j.Slf4j;
+import top.haijunit.train.domain.constant.RouteStatus;
+import top.haijunit.train.domain.dto.RouteDto;
+import top.haijunit.train.domain.dto.TrainDto;
+import top.haijunit.train.domain.entity.RouteEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zhang
+ * @date 2023/11/21 06:45
+ * @description 进路业务处理
+ */
+@Slf4j
+public class RouteService {
+
+    List<RouteDto> routeList = new ArrayList<>();
+
+    public void run(TrainDto train) {
+        for (RouteDto route : routeList) {
+            if (!route.isTrigger(train)) {
+                continue;
+            }
+            if (route.isValid() && route.isContainSwitch()) {
+                // TODO 出清且包含到拆
+                route.setStatus(RouteStatus.LOCK);
+            } else if (route.isValid()) {
+                // TODO 出清且不包括到道岔
+                route.setStatus(RouteStatus.LOCK);
+            }
+        }
+    }
+}

+ 3 - 0
train-web/src/pages/train/core/DrawTrack.ts

@@ -0,0 +1,3 @@
+class DrawTrack {
+
+}