#
luxiaotao1123
2022-12-06 b3d960252636140962bf9bbdf053d3b1d3255020
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -39,7 +39,6 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -537,7 +536,6 @@
    /**
     * 堆垛机站出库到出库站
     */
    @Async
    public void crnStnToOutStn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // 遍历堆垛机出库站
@@ -948,6 +946,16 @@
                log.error("出库操作库位状态不符合--状态, 库位号={},库位状态={}", wrkMast.getLocNo(), sourceSta.getLocSts());
                continue;
            }
            // 判断是否有同库位组的出库任务,如果有,则暂停
            List<String> outsideLoc = Utils.getGroupOutsideLoc(wrkMast.getSourceLocNo());
            if (!Cools.isEmpty(outsideLoc)) {
                if (!Cools.isEmpty(wrkMastMapper.selectWorkingOfPakOutBySource(outsideLoc))) {
//                    log.warn("{}工作档出库失败,原因:外层库位{}正在执行出库任务!", wrkMast.getWrkNo(), JSON.toJSONString(outsideLoc));
                    continue;
                }
            }
            // 获取堆垛机出库站信息
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
@@ -1636,7 +1644,6 @@
    /**
     * 执行对工作档的完成操作
     */
    @Async
    @Transactional
    public void storeFinished() {
        for (CrnSlave crn : slaveProperties.getCrn()) {
@@ -2302,7 +2309,6 @@
    /**
     * 空栈板初始化入库,叉车入库站放货
     */
    @Async
    public void storeEmptyPlt(){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历空板入库口
@@ -2391,7 +2397,6 @@
    /**
     * 出库  ===>> 工作档信息写入led显示器
     */
    @Async
    public void ledExecute() {
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
@@ -2492,7 +2497,6 @@
    /**
     * 其他  ===>> LED显示器复位,显示默认信息
     */
    @Async
    public void ledReset() {
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
@@ -2702,6 +2706,11 @@
            // 22.小车待搬
            if (wrkCharge.getWrkSts() == 22) {
                // 入出库任务优先
                if (null != wrkMastMapper.selectWorkingByCrn(wrkCharge.getCrnNo())) {
                    return;
                }
                // 搬小车至小车走向通道
                List<String> channel = slaveProperties.getChannel();
                for (String channelLocNo : channel) {
@@ -2777,6 +2786,11 @@
            } else if (wrkCharge.getWrkSts() == 26) {
                // 固定堆垛机
                int crnNo = 1;
                // 入出库任务优先
                if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) {
                    return;
                }
                // 充电位
                LocMast chargeLoc = locMastService.selectById(wrkCharge.getLocNo());
@@ -2932,6 +2946,10 @@
                } else {
                    // 固定堆垛机
                    int crnNo = 1;
                    if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) {
                        return;
                    }
                    LocMast channelLoc = locMastService.selectById(channelLocNo);
                    CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
@@ -2996,6 +3014,10 @@
                }
            }
        } else if (wrkCharge.getWrkSts() == 45L) {
            if (null != wrkMastMapper.selectWorkingByCrn(wrkCharge.getCrnNo())) {
                return;
            }
            LocMast idleLoc = locMastService.selectById(basSte.getIdleLoc());
            Integer otherSte = existOtherSte(idleLoc.getLocNo(), wrkCharge.getSteNo());