上报车辆规划路径给前端
This commit is contained in:
parent
2c213025ea
commit
7dd66f2040
@ -12,8 +12,8 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PathPosedsDTO {
|
||||
private String order_id;
|
||||
private String order_type;
|
||||
private String orderId;
|
||||
private String orderType;
|
||||
private String robotNo;
|
||||
private List<PathPosedsDataDTO> data;
|
||||
}
|
||||
|
@ -11,5 +11,6 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
public class PathPosedsDataDTO {
|
||||
private PathPosedsDataArgDTO arg;
|
||||
private Integer is_work;
|
||||
private String commandType;
|
||||
private Integer isCommandEnd;
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ public class MqttFactory {
|
||||
return BeanUtils.getBean(PathPlanningDistributionTaskServiceImpl.class);
|
||||
case TASK_ASSIGNMENT_FAIL:
|
||||
return BeanUtils.getBean(PathPlanningDistributionFailServiceImpl.class);
|
||||
case ROBOT_TASK_MOVE:
|
||||
case ROBOT_MOVE_POSE_PLANNING:
|
||||
return BeanUtils.getBean(PathPlanningMoveServiceImpl.class);
|
||||
default :
|
||||
return BeanUtils.getBean(RobotTaskStatusServiceImpl.class);
|
||||
|
@ -1,7 +1,6 @@
|
||||
package cn.iododer.yudao.module.mqtt.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -25,7 +24,8 @@ public enum DefineSubTopicEnum {
|
||||
SYNCHRONOUS_ALL_MAP_REQUEST("SYNCHRONOUS_ALL_MAP_REQUEST", 2,"路径规划需要初始数据上报"),
|
||||
TASK_ASSIGNMENT_FEEDBACK("TASK_ASSIGNMENT_FEEDBACK", 2,"路径规划任务分配上报"),
|
||||
TASK_ASSIGNMENT_FAIL("TASK_ASSIGNMENT_FAIL", 2,"路径规划失败上报"),
|
||||
ROBOT_TASK_MOVE ("ROBOT_TASK_MOVE", 2,"路径规划上报实时路径");
|
||||
UPDATE_ROUTE_DISPLAY_PLANNING("UPDATE_ROUTE_DISPLAY_PLANNING", 2,"车辆即将走的点位"),
|
||||
ROBOT_MOVE_POSE_PLANNING("ROBOT_MOVE_POSE_PLANNING", 2,"路径规划上报实时路径");
|
||||
|
||||
|
||||
private final String topic;
|
||||
|
@ -15,7 +15,7 @@ public class PathPlanningMoveServiceImpl implements MqttService{
|
||||
|
||||
@Override
|
||||
public void analysisMessage(String message) {
|
||||
log.info("收到路径规划的消息");
|
||||
pathApi.pathPlanningMove(message);
|
||||
log.info("收到路径规划规划即将要走的点位的消息 :{}",message);
|
||||
pathApi.pathPlanningMovePose(message);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
package cn.iododer.yudao.module.mqtt.service;
|
||||
|
||||
import cn.iocoder.yudao.module.system.api.path.PathApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class pathRouteDisplayPlanningServiceImpl implements MqttService{
|
||||
|
||||
@Resource
|
||||
private PathApi pathApi;
|
||||
|
||||
@Override
|
||||
public void analysisMessage(String message) {
|
||||
log.info("收到路径规划的消息 :{}",message);
|
||||
pathApi.pathPlanningMove(message);
|
||||
}
|
||||
}
|
@ -28,4 +28,8 @@ public interface PathApi {
|
||||
@PostMapping(PREFIX + "/pathPlanningMove")
|
||||
@Operation(summary = "路径规划需要初始化信息")
|
||||
void pathPlanningMove(@RequestParam("message") String message);
|
||||
|
||||
@PostMapping(PREFIX + "/pathPlanningMove")
|
||||
@Operation(summary = "路径规划要走的点位信息")
|
||||
void pathPlanningMovePose(@RequestParam("message") String message);
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
package cn.iocoder.yudao.module.system.api.robot.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PathPlanningMovePoseIdVO {
|
||||
private String id;
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package cn.iocoder.yudao.module.system.api.robot.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PathPlanningMovePoseVO {
|
||||
private String robotNo;
|
||||
private List<PathPlanningMovePoseIdVO> data;
|
||||
}
|
@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.system.api.robot.vo;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.RobotStatusDataPoseDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 车机响应信息
|
||||
*/
|
||||
@ -24,4 +26,9 @@ public class RobotInformationVO {
|
||||
* 点位信息
|
||||
*/
|
||||
public RobotStatusDataPoseDTO pose2d;
|
||||
|
||||
/**
|
||||
* 车辆即将走的点位
|
||||
*/
|
||||
private List<PathPlanningMovePoseIdVO> data;
|
||||
}
|
||||
|
@ -93,5 +93,14 @@ public class PathApiImpl implements PathApi {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆即将走的点位
|
||||
* @param message
|
||||
*/
|
||||
@Override
|
||||
public void pathPlanningMovePose(String message) {
|
||||
pathPlanningService.pathPlanningMovePose(message);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -38,4 +38,10 @@ public interface PathPlanningService {
|
||||
* @param type
|
||||
*/
|
||||
void updateBehavior(String orderId, String robotNo, String s, String type);
|
||||
|
||||
/**
|
||||
* 车辆即将走的点位
|
||||
* @param message
|
||||
*/
|
||||
void pathPlanningMovePose(String message);
|
||||
}
|
||||
|
@ -1,11 +1,16 @@
|
||||
package cn.iocoder.yudao.module.system.service.path;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.PathPlanningApi;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.dto.*;
|
||||
import cn.iocoder.yudao.module.mqtt.api.path.task.TaskPathPlanningDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.RequestProcessor;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.RobotPoseStatusDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.PathPlanningMovePoseVO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotInformationVO;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningTopicConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTopicConstant;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemSaveReqVO;
|
||||
@ -69,6 +74,9 @@ public class PathPlanningServiceImpl implements PathPlanningService {
|
||||
@Resource
|
||||
private CommonApi commonApi;
|
||||
|
||||
@Resource
|
||||
private RequestProcessor processor;
|
||||
|
||||
/**
|
||||
* 同步ware_position_map_line的点位信息
|
||||
*/
|
||||
@ -409,6 +417,26 @@ public class PathPlanningServiceImpl implements PathPlanningService {
|
||||
commonApi.commonMethod(build, PathPlanningTopicConstant.UPDATE_BEHAVIOR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆即将走的点位
|
||||
* @param message
|
||||
*/
|
||||
@Override
|
||||
public void pathPlanningMovePose(String message) {
|
||||
|
||||
PathPlanningMovePoseVO robotStatusData = JSON.parseObject(message, PathPlanningMovePoseVO.class);
|
||||
String mac = robotInformationService.getMacByRobotNo(robotStatusData.getRobotNo());
|
||||
Map<String, RobotInformationVO> robotInformationVOS = robotInformationService.getAllRobotByRedis();
|
||||
RobotInformationVO robotInformationVO = robotInformationVOS.get(mac);
|
||||
if (robotInformationVO == null) {
|
||||
robotInformationVO = robotInformationService.getRobotByRedis(mac);
|
||||
}
|
||||
robotInformationVO.setData(robotStatusData.getData());
|
||||
// 合并请求 - 这里接受到的数据都丢给 RequestProcessor - 再整合数据通过WebSocket丢给前端
|
||||
processor.handleRequest(robotInformationVO.getPose2d().getFloor() + "_" + robotInformationVO.getPose2d().getArea(),
|
||||
mac, JSONUtil.toJsonStr(robotInformationVO));
|
||||
}
|
||||
|
||||
public PositionMapLineDTO setPositionMapLineDTOData(PositionMapLineDTO positionMapLineDO) {
|
||||
PositionMapLineDTO build = PositionMapLineDTO.builder()
|
||||
.id(positionMapLineDO.getId())
|
||||
|
Loading…
Reference in New Issue
Block a user