#
zc
2025-05-05 7f42a1951c9aea0f03443c8b8f65b79df7168b36
#
4个文件已修改
67 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -36,13 +36,11 @@
import com.zy.core.thread.impl.FyDevpThread;
import com.zy.core.thread.impl.NormalLedThread;
import com.zy.system.service.ConfigService;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.*;
/**
@@ -486,13 +484,22 @@
            if (staProtocol == null) {
                continue;
            }
            List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.OUTBOUND_SHUTTLE_RUN.sts, WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts).in("sta_no", 1013, 1024));
            if (wrkMastList != null && wrkMastList.size() >= 2) {
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,跳过,存在2条工作档", wrkMast.getWrkNo());
                continue;
            }
            if (!staProtocol.isAutoing()) {
                News.info("{}任务,{}站点,不在自动状态", wrkMast.getWrkNo(), staProtocol.getSiteId());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}站点,不在自动状态", wrkMast.getWrkNo(), staProtocol.getSiteId());
                continue;
            }
            if (!isOutEnable(devpThread, wrkMast.getStaNo())) {
                News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId());
                continue;
            }
            StaProtocol staProtocol2 = station.get(wrkMast.getStaNo() + 2);
            if (staProtocol2.isLoading()) {
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物222", wrkMast.getWrkNo(), wrkMast.getStaNo() + 2);
                continue;
            }
            String locNo = "1200301";
@@ -502,7 +509,7 @@
            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP");
            if (!dispatchShuttle) {
                News.info("{}任务,调度小车失败", wrkMast.getWrkNo());
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,调度小车失败", wrkMast.getWrkNo());
                continue;
            }
            WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
@@ -1471,6 +1478,7 @@
                                continue;//小车未到达目标层
                            }
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts);
                            wrkMast.setLiftNo(null);
                            shuttleThread.setSyncTaskNo(0);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) {
                            //310.小车移动中 ==> 311.小车移动完成
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -34,6 +34,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Slf4j
@Service("noLiftOutService")
@@ -65,6 +66,7 @@
    /**
     * 从没有提升机侧出库,有两种情况,一种1,5库到同层,一种非1,5库到1,5,则需要提升机
     *
     * @param wrkMast
     */
    public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) {
@@ -744,6 +746,23 @@
                return false;
            }
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            Map<Integer, StaProtocol> station = devpThread.getStation();
            StaProtocol staProtocol2 = null;
            if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
                staProtocol2 = station.get(1015);
                if (staProtocol2.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12432", wrkMast.getWrkNo(), 1015);
                    return false;
                }
            } else {
                staProtocol2 = station.get(1026);
                if (staProtocol2.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12341", wrkMast.getWrkNo(), 1026);
                    return false;
                }
            }
            ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
            assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号
            assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//小车移库任务
@@ -884,6 +903,23 @@
                News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,小车忙碌中,禁止派发", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
                return false;
            }
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            Map<Integer, StaProtocol> station = devpThread.getStation();
            StaProtocol staProtocol2 = null;
            if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
                staProtocol2 = station.get(1015);
                if (staProtocol2.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12432", wrkMast.getWrkNo(), 1015);
                    return false;
                }
            } else {
                staProtocol2 = station.get(1026);
                if (staProtocol2.isLoading()) {
                    News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号输送线有物12341", wrkMast.getWrkNo(), 1026);
                    return false;
                }
            }
            if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
                return false;
src/main/java/com/zy/common/service/CommonService.java
@@ -175,7 +175,7 @@
    }
    //入库任务
    public boolean createInTask(CreateInTaskParam param) {
    public synchronized boolean createInTask(CreateInTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
        if (null == locMast) {
@@ -220,7 +220,7 @@
    }
    //出库任务
    public boolean createOutTask(CreateOutTaskParam param) {
    public synchronized boolean createOutTask(CreateOutTaskParam param) {
        Date now = new Date();
        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
        if (null == locMast) {
src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -30,7 +30,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.rmi.CORBA.Util;
import java.util.*;
/**
@@ -363,7 +362,7 @@
    /**
     * 调度车辆
     */
    public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) {
    public synchronized boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) {
        ArrayList<ShuttleThread> diffLev = new ArrayList<>();//不同楼层的穿梭车
        int lev1 = 0;
        boolean tongLev = false;
@@ -389,6 +388,10 @@
                    continue;//小车被禁用
                }
            }
            WrkMast wrkMast = wrkMastService.selectByShuttleNo(basShuttle.getShuttleNo());
            if(wrkMast!=null){
                continue;
            }
            diffLev.add(shuttleThread);
            if (lev1 != 0) {
                if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) {