检测距离/代码优化
This commit is contained in:
parent
1cc7fd843d
commit
fe186d3117
@ -147,7 +147,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
return;
|
||||
}
|
||||
|
||||
if (RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getExecutionState())
|
||||
if (ObjectUtil.isNotEmpty(robotCompleteTaskDTO.getCommandStatus())
|
||||
&& RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getCommandStatus().getExecutionState())) {
|
||||
log.info("任务未开始 :{}", robotCompleteTaskDTO.getOrderId());
|
||||
}else if (RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getExecutionState())
|
||||
|| RobotExecutionStateConstant.STOP.equals(robotCompleteTaskDTO.getExecutionState())
|
||||
|| RobotExecutionStateConstant.CLOSE.equals(robotCompleteTaskDTO.getExecutionState())) {
|
||||
log.info("任务未开始/暂停/取消 :{}", robotCompleteTaskDTO.getOrderId());
|
||||
@ -571,6 +574,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
Long taskStage = robotTaskDetailDO.getTaskStage();
|
||||
log.info("任务 :{} , 当前阶段 :{}",robotCompleteTaskDTO.getOrderId(),taskStage);
|
||||
|
||||
RobotTaskDO robotTask = robotTaskMapper.selectById(robotTaskDetailDO.getRobotTaskId());
|
||||
|
||||
@ -579,7 +583,9 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
RobotTaskDetailActionLogSaveReqVO logOne = new RobotTaskDetailActionLogSaveReqVO();
|
||||
if (PathTaskTypeEnum.TAKE_RELEASE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
if (CommandTypeEnum.MOVE_POSES.getType().equals(commandType) && RobotTaskStageEnum.UN_START.getType().equals(taskStage)) {
|
||||
if (CommandTypeEnum.MOVE_POSES.getType().equals(commandType) && (RobotTaskStageEnum.UN_START.getType().equals(taskStage)
|
||||
|| RobotTaskStageEnum.GO_TAKE.getType().equals(taskStage)
|
||||
|| RobotTaskStageEnum.TAKEING.getType().equals(taskStage))) {
|
||||
logOne.setActionMsg("车辆正在前往" + robotTaskDetailDO.getFromLocationNo() + "取货");
|
||||
robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.GO_TAKE.getType());
|
||||
} else if (CommandTypeEnum.WORK_PICK_UP_GOODS.getType().equals(commandType)) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.system.api.robot;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotWorkStatusDTO;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotExecutionStateConstant;
|
||||
@ -47,6 +48,10 @@ public class RobotWorkStatusApiImpl implements RobotWorkStatusApi {
|
||||
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
RobotWorkStatusDTO data = JSON.parseObject(message, RobotWorkStatusDTO.class);
|
||||
if (ObjectUtil.isEmpty(data.getOrderId())) {
|
||||
log.info("任务id为空,不进行处理");
|
||||
return;
|
||||
}
|
||||
String robotNo = robotInformationService.getRobotNoByMac(data.getMac());
|
||||
RobotOperationLogSaveReqVO createReqVO = RobotOperationLogSaveReqVO.builder()
|
||||
.orderId(Long.valueOf(data.getOrderId()))
|
||||
|
@ -72,9 +72,9 @@ public class MqttUtils {
|
||||
}
|
||||
|
||||
if (message.length() > 510) {
|
||||
log.info("发送的主题 :{}, 内容 :{}",topic, message.substring(0, 500));
|
||||
log.info("111111发送的主题 :{}, 内容 :{}",topic, message.substring(0, 500));
|
||||
}else {
|
||||
log.info("发送的主题 :{}, 内容 :{}",topic, message);
|
||||
log.info("111111发送的主题 :{}, 内容 :{}",topic, message);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,4 +36,5 @@ public class ZnConfigConstant {
|
||||
private Boolean taskNotCheck;
|
||||
private Double checkShortestDistance;
|
||||
private Double checkLongestDistance;
|
||||
private String mapCheckDistance;
|
||||
}
|
||||
|
@ -165,4 +165,12 @@ public class PositionMapItemController {
|
||||
map.put("LINE",lineList);
|
||||
return success(map);
|
||||
}
|
||||
|
||||
@GetMapping("/getCheckDistance")
|
||||
@Operation(summary = "获取检测点距离")
|
||||
@PreAuthorize("@ss.hasPermission('system:position-map-item:getCheckDistance')")
|
||||
public CommonResult<String> getCheckDistance() {
|
||||
String distance = positionMapItemService.getCheckDistance();
|
||||
return success(distance);
|
||||
}
|
||||
}
|
||||
|
@ -128,7 +128,6 @@ public class RobotInformationController {
|
||||
@Operation(summary = "获得车辆信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('robot:information:list')")
|
||||
public CommonResult<PageResult<RobotInformationPageRespVO>> getRobotList(@Valid RobotInformationPageReqVO pageReqVO) {
|
||||
pageReqVO.setPageSize(300);
|
||||
PageResult<RobotInformationPageRespVO> pageResult = informationService.getInformationPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, RobotInformationPageRespVO.class));
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public class ThreeDimensionalScheduled {
|
||||
private static final ExecutorService FIXED_THREAD_POOL = Executors.newFixedThreadPool(3);
|
||||
|
||||
// 这个方法将每200毫秒执行一次
|
||||
// @Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS)
|
||||
@Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS)
|
||||
public void executeTask() {
|
||||
FIXED_THREAD_POOL.execute(this::sendData);
|
||||
}
|
||||
|
@ -174,6 +174,12 @@ public class PathPlanningServiceImpl implements PathPlanningService {
|
||||
assembleDataToPP(relatedPathNode, positionMapLineDOS);
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// commonApi.commonMethod(new PositionMapLineDTO(), PathPlanningTopicConstant.SYNCHRONOUS_ALL_MAP_LINE_END);
|
||||
mqttUtils.pub(PathPlanningTopicConstant.SYNCHRONOUS_ALL_MAP_LINE_END,JSON.toJSONString(new PositionMapLineDO()));
|
||||
}
|
||||
|
@ -151,4 +151,6 @@ public interface PositionMapItemService extends IService<PositionMapItemDO> {
|
||||
* @param mapId
|
||||
*/
|
||||
void checkHaveBindChangePoint(Long mapId);
|
||||
|
||||
String getCheckDistance();
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds;
|
||||
import cn.iocoder.yudao.module.system.config.poperties.ZnConfigConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.log.vo.UserOperationLogSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapConditionDTO;
|
||||
@ -26,6 +27,7 @@ import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -66,6 +68,9 @@ public class PositionMapItemServiceImpl extends ServiceImpl<PositionMapItemMappe
|
||||
@Resource
|
||||
private PositionChangePointBindingMapper positionChangePointBindingMapper;
|
||||
|
||||
@Autowired
|
||||
private ZnConfigConstant znConfigConstant;
|
||||
|
||||
@Override
|
||||
public Long createPositionMapItem(PositionMapItemSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
@ -267,4 +272,9 @@ public class PositionMapItemServiceImpl extends ServiceImpl<PositionMapItemMappe
|
||||
throw exception(MAP_EXIST_BINDING_POINT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCheckDistance() {
|
||||
return znConfigConstant.getMapCheckDistance();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -698,6 +698,16 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
List<RobotCameraAddVO> cameraAddVOList = cameraService.getCameraByRobotNo(robotInformationDO.getRobotNo());
|
||||
bean.setCameraAddVOList(cameraAddVOList);
|
||||
|
||||
List<RobotMapStopDO> stopRobotNoByRobotNo = mapStopService.getStopRobotNoByRobotNo(robotInformationDO.getRobotNo());
|
||||
if (ObjectUtil.isEmpty(stopRobotNoByRobotNo)) {
|
||||
return bean;
|
||||
} else if (RobotStatusEnum.STAND_BY.getType().equals(robotInformationDO.getRobotStatus())) {
|
||||
robotInformationDO.setRobotStatus(RobotStatusEnum.STOP_FREE.getType());
|
||||
} else {
|
||||
robotInformationDO.setRobotStatus(RobotStatusEnum.STOP_DOING.getType());
|
||||
}
|
||||
|
||||
return bean;
|
||||
}
|
||||
|
||||
@ -712,11 +722,19 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
@Override
|
||||
public PageResult<RobotInformationPageRespVO> getInformationPage(RobotInformationPageReqVO pageReqVO) {
|
||||
PageResult<RobotInformationDO> pageResult = informationMapper.selectPage(pageReqVO);
|
||||
List<RobotInformationDO> list = informationMapper.selectList(new LambdaQueryWrapperX<RobotInformationDO>()
|
||||
.eqIfPresent(RobotInformationDO::getRobotModelId, pageReqVO.getRobotModelId())
|
||||
.eqIfPresent(RobotInformationDO::getRobotModelNumber, pageReqVO.getRobotModelNumber())
|
||||
.likeIfPresent(RobotInformationDO::getRobotNo, pageReqVO.getRobotNo())
|
||||
.eqIfPresent(RobotInformationDO::getRobotTaskModel, pageReqVO.getRobotTaskModel())
|
||||
.eqIfPresent(RobotInformationDO::getMacAddress, pageReqVO.getMacAddress())
|
||||
.eqIfPresent(RobotInformationDO::getRobotStatus, pageReqVO.getRobotStatus())
|
||||
.betweenIfPresent(RobotInformationDO::getCreateTime, pageReqVO.getCreateTime())
|
||||
.orderByDesc(RobotInformationDO::getId));
|
||||
|
||||
PageResult<RobotInformationPageRespVO> dataPage = new PageResult<>();
|
||||
dataPage.setTotal(pageResult.getTotal());
|
||||
List<RobotInformationDO> list = pageResult.getList();
|
||||
Long total = ObjectUtil.isEmpty(list) ? 0L : list.size();
|
||||
dataPage.setTotal(total);
|
||||
List<RobotInformationPageRespVO> targetList = BeanUtil.copyToList(list, RobotInformationPageRespVO.class);
|
||||
|
||||
List<RobotMapStopDO> allRobotMapStops = mapStopService.getAllRobotMapStops(ZeroOneEnum.ONE.getType());
|
||||
@ -1772,6 +1790,10 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
TaskToPathPlanningDTO pathPlanning = JSONUtil.toBean((String) o, TaskToPathPlanningDTO.class);
|
||||
|
||||
robotInformationDO.setTaskDetailId(id);
|
||||
robotInformationDO.setRobotStatus(RobotStatusEnum.DOING.getType());
|
||||
informationMapper.updateById(robotInformationDO);
|
||||
|
||||
TaskRobotNoLimittationAreaDTO taskRobotNoLimittationAreaDTO =
|
||||
robotPathPlanningService.getRobotNoLimitationArea(Collections.singletonList(robotInformationDO)).get(0);
|
||||
|
||||
|
@ -1687,6 +1687,9 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
case RELEASE:
|
||||
msg = "放货点 " + robotTaskRespVO.getToLocationNo();
|
||||
break;
|
||||
case MOVE_TO_POINT:
|
||||
msg = "移动到点位 " + robotTaskRespVO.getToLocationNo();
|
||||
break;
|
||||
default:
|
||||
log.error("任务类型不存在");
|
||||
}
|
||||
|
@ -80,11 +80,11 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
||||
CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper<CommonConfigDO>()
|
||||
.eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.CHARG_CONFIG.getType()));
|
||||
|
||||
Boolean needDoCharge = needDoCharge(commonConfigDO);
|
||||
/*Boolean needDoCharge = needDoCharge(commonConfigDO);
|
||||
if (needDoCharge) {
|
||||
log.info("所有机器人都需要去执行充电任务");
|
||||
return pair;
|
||||
}
|
||||
}*/
|
||||
|
||||
List<String> remoteRobotNos = controllerInformationMapper.getRemoteControllerRobotNos();
|
||||
log.info("远遥中的车辆 :{}",JSON.toJSONString(remoteRobotNos));
|
||||
|
@ -120,7 +120,7 @@ public class RobotMapStopServiceImpl extends ServiceImpl<RobotMapStopMapper, Rob
|
||||
@Override
|
||||
public List<String> getStopRobotNoByMapIds(Long id) {
|
||||
List<RobotMapStopDO> positionMapItems = mapStopMapper.selectList(new LambdaQueryWrapperX<RobotMapStopDO>()
|
||||
.eq(RobotMapStopDO::getStopType, ZeroOneEnum.ZERO.getType())
|
||||
.eq(RobotMapStopDO::getStopType, ZeroOneEnum.ONE.getType())
|
||||
.eq(RobotMapStopDO::getPositionMapId, id));
|
||||
if (ObjectUtil.isEmpty(positionMapItems)) {
|
||||
return new ArrayList<>();
|
||||
|
@ -214,6 +214,7 @@ zn:
|
||||
task_not_check: true # 创建任务不校验
|
||||
check_shortest_distance: 1.5 # 检测点最短距离
|
||||
check_longest_distance: 3.0 # 检测点最长距离
|
||||
map_check_distance: 2.2 #检测点成成距离
|
||||
|
||||
|
||||
#海康威视的相关配置
|
||||
|
@ -249,6 +249,7 @@ zn:
|
||||
task_not_check: true # 创建任务不校验
|
||||
check_shortest_distance: 1.5 # 检测点最短距离
|
||||
check_longest_distance: 3.0 # 检测点最长距离
|
||||
map_check_distance: 2.2 #检测点成成距离
|
||||
|
||||
logging:
|
||||
file:
|
||||
|
@ -242,6 +242,7 @@ zn:
|
||||
task_not_check: true # 创建任务不校验
|
||||
check_shortest_distance: 1.5 # 检测点最短距离
|
||||
check_longest_distance: 3.0 # 检测点最长距离
|
||||
map_check_distance: 2.2 #检测点成成距离
|
||||
|
||||
#海康威视的相关配置
|
||||
isc:
|
||||
|
Loading…
Reference in New Issue
Block a user