自动化立体仓库 - WCS系统
#
Junjie
2025-03-29 18d942a236b4cf522256e4e095de395a472d9932
#
4个文件已修改
42 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/ShuttleThread.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -716,7 +716,7 @@
                }
            }
            //检测楼层是否有穿梭车
            //检测楼层是否有可用穿梭车
            boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev());
            if (!checkLevHasShuttle) {
                if (wrkMast.getShuttleNo() != null) {
src/main/java/com/zy/asrs/utils/Utils.java
@@ -5,7 +5,9 @@
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.NavigateNode;
import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.utils.NavigatePositionConvert;
@@ -142,9 +144,10 @@
        return list;
    }
    //检测楼层是否有穿梭车
    //检测楼层是否有可用穿梭车
    public static boolean checkLevHasShuttle(Integer lev) {
        SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
        WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
        for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
            //获取四向穿梭车线程
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
@@ -160,6 +163,22 @@
                continue;
            }
            //小车正在充电
            if (shuttleThread.isCharging()) {
                continue;
            }
            //小车有充电任务
            WrkMast chargeWorking = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo());
            if (chargeWorking != null) {//已有充电任务
                continue;
            }
            //小车处于故障状态
            if (shuttleThread.isFault()) {
                continue;
            }
            if (lev == Utils.getLev(currentLocNo)) {
                return true;//指定楼层有穿梭车
            }
src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -45,6 +45,8 @@
    boolean isChargingCompleted();//是否充电完成
    boolean isFault();//是否故障
    List<NavigateNode> getMoveAdvancePath();//获取穿梭车任务路径
    int generateDeviceTaskNo(int taskNo, ShuttleTaskNoType type);//生成硬件设备工作号
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -715,6 +715,23 @@
    }
    @Override
    public boolean isFault() {
        if (this.shuttleProtocol.getErrorCode() == null
                || this.shuttleProtocol.getMode() == null
                || this.shuttleProtocol.getExtend() == null
        ) {
            return false;
        }
        InnerSuhttleExtend extend = (InnerSuhttleExtend) this.shuttleProtocol.getExtend();
        boolean res = this.shuttleProtocol.getMode() == 0
                && !this.shuttleProtocol.getErrorCode().equals("0")
                && extend.getSuspendState() == 1
                ;
        return res;
    }
    @Override
    public List<NavigateNode> getMoveAdvancePath() {
        ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class);
        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);