自动化立体仓库 - WCS系统
LSH
2023-07-25 136717ef591afb69723440be32b99cbdc6a48407
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3279,7 +3279,43 @@
     */
    public synchronized void stackingCompletionDriveTray() {
        try {
            List<WrkMast> wrkMasts = wrkMastMapper.selectStackingCompletionDriveTray();
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0){
                return;
            }
            for (WrkMast wrkMast : wrkMasts){
                wrkMast.setWrkSts(44L);
                // 获取入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());
                if (staProtocol == null) {
                    log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败");
                    return;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (!staProtocol.isLoading()){
                    log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!");
                    return;
                }
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo().shortValue()) && staProtocol.isPakMk()) {
                    staProtocol.setWorkNo((short)9999);
                    int staNo = wrkMast.getStaNo() + 1;
                    staProtocol.setStaNo((short)staNo);
                    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!");
                    wrkMastMapper.updateStackingCompletionDriveTray(wrkMast.getWrkNo());
                }else {
                    log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!");
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();