package com.zy.asrs.wcs.core.utils;
|
|
import com.zy.asrs.framework.common.Cools;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class Utils {
|
|
/**
|
* 通过库位号获取 排
|
*/
|
public static int getRow(String locNo) {
|
if (!Cools.isEmpty(locNo)) {
|
return Integer.parseInt(locNo.substring(0, 2));
|
}
|
throw new RuntimeException("库位解析异常");
|
}
|
|
/**
|
* 通过库位号获取 列
|
*/
|
public static int getBay(String locNo) {
|
if (!Cools.isEmpty(locNo)) {
|
return Integer.parseInt(locNo.substring(2, 5));
|
}
|
throw new RuntimeException("库位解析异常");
|
}
|
|
/**
|
* 通过库位号获取 层
|
*/
|
public static int getLev(String locNo) {
|
if (!Cools.isEmpty(locNo)) {
|
return Integer.parseInt(locNo.substring(5, 7));
|
}
|
throw new RuntimeException("库位解析异常");
|
}
|
|
public static String getLocNo(Number row, Number bay, Number lev) {
|
return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
|
}
|
|
public static String zerofill(String msg, Integer count){
|
if (msg.length() == count){
|
return msg;
|
} else if (msg.length() > count){
|
return msg.substring(0, 16);
|
} else {
|
StringBuilder msgBuilder = new StringBuilder(msg);
|
for (int i = 0; i<count-msg.length(); i++){
|
msgBuilder.insert(0,"0");
|
}
|
return msgBuilder.toString();
|
}
|
}
|
|
//获取除白名单外的指定楼层全部穿梭车xy坐标点
|
public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
|
// SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
|
ArrayList<int[]> list = new ArrayList<>();
|
// for (ShuttleSlave slave : slaveProperties.getShuttle()) {
|
// if (slave.getId().intValue() == whiteShuttle) {
|
// continue;//跳过白名单
|
// }
|
//
|
// //获取穿梭车所在节点位置
|
// ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
|
// if (shuttleThread == null) {
|
// continue;
|
// }
|
// ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
|
// if (shuttleProtocol == null) {
|
// continue;
|
// }
|
//
|
// if (shuttleProtocol.getCurrentLocNo() == null) {
|
// continue;
|
// }
|
//
|
// if (lev != Utils.getLev(shuttleProtocol.getCurrentLocNo())) {
|
// continue;//楼层不同
|
// }
|
//
|
// int[] xyPosition = NavigatePositionConvert.positionToXY(shuttleProtocol.getCurrentLocNo());//通过库位号获取xy坐标
|
// list.add(xyPosition);
|
// }
|
return list;
|
}
|
|
}
|