LSH
2023-07-25 cdcda32802aabe65fc6d20fb06907998b3bb9a61
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -586,6 +586,8 @@
        for (WrkMast wrkMast : wrkMasts) {
            //目标站
            Integer staNo = wrkMast.getStaNo();
            //源站
            Integer sourceStaNo = wrkMast.getSourceStaNo();
            //通过目标站搜索rgv号
            Integer rgvNo = this.searchRgvNo(staNo);
            if (rgvNo == null) {//未找到可用的rgv
@@ -3258,4 +3260,81 @@
            }
        }
    }
    /**
     * 其他  ===>> 码垛位自动补充空板:驱动拆盘机输出托盘
     */
    public synchronized void dischargingMachineOutputTray() {
        try {
            List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
                return;
            }
            // 获取入库站信息
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(213);
            if (staProtocol == null) {
                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败");
                return;
            } else {
                staProtocol = staProtocol.clone();
            }
            if (!staProtocol.isLoading()){
                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!");
                int i = wrkMastMapper.selectConfigCount10468N();
                if (i==1){
                    wrkMastMapper.updateConfig10468Y();
                }
                return;
            }else {
                int i = wrkMastMapper.selectConfigCount10468N();
                if (i==0){
                    return;
                }
            }
            // 判断是否满足入库条件
            if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
                staProtocol.setWorkNo((short)9999);
                staProtocol.setStaNo((short)214);
                devpThread.setPakMk(staProtocol.getSiteId(), false);
                boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
                if (!result) {
                    throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!");
                }
                log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!");
            }else {
                log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!");
            }
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    /**
     * 其他  ===>> 拆盘机处空板扫码,驱动托盘向码垛位,不入库
     */
    public synchronized void scanBarcodeEmptyBoard() {
        try {
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
    /**
     * 其他  ===>> 码垛完成驱动托盘下一步扫码入库
     */
    public synchronized void stackingCompletionDriveTray() {
        try {
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
}