ZY
2025-04-07 a6f6f82ccb56c168ecd564eca377b41f25a901bb
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -85,6 +85,8 @@
    @Autowired
    private CrnController crnController;
    @Autowired
    private TransferTaskService transferTaskService;
    public void generateStoreWrkFile() throws IOException, InterruptedException {
        try {
@@ -836,6 +838,9 @@
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                if (devp.getId() == 2){
                    continue;
                }
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                for (DevpSlave.Sta inSta : devp.getInSta()) {
                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getBackSta());
@@ -996,56 +1001,6 @@
    /**
     * 独立输送线
     */
    public void onlyDevp() {
        DevpSlave devpSlave = slaveProperties.getDevp().get(1);
        List<DevpSlave.Sta> inSta = devpSlave.getInSta();
        // 获取堆垛机出库站信息
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
        for (DevpSlave.Sta sta : inSta) {
            try {
                StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                    // 查询工作档
//                    TaskWrk taskWrk = devpTaskMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
//                    if (taskWrk == null) {
//                        continue;
//                    }
//                    log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk));
//                    staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
//                    staProtocol.setStaNo(staDesc.getStnNo().shortValue());
//                    boolean offer = false;
//                    try {
//                        offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
//                    } catch (Exception e) {
//                        log.error("下发输送线任务失败:异常:" + e);
//                        log.error("下发输送线任务失败:异常:offer:" + offer);
//                    }
//                    if (offer) {
//                        log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk));
//                        taskWrk.setStatus(5);
//                        taskWrk.setWrkSts(14);
//                        taskWrkService.updateById(taskWrk);
//
//                    } else {
//                        log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(taskWrk));
//                    }
                }
            } catch (Exception e) {
                log.error("出库到出库站异常:异常信息:" + e);
            }
        }
    }
    /**
     * 跑库程序
     */
    public void debug() {
@@ -1059,4 +1014,82 @@
    }
    /**
     * 转移任务下发
     */
    public void transferTaskStart() {
        for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) {
            try {
                // 获取入库站信息
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                    // 查询工作档
                    TransferTask transferTask = transferTaskService.selectByStartPoint(sta.getStaNo());
                    if (transferTask == null) {
                        continue;
                    }
                    log.info("下发输送线转移任务:taskWrk:" + JSON.toJSONString(transferTask));
                    staProtocol.setWorkNo(transferTask.getWrkNo().shortValue());
                    staProtocol.setStaNo(transferTask.getTargetPoint().shortValue());
                    boolean offer = false;
                    try {
                        offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                    } catch (Exception e) {
                        log.error("下发输送线转移任务:异常:" + e);
                        log.error("下发输送线转移任务:异常:offer:" + offer);
                    }
                    if (offer) {
                        log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(transferTask));
                        transferTask.setStatus(2);
                        transferTaskService.updateById(transferTask);
                    } else {
                        log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(transferTask));
                    }
                }
            } catch (Exception e) {
                log.error("转移任务异常:异常信息:" + e);
            }
        }
    }
    /**
     * 转移任务完成
     */
    public void transferTaskEnd() {
        for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) {
            try {
                // 获取终点站
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                StaProtocol staProtocol = devpThread.getStation().get(sta.getOverSta());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                    // 查询工作档
                    TransferTask transferTask = transferTaskService.selectByEndPoint(sta.getStaNo());
                    if (transferTask == null) {
                        continue;
                    }
                    log.info("转移任务完成:transferTask:" + JSON.toJSONString(transferTask));
                    transferTask.setStatus(5);
                    transferTaskService.updateById(transferTask);
                }
            } catch (Exception e) {
                log.error("转移任务异常:异常信息:" + e);
            }
        }
    }
}