zwl
2025-05-14 1b160b340bd6fe5f34cedbd01c80b9530d530d91
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -111,7 +111,7 @@
    private SiteController siteController;
    public void generateStoreWrkFile1() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
        try {
            // 根据输送线plc遍历
@@ -176,7 +176,12 @@
                        String response = "";
                        Boolean success = false;
                        try {
                            response = new HttpHandler.Builder().setUri(wmsUrl).setPath(inboundTaskApplyPath).setJson(JSON.toJSONString(storageEscalationParam)).build().doPost();
                            response = new HttpHandler.Builder()
                                    .setUri(wmsUrl)
                                    .setPath(inboundTaskApplyPath)
                                    .setJson(JSON.toJSONString(storageEscalationParam))
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (back) {
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -505,7 +510,7 @@
    /**
     * 堆垛机站出库到出库站
     */
    public void crnStnToOutStn() {
    public synchronized void crnStnToOutStn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // 遍历堆垛机出库站
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
@@ -520,54 +525,33 @@
                        } else {
                            staProtocol = staProtocol.clone();
                        }
                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                            // 查询工作档
                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                            if (taskWrk == null) {
                                continue;
                            }
                            // 判断工作档条件
                            if (taskWrk.getIoType() < 100 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) {
                                continue;
                            }
                            // 判断吊车是否实际已完成,且电脑状态在move中,以备电脑进行更新工作档
                            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo());
                            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
                            if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
                                // 移动中
                                continue;
                            }
                            //  判断堆垛机状态等待确认
                            if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                                // 命令下发区 --------------------------------------------------------------------------
                                log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk));
                            log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk));
//                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
                                staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                staProtocol.setStaNo((short) 11);
                                boolean offer = false;
                                try {
                                    offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                } catch (Exception e) {
                                    log.error("下发输送线任务失败:异常:" + e);
                                    log.error("下发输送线任务失败:异常:offer:" + offer);
                                }
                            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);
                            }
//                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
                                if (offer) {
                                    log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk));
                                    taskWrk.setStatus(5);
                                    taskWrk.setWrkSts(14);
                                    taskWrkService.updateById(taskWrk);
                                    // 复位堆垛
                                    crnThread.setResetFlag(true);
                                } else {
                                    log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(taskWrk));
//                                log.error("下发输送线任务失败:异常信息:"+JSON.toJSONString(r));
                                }
                            if (offer) {
                                log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk));
                                taskWrk.setStatus(5);
                                taskWrk.setWrkSts(14);
                                taskWrkService.updateById(taskWrk);
                            } else {
                                log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(taskWrk));
//                                log.error("下发输送线任务失败:异常信息:"+JSON.toJSONString(r));
                            }
                        }
                    } catch (Exception e) {
@@ -736,13 +720,13 @@
                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
                    //判断其库位是否为深库位,如果为深库位找其浅库位是都有货
                    if (locMast.getRow1() == 1 || locMast.getRow1() == 5) {
                    if (locMast.getRow1() == 1 || locMast.getRow1() == 5|| locMast.getRow1() == 9|| locMast.getRow1() == 13) {
                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", (locMast.getRow1() + 1)).eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
                        if (!Cools.isEmpty(locMast1)) {
                            log.info(locMast.getLocNo() + "出深库位,浅库位有货");
                            continue;
                        }
                    } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) {
                    } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8|| locMast.getRow1() == 12|| locMast.getRow1() == 16) {
                        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", (locMast.getRow1() - 1)).eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
                        if (!Cools.isEmpty(locMast1)) {
                            log.info(locMast.getLocNo() + "出深库位,浅库位有货");
@@ -1381,12 +1365,12 @@
        LocMast locMast = locMastService.selectByLocNo(locNo);
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setTargetPoint(locNo);
        taskWrk.setStartPoint("116");
        taskWrk.setStartPoint("15");
        if (result.getAlley().equals("1")) {
            taskWrk.setCrnNo(1);
        } else {
        } else if (result.getAlley().equals("2")) {
            taskWrk.setCrnNo(2);
        }
        } else if (result.getAlley().equals("3")) {taskWrk.setCrnNo(3);}else if (result.getAlley().equals("4")) {taskWrk.setCrnNo(4);}
        if (taskWrk.getIoType() == 1) {
            taskWrk.setWrkSts(2);
            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {