| 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 final String _LINK = "-"; | 
|   | 
|     /** | 
|      * 通过库位号获取 排 | 
|      */ | 
|     public static int getRow(String locNo) { | 
|         if (!Cools.isEmpty(locNo)) { | 
|             String[] split = locNo.split(_LINK); | 
|             return Integer.parseInt(split[0]); | 
|         } | 
|         throw new RuntimeException("库位解析异常"); | 
|     } | 
|   | 
|     /** | 
|      * 通过库位号获取 列 | 
|      */ | 
|     public static int getBay(String locNo) { | 
|         if (!Cools.isEmpty(locNo)) { | 
|             String[] split = locNo.split(_LINK); | 
|             return Integer.parseInt(split[1]); | 
|         } | 
|         throw new RuntimeException("库位解析异常"); | 
|     } | 
|   | 
|     /** | 
|      * 通过库位号获取 层 | 
|      */ | 
|     public static int getLev(String locNo) { | 
|         if (!Cools.isEmpty(locNo)) { | 
|             String[] split = locNo.split(_LINK); | 
|             return Integer.parseInt(split[2]); | 
|         } | 
|         throw new RuntimeException("库位解析异常"); | 
|     } | 
|   | 
|     public static String getLocNo(Number row, Number bay, Number lev) { | 
|         return row + _LINK + bay + _LINK + 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; | 
|     } | 
|   | 
| } |