| | |
| | | import com.zy.acs.manager.common.config.HikOrderProperties; |
| | | import com.zy.acs.manager.core.constant.HikAngleConstant; |
| | | import com.zy.acs.manager.manager.entity.Action; |
| | | import com.zy.acs.manager.manager.entity.AgvDetail; |
| | | import com.zy.acs.manager.manager.entity.AgvModel; |
| | | import com.zy.acs.manager.manager.entity.Code; |
| | | import com.zy.acs.manager.manager.enums.ActionTypeType; |
| | | import com.zy.acs.manager.manager.service.AgvDetailService; |
| | | import com.zy.acs.manager.manager.service.CodeService; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | @Autowired |
| | | private CodeService codeService; |
| | | @Autowired |
| | | private AgvDetailService agvDetailService; |
| | | |
| | | private final RedisSupport redis = RedisSupport.defaultRedisSupport; |
| | | |
| | |
| | | |
| | | switch (actionType) { |
| | | case TurnCorner: |
| | | currentTheta = parseThetaRadians(action.getParams()); |
| | | currentNode.node.getNodePosition().setTheta(currentTheta); |
| | | if (i == 0) { |
| | | AgvDetail agvDetail = agvDetailService.selectMajorByAgvId(firstAction.getAgvId()); |
| | | currentTheta = parseThetaRadians(String.valueOf(agvDetail.getAgvAngle())); |
| | | currentNode.node.getNodePosition().setTheta(currentTheta); |
| | | } else { |
| | | currentTheta = parseThetaRadians(action.getParams()); |
| | | currentNode.node.getNodePosition().setTheta(currentTheta); |
| | | } |
| | | break; |
| | | case StraightAheadTurnable: |
| | | case StraightAheadUnturnable: |
| | |
| | | } |
| | | |
| | | HkOrderNode node = new HkOrderNode(); |
| | | node.setNodeId(buildId(actionGroupId, "N", nodeIndex, code)); |
| | | // node.setNodeId(buildId(actionGroupId, "N", nodeIndex, code)); |
| | | node.setNodeId(code); |
| | | node.setSequenceId(sequenceId); |
| | | node.setNodeDescription(code); |
| | | // node.setNodeDescription(code); |
| | | node.setReleased(Boolean.TRUE); |
| | | node.setAllowedDeviationXY(hikOrderProperties.getDefaultAllowedDeviationXY()); |
| | | node.setAllowedDeviationTheta(hikOrderProperties.getDefaultAllowedDeviationTheta()); |
| | | node.setMapId(hikOrderProperties.getMapId()); |
| | | node.setMapDescription(hikOrderProperties.getMapDescription()); |
| | | // node.setMapDescription(hikOrderProperties.getMapDescription()); |
| | | node.setActions(new ArrayList<>()); |
| | | node.setNodePosition(buildNodePosition(codeEntity)); |
| | | return new NodeCursor(code, node); |
| | |
| | | Action action, |
| | | AgvModel agvModel) { |
| | | HkOrderEdge edge = new HkOrderEdge(); |
| | | edge.setEdgeId(buildId(actionGroupId, "E", edgeIndex, startNode.code + "_" + endCode)); |
| | | // edge.setEdgeId(buildId(actionGroupId, "E", edgeIndex, startNode.code + "_" + endCode)); |
| | | edge.setEdgeId(startNode.code + "_" + endCode); |
| | | edge.setSequenceId(sequenceId); |
| | | edge.setEdgeDescription(startNode.code + "->" + endCode); |
| | | // edge.setEdgeDescription(startNode.code + "->" + endCode); |
| | | edge.setReleased(Boolean.TRUE); |
| | | edge.setStartNodeId(startNode.node.getNodeId()); |
| | | edge.setEndNodeId(buildId(actionGroupId, "N", edgeIndex + 1, endCode)); |
| | | // edge.setEndNodeId(buildId(actionGroupId, "N", edgeIndex + 1, endCode)); |
| | | edge.setEndNodeId(endCode); |
| | | edge.setMaxSpeed(resolveMaxSpeed(action, agvModel)); |
| | | edge.setOrientation(edgeTheta); |
| | | edge.setOrientationType("GLOBAL"); |
| | | // GLOBAL |
| | | // TANGENTIAL |
| | | edge.setOrientationType("TANGENTIAL"); |
| | | edge.setOrientation(0.0); |
| | | // edge.setOrientation(edgeTheta); |
| | | edge.setRotationAllowed(Boolean.FALSE); |
| | | edge.setActions(new ArrayList<>()); |
| | | return edge; |