diff --git a/src/main/java/org/nl/apt15e/Apt15EApplication.java b/src/main/java/org/nl/apt15e/Apt15EApplication.java
index 31667dc..a122d26 100644
--- a/src/main/java/org/nl/apt15e/Apt15EApplication.java
+++ b/src/main/java/org/nl/apt15e/Apt15EApplication.java
@@ -8,6 +8,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.socket.config.annotation.EnableWebSocket;
@EnableAsync
@EnableScheduling
diff --git a/src/main/java/org/nl/apt15e/apt/ext/controller/RcsToAptController.java b/src/main/java/org/nl/apt15e/apt/ext/controller/RcsToAptController.java
index fabeb76..9134f72 100644
--- a/src/main/java/org/nl/apt15e/apt/ext/controller/RcsToAptController.java
+++ b/src/main/java/org/nl/apt15e/apt/ext/controller/RcsToAptController.java
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
+
/**
*
* RCS调用APT控制层
diff --git a/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskChainPoDto.java b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskChainPoDto.java
new file mode 100644
index 0000000..f2857f7
--- /dev/null
+++ b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskChainPoDto.java
@@ -0,0 +1,42 @@
+package org.nl.apt15e.apt.ext.dto;
+
+import lombok.Data;
+
+/**
+ * @author dsh
+ * 2025/7/30
+ * 任务链信息
+ */
+@Data
+public class RcsToAptTaskChainPoDto {
+
+ /**
+ * 车辆 ID
+ */
+ private Long amrId;
+
+ /**
+ * 任务链开始时间
+ */
+ private Long startTime;
+
+ /**
+ * 任务链id
+ */
+ private Long id;
+
+ /**
+ * 区域 ID
+ */
+ private Long areaId;
+
+ /**
+ * 任务链创建时间
+ */
+ private Long createTime;
+
+ /**
+ * 任务链状态 0未执行 1正在执行 2已完成 3取消 4异常 5跳过 6暂停
+ */
+ private Integer status;
+}
diff --git a/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskDto.java b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskDto.java
index 2e972f0..b9c1108 100644
--- a/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskDto.java
+++ b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskDto.java
@@ -14,76 +14,80 @@ import lombok.Data;
@Data
public class RcsToAptTaskDto {
- /**
- * 任务链 ID
- */
- private String taskChainId;
+// /**
+// * 任务链 ID
+// */
+// private String taskChainId;
+//
+// /**
+// * 区域 ID
+// */
+// private String areaId;
+//
+// /**
+// * 任务创建时间
+// */
+// private String createTime;
+//
+// /**
+// * 任务链开始时间
+// */
+// private String chainStartTime;
+//
+// /**
+// * 任务链结束时间
+// */
+// private String chainFinishTime;
+//
+// /**
+// * 车辆 ID
+// */
+// private String amrId;
+//
+// /**
+// * 任务状态
+// * 0-未执行,1-子任务正在执行,2-子任务已完成,3-任务链取消
+// * 4-子任务异常,5-任务链跳过,6-任务链异常,7-任务链完成
+// */
+// private String status;
+//
+// /**
+// * 子任务 ID
+// */
+// private String taskId;
+//
+// /**
+// * 小车实际动作类型
+// */
+// private String action;
+//
+// /**
+// * 子任务类型
+// */
+// private String taskType;
+//
+// /**
+// * 目标点编号
+// */
+// private String endPointCode;
+//
+// /**
+// * 地图 id
+// */
+// private String mapId;
+//
+// /**
+// * 小车状态 id
+// */
+// private String stateId;
+//
+// /**
+// * 小车状态名称
+// */
+// private String state;
- /**
- * 区域 ID
- */
- private String areaId;
+ private RcsToAptTaskPo taskPo;
- /**
- * 任务创建时间
- */
- private String createTime;
-
- /**
- * 任务链开始时间
- */
- private String chainStartTime;
-
- /**
- * 任务链结束时间
- */
- private String chainFinishTime;
-
- /**
- * 车辆 ID
- */
- private String amrId;
-
- /**
- * 任务状态
- * 0-未执行,1-子任务正在执行,2-子任务已完成,3-任务链取消
- * 4-子任务异常,5-任务链跳过,6-任务链异常,7-任务链完成
- */
- private String status;
-
- /**
- * 子任务 ID
- */
- private String taskId;
-
- /**
- * 小车实际动作类型
- */
- private String action;
-
- /**
- * 子任务类型
- */
- private String taskType;
-
- /**
- * 目标点编号
- */
- private String endPointCode;
-
- /**
- * 地图 id
- */
- private String mapId;
-
- /**
- * 小车状态 id
- */
- private String stateId;
-
- /**
- * 小车状态名称
- */
- private String state;
+ private RcsToAptTaskChainPoDto taskChainPo;
}
diff --git a/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskPo.java b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskPo.java
new file mode 100644
index 0000000..0e70580
--- /dev/null
+++ b/src/main/java/org/nl/apt15e/apt/ext/dto/RcsToAptTaskPo.java
@@ -0,0 +1,54 @@
+package org.nl.apt15e.apt.ext.dto;
+
+import lombok.Data;
+
+/**
+ * @author dsh
+ * 2025/7/30
+ * 单任务信息
+ */
+@Data
+public class RcsToAptTaskPo {
+
+ /**
+ * 动作类型 O0 移动任务 O12 直接上料任务 O13 直接下料任务
+ */
+ private String taskType;
+
+ /**
+ * 小车实际动作类型
+ */
+ private Integer action;
+
+ /**
+ * 开始时间
+ */
+ private Long startTime;
+
+ /**
+ * 任务编号
+ */
+ private Integer id;
+
+ /**
+ * 完成时间
+ */
+ private Long finishTime;
+
+ /**
+ * 目标点编号
+ */
+ private String endPointCode;
+
+ /**
+ * 地图 id
+ */
+ private Long mapId;
+
+ /**
+ * 任务状态
+ * 0-未执行,1-子任务正在执行,2-子任务已完成,3-任务链取消
+ * 4-子任务异常,5-任务链跳过,6-任务链异常,7-任务链完成
+ */
+ private Integer status;
+}
diff --git a/src/main/java/org/nl/apt15e/apt/ext/enums/RcsTaskChainStatus.java b/src/main/java/org/nl/apt15e/apt/ext/enums/RcsTaskChainStatus.java
new file mode 100644
index 0000000..5454a16
--- /dev/null
+++ b/src/main/java/org/nl/apt15e/apt/ext/enums/RcsTaskChainStatus.java
@@ -0,0 +1,52 @@
+package org.nl.apt15e.apt.ext.enums;
+
+import lombok.Data;
+import lombok.Getter;
+
+/**
+ * @author dsh
+ * 2025/7/30
+ */
+@Getter
+public enum RcsTaskChainStatus {
+ /**
+ * 未执行
+ */
+ CREATE("0", "未执行", "未执行"),
+ /**
+ * 正在执行
+ */
+ EXECUTING("1", "正在执行", "正在执行"),
+ /**
+ * 已完成
+ */
+ FINISHED("2", "已完成", "已完成"),
+ /**
+ * 取消
+ */
+ CANCELED("3", "取消", "取消"),
+ /**
+ * 异常
+ */
+ UNUSUAL("4", "异常", "异常"),
+ /**
+ * 任务链跳过
+ */
+ SKIP("5", "跳过", "跳过"),
+ /**
+ * 暂停
+ */
+ PAUSED("6", "暂停", "暂停")
+ ;
+
+
+ RcsTaskChainStatus(String code, String name, String desc) {
+ this.code = code;
+ this.name = name;
+ this.desc = desc;
+ }
+
+ private final String code;
+ private final String name;
+ private final String desc;
+}
diff --git a/src/main/java/org/nl/apt15e/apt/ext/service/impl/RcsToAptServiceImpl.java b/src/main/java/org/nl/apt15e/apt/ext/service/impl/RcsToAptServiceImpl.java
index 45adc6d..7ce811d 100644
--- a/src/main/java/org/nl/apt15e/apt/ext/service/impl/RcsToAptServiceImpl.java
+++ b/src/main/java/org/nl/apt15e/apt/ext/service/impl/RcsToAptServiceImpl.java
@@ -2,9 +2,13 @@ package org.nl.apt15e.apt.ext.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
+import org.nl.apt15e.apt.ext.dto.RcsToAptTaskChainPoDto;
import org.nl.apt15e.apt.ext.dto.RcsToAptTaskDto;
+import org.nl.apt15e.apt.ext.dto.RcsToAptTaskPo;
+import org.nl.apt15e.apt.ext.enums.RcsTaskChainStatus;
import org.nl.apt15e.apt.ext.enums.RcsTaskStatus;
import org.nl.apt15e.apt.ext.service.RcsToAptService;
import org.nl.apt15e.apt.station.dao.Station;
@@ -43,31 +47,44 @@ public class RcsToAptServiceImpl implements RcsToAptService {
public JSONObject reportTaskInfo(RcsToAptTaskDto dto) {
log.info("RCS上报任务信息输入参数{}", dto.toString());
JSONObject result = new JSONObject();
+ RcsToAptTaskPo rcsToAptTaskPo = dto.getTaskPo();
+ RcsToAptTaskChainPoDto rcsToAptTaskChainPoDto = dto.getTaskChainPo();
Task task = iTaskService.getOne(
new QueryWrapper().lambda()
- .eq(Task::getTask_id, dto.getTaskChainId())
+ .eq(Task::getTask_id, rcsToAptTaskChainPoDto.getId().toString())
);
if (ObjectUtil.isEmpty(task)) {
result.put("receive", "1");
- result.put("message", "任务不存在!【"+dto.getTaskChainId()+"】");
+ result.put("message", "任务不存在!【"+rcsToAptTaskChainPoDto.getId()+"】");
log.info("RCS上报任务信息输出参数{}", result.toString());
return result;
}
// 更新任务状态
- String status = dto.getStatus();
- if (status.equals(RcsTaskStatus.SON_EXECUTING.getCode()) || status.equals(RcsTaskStatus.SON_FINISHED.getCode())) {
- task.setTask_status(TaskStatus.EXECUTING.getCode());
- } else if (status.equals(RcsTaskStatus.TASK_FINISHED.getCode())) {
+ String taskChainPoStatus = rcsToAptTaskChainPoDto.getStatus().toString();
+// if (taskPoStatus.equals(RcsTaskStatus.SON_EXECUTING.getCode()) || taskPoStatus.equals(RcsTaskStatus.SON_FINISHED.getCode())) {
+// task.setTask_status(TaskStatus.EXECUTING.getCode());
+// } else if (taskChainPoStatus.equals(RcsTaskStatus.TASK_FINISHED.getCode())) {
+// task.setTask_status(TaskStatus.FINISHED.getCode());
+// }
+ if (RcsTaskChainStatus.FINISHED.getCode().equals(taskChainPoStatus)) {
task.setTask_status(TaskStatus.FINISHED.getCode());
+ } else if (RcsTaskChainStatus.EXECUTING.getCode().equals(taskChainPoStatus)) {
+ task.setTask_status(TaskStatus.EXECUTING.getCode());
+ } else if (RcsTaskChainStatus.CANCELED.getCode().equals(taskChainPoStatus)) {
+ task.setTask_status(TaskStatus.CANCELED.getCode());
}
// 更新当前执行点位
- String endPointCode = dto.getEndPointCode();
- if (ObjectUtil.isNotEmpty(endPointCode)) {
- Station staDao = stationService.getById(endPointCode);
- task.setTask_point(staDao.getStation_name());
+ if (ObjectUtil.isNotEmpty(rcsToAptTaskPo)){
+ String endPointCode = rcsToAptTaskPo.getEndPointCode();
+ if (ObjectUtil.isNotEmpty(endPointCode)) {
+ Station staDao = stationService.getOne(new LambdaQueryWrapper<>(Station.class)
+ .eq(Station::getStation_code, endPointCode));
+ task.setTask_point(staDao.getStation_name());
+ }
}
+
iTaskService.updateById(task);
result.put("receive", "1");
diff --git a/src/main/java/org/nl/apt15e/apt/map/dto/PointCloudDataDto.java b/src/main/java/org/nl/apt15e/apt/map/dto/PointCloudDataDto.java
new file mode 100644
index 0000000..233988e
--- /dev/null
+++ b/src/main/java/org/nl/apt15e/apt/map/dto/PointCloudDataDto.java
@@ -0,0 +1,26 @@
+package org.nl.apt15e.apt.map.dto;
+
+import lombok.Data;
+
+/**
+ * @author dsh
+ * 2025/7/25
+ */
+@Data
+public class PointCloudDataDto {
+
+ /**
+ * 点云x坐标
+ */
+ private double x;
+
+ /**
+ * 点云y坐标
+ */
+ private double y;
+
+ /**
+ * 点云强度
+ */
+ private double intensity;
+}
diff --git a/src/main/java/org/nl/apt15e/apt/task/service/impl/TaskServiceImpl.java b/src/main/java/org/nl/apt15e/apt/task/service/impl/TaskServiceImpl.java
index a63894f..737b05f 100644
--- a/src/main/java/org/nl/apt15e/apt/task/service/impl/TaskServiceImpl.java
+++ b/src/main/java/org/nl/apt15e/apt/task/service/impl/TaskServiceImpl.java
@@ -39,6 +39,8 @@ public class TaskServiceImpl extends ServiceImpl implements IT
JSONObject taskChain = new JSONObject();
taskChain.put("areaId", vehicleInfo.getAreaId());
taskChain.put("amrId", vehicleInfo.getId());
+ // 1需要RCS回传,0不需要回传
+ taskChain.put("isReturn", 1);
result.put("taskChain",taskChain);
// 组织站点信息
diff --git a/src/main/java/org/nl/apt15e/apt/teaching/rest/TeachingController.java b/src/main/java/org/nl/apt15e/apt/teaching/rest/TeachingController.java
index 6c4a43e..c7d44a4 100644
--- a/src/main/java/org/nl/apt15e/apt/teaching/rest/TeachingController.java
+++ b/src/main/java/org/nl/apt15e/apt/teaching/rest/TeachingController.java
@@ -37,8 +37,8 @@ public class TeachingController {
}
@PostMapping("/setStation")
- private ResponseEntity