| | |
| | | import com.zy.asrs.framework.common.DateUtils; |
| | | import com.zy.asrs.framework.common.SpringUtils; |
| | | import com.zy.asrs.framework.exception.CoolException; |
| | | import com.zy.asrs.wcs.common.ExecuteSupport; |
| | | import com.zy.asrs.wcs.core.entity.BasShuttle; |
| | | import com.zy.asrs.wcs.core.entity.Loc; |
| | | import com.zy.asrs.wcs.core.model.NavigateNode; |
| | | import com.zy.asrs.wcs.core.model.command.ShuttleCommand; |
| | | import com.zy.asrs.wcs.core.model.command.ShuttleRedisCommand; |
| | | import com.zy.asrs.wcs.core.model.enums.ShuttleCommandModeType; |
| | | import com.zy.asrs.wcs.core.model.enums.ShuttleRunDirection; |
| | | import com.zy.asrs.wcs.core.service.BasShuttleService; |
| | |
| | | import com.zy.asrs.wcs.core.utils.NavigateUtils; |
| | | import com.zy.asrs.wcs.rcs.News; |
| | | import com.zy.asrs.wcs.rcs.cache.OutputQueue; |
| | | import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; |
| | | import com.zy.asrs.wcs.rcs.entity.DeviceDataLog; |
| | | import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; |
| | | import com.zy.asrs.wcs.rcs.model.enums.SlaveType; |
| | |
| | | shuttleProtocol.setCurrentCode(data.getString("groundCode") == null ? "0" : data.getString("groundCode")); |
| | | //电池电量 |
| | | shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0%" : data.getString("battery")); |
| | | |
| | | //故障 |
| | | shuttleProtocol.setErrorCode(deviceStatus == 6 ? "1" : "0"); |
| | | |
| | | //是否顶升 |
| | | shuttleProtocol.setHasLift(data.getInteger("palletStatus") == 1 ? true : false); |
| | |
| | | |
| | | @Override |
| | | public boolean isIdle() { |
| | | return this.isIdle(null); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isIdle(ExecuteSupport support) { |
| | | if (null != support) { |
| | | if (!support.judgement()) { |
| | | return false; |
| | | } |
| | | } |
| | | if (this.shuttleProtocol.getIdle() == null |
| | | || this.shuttleProtocol.getPakMk() == null |
| | | || this.shuttleProtocol.getErrorCode() == null |
| | |
| | | |
| | | @Override |
| | | public boolean isChargingCompleted() { |
| | | if (this.shuttleProtocol.getBatteryPower() == null) { |
| | | return false; |
| | | } |
| | | |
| | | if (Integer.valueOf(this.shuttleProtocol.getBatteryPower()) >= 100) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | | public List<NavigateNode> getMoveAdvancePath() { |
| | | ArrayList<NavigateNode> path = new ArrayList<>(); |
| | | if (shuttleProtocol.getTaskNo() != 0) { |
| | | //存在任务,获取指令 |
| | | Object object = redisUtil.get(DeviceRedisConstant.SHUTTLE_FLAG + shuttleProtocol.getTaskNo()); |
| | | if (object != null) { |
| | | ShuttleRedisCommand redisCommand = JSON.parseObject(object.toString(), ShuttleRedisCommand.class); |
| | | List<NavigateNode> nodes = redisCommand.getAssignCommand().getNodes();//穿梭车预计路径 |
| | | if (!nodes.isEmpty()) { |
| | | path.addAll(nodes); |
| | | } |
| | | } |
| | | } |
| | | return path; |
| | | } |
| | | |
| | | @Override |
| | | public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed) { |
| | | HashMap<String, Object> body = new HashMap<>(); |
| | | body.put("messageName", "runOrder"); |