package com.zy.common.utils;
|
|
import com.core.common.SpringUtils;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.common.model.NavigateNode;
|
import com.zy.core.cache.SlaveConnection;
|
import com.zy.core.enums.SlaveType;
|
import com.zy.core.model.ForkLiftSlave;
|
import com.zy.core.model.protocol.ForkLiftStaProtocol;
|
import com.zy.core.properties.SlaveProperties;
|
import com.zy.core.thread.ForkLiftThread;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 货叉提升机工具类
|
*/
|
public class ForkLiftUtils {
|
|
//获取提升机站点
|
public static ForkLiftStaProtocol getLiftStaByStaNo(Integer staNo) {
|
SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
|
for (ForkLiftSlave liftSlave : slaveProperties.getForkLift()) {
|
ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftSlave.getId());
|
if (forkLiftThread == null) {
|
return null;
|
}
|
|
for (ForkLiftStaProtocol forkLiftStaProtocol : forkLiftThread.getForkLiftStaProtocols()) {
|
if (forkLiftStaProtocol.getStaNo().equals(staNo)) {
|
return forkLiftStaProtocol;
|
}
|
}
|
}
|
|
return null;
|
}
|
|
|
//获取提升机站点
|
public static ForkLiftStaProtocol getLiftStaByLev(Integer liftNo, Integer lev) {
|
ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
|
if (forkLiftThread == null) {
|
return null;
|
}
|
|
for (ForkLiftStaProtocol forkLiftStaProtocol : forkLiftThread.getForkLiftStaProtocols()) {
|
if (forkLiftStaProtocol.getLev().equals(lev)) {
|
return forkLiftStaProtocol;
|
}
|
}
|
|
return null;
|
}
|
|
//获取提升机输送站及其前一站节点
|
public static List<NavigateNode> getLiftStaNodes(Integer staNo) {
|
List<NavigateNode> targetNodes = new ArrayList<>();
|
//获取目标站
|
ForkLiftStaProtocol targetLiftSta = ForkLiftUtils.getLiftStaByStaNo(staNo);
|
if (targetLiftSta == null) {
|
return null;//找不到站点
|
}
|
NavigateNode targetNode = NavigatePositionConvert.locNoToNode(targetLiftSta.getLocNo());//目标节点
|
String targetLastLocNo = Utils.getLocNo(Utils.getRow(targetLiftSta.getLocNo()) - 1, Utils.getBay(targetLiftSta.getLocNo()), Utils.getLev(targetLiftSta.getLocNo()));//目标节点前一站
|
NavigateNode targetLastNode = NavigatePositionConvert.locNoToNode(targetLastLocNo);//目标节点前一站
|
targetNodes.add(targetNode);
|
targetNodes.add(targetLastNode);
|
|
return targetNodes;
|
}
|
|
}
|