luxiaotao1123
2020-08-28 f89ca17a1a365f5cd349bca3ebf6b2c80f0e534d
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -163,6 +163,54 @@
    }
    /**
     * 入库站,根据条码扫描生成入库工作档,工作状态 1 ==>> 2
     */
    @Async
    public void generateStoreWrkFile2() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历入库口
            for (DevpSlave.Sta inSta : devp.getInSta()) {
                // 获取入库站信息
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
                        && staProtocol.isPakMk()) {
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
                    if (wrkMast == null) {
                        continue;
                    }
                    // 更新工作主档
                    wrkMast.setWrkSts(2L); // 工作状态:2.设备上走
                    wrkMast.setModiTime(new Date());
                    Integer update = wrkMastMapper.updateById(wrkMast);
                    if (update == 0) {
                        throw new CoolException("更新工作档失败");
                    }
                    // 命令下发区 --------------------------------------------------------------------------
                    // 更新站点信息 且 下发plc命令
                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    if (!result) {
                        throw new CoolException("更新plc站点信息失败");
                    }
                    staProtocol.setPakMk(false);
                }
            }
        }
    }
    /**
     * 拣料、并板、盘点再入库
@@ -518,6 +566,15 @@
        crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 目标库位层
        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
            log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
        } else {
            // 修改工作档状态 11.生成出库ID => 12.吊车出库中
            Date now = new Date();
            wrkMast.setWrkSts(12L);
            wrkMast.setCrnStrTime(now);
            wrkMast.setModiTime(now);
            if (wrkMastMapper.updateById(wrkMast) == 0) {
                log.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo());
            }
        }
    }
@@ -564,9 +621,9 @@
                }
                // 完成通知档
                if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) {
                    log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo());
                }
//                if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) {
//                    log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo());
//                }
            }
        }